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
| Field | Meaning |
|---|---|
ecosystem | Registry (npm, pypi, rubygems, cargo, maven, nuget, composer, go, pub). |
package · version | The exact malicious release. |
verdict | Always high — a blocking CI verdict at time of flag. |
flagged_at | UTC date PkgRadar first flagged the release (also flagged_at_unix). |
advisory_id | The OSV/GHSA advisory that later disclosed it — verify the row here. |
advisory_published | UTC date the public advisory landed (also advisory_published_unix). |
lead_days · lead_seconds | How 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.
| Package | Ecosystem | Flagged ahead | Advisory |
|---|---|---|---|
mfaatest @1.0.0 | npm | 2 days before | MAL-2026-15629 |
spc-grafeno-login @1.0.0 | npm | 3 days before | MAL-2026-15633 |
tailwind-minanimated @2.3.7 | npm | 2 hours before | MAL-2026-15634 |
tailwind-modernanimation @2.3.8 | npm | 2 hours before | MAL-2026-15635 |
tailwindcss-forms-style @0.1.2 | npm | 2 hours before | MAL-2026-15636 |
test__123q1 @3.2.4 | npm | 2 days before | MAL-2026-15637 |
test__123q1 @4.3.5 | npm | 2 days before | MAL-2026-15637 |
spc_login @1.0.0 | npm | 3 days before | MAL-2026-15622 |
gas-monitor @1.1.0 | npm | 2 days before | MAL-2026-15621 |
pyservercheck @0.1.1 | pypi | 2 hours before | MAL-2026-15603 |
eslint-prettier-js @0.0.1 | npm | 1 hour before | MAL-2026-15601 |
auth-app-streamlit @2.1.1 | pypi | 1 hour before | MAL-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.