PkgRadar

Open data · CC BY 4.0

The flagged-first dataset: malware we caught before the advisory.

4,263 malicious package releases that PkgRadar independently flagged as HIGH — a real blocking CI verdict — before their public OSV advisory existed. Download the whole set, labels only, and verify any row against the named advisory yourself.

Download JSONDownload CSVReproducible benchmark

Labels only — ecosystem, package, version, first-flag date, OSV advisory id, and lead time. No payloads, hashes, or indicators (the same boundary as /receipts and /malware). Licensed CC BY 4.0 — free to use with attribution.

What’s in each row

FieldMeaning
ecosystemRegistry (npm, pypi, rubygems, cargo, maven, nuget, composer, go, pub).
package · versionThe exact malicious release.
verdictAlways high — a blocking CI verdict at time of flag.
flagged_atUTC date PkgRadar first flagged the release (also flagged_at_unix).
advisory_idThe OSV/GHSA advisory that later disclosed it — verify the row here.
advisory_publishedUTC date the public advisory landed (also advisory_published_unix).
lead_days · lead_secondsHow far ahead of the advisory we flagged it.

A sample of the newest rows

The most recently disclosed catches. The full set is in the download above.

PackageEcosystemFlagged aheadAdvisory
mfaatest @1.0.0npm2 days beforeMAL-2026-15629
spc-grafeno-login @1.0.0npm3 days beforeMAL-2026-15633
tailwind-minanimated @2.3.7npm2 hours beforeMAL-2026-15634
tailwind-modernanimation @2.3.8npm2 hours beforeMAL-2026-15635
tailwindcss-forms-style @0.1.2npm2 hours beforeMAL-2026-15636
test__123q1 @3.2.4npm2 days beforeMAL-2026-15637
test__123q1 @4.3.5npm2 days beforeMAL-2026-15637
spc_login @1.0.0npm3 days beforeMAL-2026-15622
gas-monitor @1.1.0npm2 days beforeMAL-2026-15621
pyservercheck @0.1.1pypi2 hours beforeMAL-2026-15603
eslint-prettier-js @0.0.1npm1 hour beforeMAL-2026-15601
auth-app-streamlit @2.1.1pypi1 hour beforeMAL-2026-15577

How to verify it

This is the whole point: don’t take our word for it. Pick any row, look up its advisory_id on osv.dev, and compare the advisory’s publication date to our flagged_at. The gap is the lead time — the window in which the malicious release was live and PkgRadar was already blocking it, before any public advisory told you to.

Methodology and operating point are documented on /lead-time and /accuracy. Lead time is measured as our first-flag timestamp minus the advisory’s published date; only HIGH verdicts (real blocking gates) are included.