curl vulnerability disclosures

CVEs disclosed

The final bar is a partial quarter.

Definition

curl is a widely deployed C library and command-line tool. The project publishes a machine-readable record of every vulnerability it has ever disclosed, with a severity rating set by the maintainers and a credit string naming who reported it.

A "discovery" in this series is one disclosed vulnerability, counted in the quarter of its publication date. It is a disclosure count, not a count of bugs introduced or bugs remaining. An "AI-marked" disclosure is one whose credit string names an AI system or method, or names an AI-security employer; the two signals are recorded separately in curl-finders.csv and combined into the annual and quarterly tables' ai_attributed column.

Facts

curl disclosures by severity: counts by year and finder credit since 2010.

The severity figure cuts the same rows by curl's own rating: one grid per finder-credit cohort, years across, ratings down, every cell printing the number of disclosures it holds. Shading is scaled within each panel, as the note on the figure states.

The collection-wide cumulative index redraws this series as cumulative disclosures to date:

Cumulative disclosures to date.

Method

The CSVs are built by fetch.py, which reads curl's JSON record and buckets disclosures by publication year and quarter. The shared classifier in ../../lib/credits.py reads three independent signals off each FINDER string: whether it names an AI system or method (Big Sleep, Mythos, Claude, "agent"), whether it names an AI-security employer (Aisle Research, AntAISecurityLab, OpenAI, Anthropic), and whether it names fuzzing. The per-finder table curl-finders.csv records which band each credit falls in. The annual and quarterly tables keep a single combined ai_attributed column, true when a credit carries either AI signal; it describes the credit's text, not the method used.

figure.py calls the shared periodic_stacked() shape in ../../lib/families.py, drawing stacked quarterly bars from curl-by-quarter.csv: other_attributed in blue, ai_attributed in red, the final quarter outlined rather than filled and annotated with the annual table's data_through date. The axis is linear and January 2026 onward is shaded, as in every figure here. The severity figure comes from the same script through the shared severity_heatmap() shape, built from the annual table's severity columns and normalized within each panel. check.py recomputes the fact lines above from the CSVs.

Limitations

AI attribution

15 of the 36 disclosures of 2026 (through 2026-06-24) are AI-marked. One credit names a system:

"Andrew Nesbitt (powered by Mythos)" — curl credit string for one 2026 disclosure, vendored in curl-finders.csv, read 2026-08-14

The other 14 name an AI-security employer without stating a method: 9 credit Aisle Research ("Joshua Rogers (Aisle Research)" on 6, "Stanislav Fort (Aisle Research)" on 3), 3 credit AntAISecurityLab hackerone handles, 1 credits "Filipe Casal of Trail of Bits in collaboration with OpenAI", and 1 credits "Eunsoo Kim (Autonomous Code Security team at Microsoft)", all quoted from curl-finders.csv as read 2026-08-14.

2025 has 2 AI-marked disclosures: one system-naming credit,

"Google Big Sleep" — curl credit string for one 2025 disclosure, vendored in curl-finders.csv, read 2026-08-14

and one affiliation-only credit, "Stanislav Fort (Aisle Research)". No AI marker appears in any credit string before 2025, as of the 2026-06-24 snapshot. Stanislav Fort of Aisle Research appears in both curl and OpenSSL finder tables (../cyber-openssl/) [@googlebigsleep2024; @anthropicmythos2026; @aisle2026].

Sources