Fuzzy Logic in Cybersecurity: Reducing Vulnerability Queue by 7.5 Times with CVSS, EPSS and FSTEC Comparison

An information security specialist has developed a fuzzy logic system that prioritizes vulnerabilities far more effectively than traditional scoring methods. The approach uses linguistic variables and membership functions to handle the inherent uncertainty in exploitability and impact assessments. By integrating EPSS probability data with CVSS impact scores and vulnerability age, the model reduces the actionable backlog by a factor of 7.5. The implementation relies on the Mamdani inference algorithm and trapezoidal membership functions to produce smooth, human-interpretable urgency ratings. Detailed coverage checks and rule-base validation ensure no gaps exist in the decision space. Real-world testing on CVE-2025-49113 in Roundcube Webmail demonstrated practical advantages over rigid threshold logic. The method is positioned as a practical enhancement rather than a replacement for existing standards.

HabrTranslated from Russian

Read at source

An experienced security analyst has built a fuzzy logic model that cuts the vulnerability remediation queue by a factor of 7.5 while providing more nuanced prioritization than CVSS, EPSS or the Russian FSTEC methodology.

From Ancient Paradoxes to Modern Vulnerability Scoring

The work begins with the classic Sorites paradox: removing one grain of sand from a heap does not stop it being a heap, yet continued removal eventually destroys the concept. This illustrates that many real-world categories have blurred boundaries. The same problem appears in vulnerability management when analysts apply hard thresholds such as “if CVSS ≥ 9.0 then critical.”

CVSS (Common Vulnerability Scoring System) version 3.1 produces a score from 0 to 10 together with an attack vector string. While useful, the metric answers only “how bad could exploitation be” and “how difficult is exploitation,” not “how likely is exploitation in the next 30 days.” EPSS (Exploit Prediction Scoring System) supplies the missing probability but still yields a single crisp number that analysts must threshold manually.

Fuzzy Sets and Membership Functions

Lotfi Zadeh introduced fuzzy sets in 1965, allowing an element to belong to a set to a degree between 0 and 1. Membership is not probability: a liquid with membership 0.91 in the set of drinkable fluids is almost certainly potable, whereas a probability of 0.91 only states that 91 out of 100 similar samples would be safe.

The analyst implemented four common membership function shapes: triangular, trapezoidal, Gaussian and sigmoidal. For EPSS values, which cluster heavily near zero, a logarithmic transformation combined with trapezoidal functions proved most practical. The linguistic variable for EPSS contains five terms: negligible, low, medium, high and critical.

Rule Base Construction and Mamdani Inference

A complete rule base must satisfy coverage and consistency. With three inputs each having three terms, 27 rules are required; five inputs would demand 3125 rules, so the author cascaded multiple smaller inference blocks. Each rule follows the form “IF EPSS is high AND impact is complete THEN urgency is immediate.”

The Mamdani algorithm performs four steps: fuzzification of crisp inputs, evaluation of rule firing strength using the minimum t-norm, aggregation of clipped output membership functions, and defuzzification by centroid calculation. In one test case (CVE-2025-49113 in Roundcube Webmail), an EPSS of 0.30, impact of 5.9 and age of 244 days produced an urgency score of 94.4, placing the issue in the “immediate, 24-hour window” category.

Practical Results and Comparison

Side-by-side evaluation against raw CVSS thresholds, EPSS probability cut-offs and the FSTEC risk matrix showed a 7.5-fold reduction in the number of vulnerabilities requiring urgent attention. The fuzzy model also avoided the “hole” problem where certain input combinations receive no rule coverage. The author notes that the Mamdani method is especially suitable when results must be explained to auditors, while a Sugeno-style approach would offer faster numerical tuning.

The complete implementation, written from scratch in approximately 200 lines of Python without external fuzzy libraries, is intended both as a working tool and as an educational artifact demonstrating every stage of fuzzy inference applied to real vulnerability data.

Meridian digestThe week's most consequential security stories, distilled into one briefing.See the digest

More in Vulnerabilities & Exploits

Telegram for Android Patches Voice Call Vulnerability Enabling Code Execution
Yandex Patches Millions of Stations After eMudhra Certificate Keys Compromised
Cisco ASA and FTD Face DoS Vulnerability in SSL VPN Already Exploited in the Wild