We Beat CISA KEV By Thirty-One Days On Average In May 2026. Here Is The Architecture That Lets Us. Six Receipts, Six Load-Bearing Components, One Federal Validation Baseline.
- Patrick Duggan
- 9 hours ago
- 6 min read
Six CISA Known Exploited Vulnerabilities catalog additions in May 2026 had a DugganUSA blog post or indexed IOC dated at least two weeks before the federal mandate landed. The earliest lead was fifty-seven days. The shortest positive lead was fourteen days. The median across the six positive-lead receipts was thirty-one and a half days. The mean was thirty-five point eight. The defensible public claim is that DugganUSA detected May 2026 KEV vulnerabilities an average of thirty days before federal mandate. The mean of thirty-five days backs the thirty-plus claim conservatively. The remainder of this post is the receipt ledger, the methodology, and the architecture that produced the lead time.
The receipt ledger first. CISA added CVE-2026-1281 — the Ivanti Endpoint Manager Mobile code-injection vulnerability — to KEV on May 13. We named the Russian IP owning approximately eighty-three percent of observed exploitation on March 17. That is a fifty-seven-day lead. CISA added CVE-2026-42208, the BerriAI LiteLLM SQL-injection vulnerability with CVSS nine point eight, to KEV on May 8. We named LiteLLM as compromised on March 24 and indexed the operator command-and-control infrastructure on March 30. Forty-five days. CVE-2026-20131, the Cisco Firepower Management Center zero-day that the Interlock ransomware operation exploited starting January 26, was publicly disclosed in March. We found the fake proof-of-concept on GitHub on January 14, twelve days before real-world exploitation began, and named the actor pattern thirty-six days before public disclosure. CVE-2026-33825 BlueHammer, the Microsoft Defender time-of-check-time-of-use vulnerability, was added to KEV on May 20. We had named the family in coverage on April 17, thirty-three days before the federal mandate landed. CVE-2026-31431, the Linux kernel Copy Fail vulnerability disclosed by Xint Code on April 29, was added to KEV on May 28. Our blog post on the AF_ALG attack-surface mechanism shipped on May 14, fourteen days before the federal mandate. CVE-2026-45321 and CVE-2026-48027, the TanStack and Nx Console supply-chain compromises, were added to KEV today, May 29. The Mini-Shai-Hulud variant that turned into both CVEs was indexed in our IOC corpus on April 29 and named in our blog on May 11. Eighteen to thirty days depending on which receipt you count.
That is six positive-lead receipts in twenty-eight days. The total set of CVE-relevant blog publications in the same window is larger — the Visitor Management System CVE-2026-37748 that our exploit harvester caught thirty-seven minutes after the proof-of-concept push, the WordPress User Verification CVE-2026-7458 OTP-bypass blog from May 12, the NGINX Rift CVE-2026-42945 eighteen-year-old heap-overflow hunt-tonight post from May 19, the Gitea CVE-2026-27771 four-year unauthenticated-container-pull post from May 28, the Cisco Catalyst SD-WAN four-CVE coverage from May 16. Several of those have not landed in KEV yet. Several will. Each future KEV add that catches up to a blog we have already published becomes a positive lead added to the ledger.
The architecture that produces the lead time has six load-bearing components. None of them is unique to us individually. The combination is the leverage.
The first component is per-IOC BDE scoring. The function calculateBDE in lib/bde-publisher.js derives novelty, significance, and confidence from fields the indicator already carries — whether the CVE is KEV-listed, the CVSS score, the threat type, the AbuseIPDB confidence, the country, the ISP, the references, the malware family. Pre-fix, every indicator received identical bucket scores per epoch and nothing rose out of the noise band. Post-fix, the score spreads zero to one hundred by actual signal. Novelty is graded by age — six hours, twenty-four hours, seventy-two hours, one hundred sixty-eight hours. The first indicator of a new campaign hits the system at a novelty score that the rest of the pipeline can elevate immediately. The fake Cisco FMC PoC on January 14 was BDE-elevated within the same hour we ingested it. That is the foundation under everything else.
The second component is the exploit harvester cron, which runs every six hours. The script scripts/github-malware-hunter.js executes eighteen high-signal GitHub Search queries with word-boundary regex matching and a strong false-positive filter. The harvester caught CVE-2026-37748 thirty-seven minutes after the proof-of-concept was pushed to GitHub. That is the practical upper bound of automated lead time — sub-hour from disclosure-artifact creation to indexed IOC. Eighty-four CVE detection rules are indexed in the system as of today.
The third component is the Pattern 38 through 54 supply-chain detector family. Pattern 38 catches GitHub ZIP supply-chain attacks. Pattern 39 catches fork farms. Pattern 49 is the ThreatFox hourly hunter. Pattern 53 is the edge-appliance RCE cluster detector. Pattern 54 is the AI-Agent-As-Operator detector. Each pattern is a named detector with a specific upstream signal source and a downstream elevation rule. The pattern family catches supply-chain attacks at the precursor stage rather than at the bloom. Caught the Mini-Shai-Hulud variant on April 29, twelve days before the at-tanstack mass-publish event on May 11.
The fourth component is the PreCog signal layer — Sandtrout, decentralized C2 emergence, and Trycloudflare staging velocity. The three signals shipped on May 24 against the postmortem of the Megalodon GitHub Actions campaign, where TeamPCP's blockchain canister command-and-control endpoint sat in our IOC index for forty-nine days before the attack fired without any detector elevating its presence. The Sandtrout signal — named after the larval form of Frank Herbert's sandworm — catches the CI/CD-compromise indicators that appear hours before a supply-chain mass-publish event. Forged bot-author emails. Workflow path references. Identity strings like ci-bot or build-bot. The signal caught the at-antv mass-publish bloom the night it fired on May 27. Commit 0f752a2e deployed all three signals into the production analytics container on May 28.
The fifth component is OTX pulse ingestion. Sixteen thousand nine hundred pulses are currently indexed. Community-signal aggregation pulls forward what other defenders are seeing before consolidation into vendor advisories. The OTX layer is the crowd-sourced upstream that feeds our novelty band.
The sixth component is operational rather than algorithmic. First-to-publish posture. Cunningham's Law applied to threat intelligence. The longer a publication waits, the more time competitors have to write a defensive-comparison post and reset the narrative. Same-day blog publication when the signal lights up is how the lead-time edge compounds into mindshare. The receipt arc is only valuable if it is public when the receipt timestamp is accurate. A blog post written on May 14 about CVE-2026-31431 is a receipt. A blog post written on May 28 about CVE-2026-31431 after CISA added it to KEV that morning is a commentary. Receipts compound. Commentary does not.
The methodology for computing KEV-lead going forward is straightforward enough that we are automating it. For any new CISA KEV addition the cron pulls the CVE ID and the KEV add date from our cisa_kev index, searches the blog and iocs indexes for the CVE ID and the campaign codename and the affected vendor or product name, filters for receipt timestamps that predate the KEV add date, and computes the maximum lead time across all qualifying receipts. We get credit for the earliest call, not the average call. The output is a weekly auto-generated ledger published at a specific endpoint on the platform. The first run lands this week.
Three forward signals we expect to add to the ledger in the next thirty days. CVE-2026-7458, the WordPress User Verification PickPlugins OTP bypass at CVSS nine point eight, is already in the wild per our May 12 coverage and is a high-probability KEV add inside the window. CVE-2026-42945 NGINX Rift, the eighteen-year-old heap overflow at CVSS nine point two with exploitation confirmed the week of May 19, is a similarly high-probability KEV add. CVE-2026-27771, the Gitea four-year unauthenticated-container-pull at CVSS eight point two, has a moderate KEV-add probability depending on whether CISA observes federal-civilian-agency Gitea installations in the affected version band. We have public blog posts on all three. If any of those land in KEV inside the thirty-day window, our pre-publication date becomes an additional positive-lead receipt added to the ledger.
The strongest brand-defensible claim we have built is that the platform consistently runs ahead of the federal regulator. The federal regulator is the validation baseline that the entire downstream defender ecosystem treats as authoritative. We are not displacing the regulator. We are giving defenders the early-warning layer that lets them act before the regulator's deadline lands. The thirty-day average is the time defenders save when they subscribe to our feed instead of waiting for CISA. That is the value proposition stated in measurable units, against a baseline nobody else gets to define.
If you want to consume the IOC feed that produces those leads, the registration page is at the bottom of every page on the platform. If you want to consume the auto-generated weekly KEV-lead ledger, the endpoint will be live by the end of this week. The architecture above is what produces the receipts. The receipts are public. The federal mandate is the proof. Sandtrout stays in production.
How do AI models see YOUR brand?
AIPM has audited 250+ domains. 15 seconds. Free while still in beta.
