SECOND MEASUREMENT SM-021

Dependabot doesn’t alert on a security advisory until GitHub reviews it, which GitHub’s documentation says “can take up to 72 hours”. Since April, 3,226 of 4,472 reviewed advisories took longer, and the median wait was 8 days

Markovian ProtocolMeasured 2026-10-17Status: published 2026-10-19; questions sent to GitHub 2026-10-19DOI: 10.5281/zenodo.23439042

The claim: GitHub advisory review: docs say up to 72 hours; since April, 72.1% of reviewed advisories took longer

What we found: 3,226 of 4,472 advisories published since April took longer than 72 hours to be reviewed (72.1%), median 8 days; January to March, 4.6%. Dependabot does not alert until review.

Status: Published 19 Oct; question to the GitHub Advisory Database team pending

When a project publishes a security advisory on GitHub, GitHub reviews it into the GitHub Advisory Database, and Dependabot does not alert on an advisory until it is reviewed. GitHub’s documentation says the review “can take up to 72 hours”. We read both timestamps for every CVE GitHub issued that NVD published from 1 January to 16 October 2026; 7,076 have a 2026 advisory naming a package in an ecosystem the database supports. Of those reviewed, 4.6% of January to March advisories took longer than 72 hours; from April on, 72.1%.

The short version

Disclosure: Markovian Protocol holds no financial position in GitHub or Microsoft, was paid by no one for this work, and showed it to no one before publication. How we work.

Month by month

Advisory publishedIn sampleReviewedOver 72 hShareMedian wait, reviewedMedian if all not in database are waitingNot in databaseDays to NVD (median)
January 2026311274124.4%11 hours14 hours370.5
February 2026438381184.7%15 hours19 hours571
March 20261,009859394.5%24 hours30 hours1501.8
April 20261,02285630936.1%34 hours53 hours1664.6
May 20261,2021,05180576.6%6 days7 days15124.4
June 20261,3571,15588176.3%23 days36 days20234
July 202691270459384.2%31 days51 days20827.5
August 2026 †43535130988.0%27 days38 days8420.2
September 2026 †35131830395.3%14 days15 days3313.8
October 2026 †39372670.3%6 days6 days24.3

Repository advisories behind CVEs issued by GitHub (NVD source identifier security-advisories@github.com) and published by NVD 1 January to 16 October 2026, whose advisory names a package in npm, pip, Maven, NuGet, Go, RubyGems, Composer, Rust, Erlang, Actions, Pub or Swift, the ecosystems the database supports.3 Wait = github_reviewed_at minus the repository advisory’s published_at, compared to the second. The second median counts each advisory not in the database at its age when we read it. It is a floor only if every one of them is still waiting; some were probably declined (see the short version), and those pull it up. Read from 11:55 UTC on 2026-10-17.

Why the recent months look better than they are (†). The sample is chosen by the date NVD published the CVE, and GitHub usually reviews the advisory before its CVE appears on NVD: 4,100 of the 5,986 reviewed advisories. As the queue grew, the gap from a project’s advisory to its CVE on NVD grew too, to a median of 34 days for June’s advisories. So an advisory published in August, September or October that is still waiting mostly has no CVE on NVD yet and is not in our sample at all. That makes the counts for those months too low and their medians too short, so the falling medians after July cannot be read as a recovery.

By ecosystem

EcosystemReviewed in 2026Over 72 hMedian wait
npm1,82654.2%4 days
pip1,33259.5%6 days
go1,22254.3%91 hours
composer80749.8%71 hours
maven34864.9%7 days
rust19751.8%73 hours
rubygems15943.4%39 hours
nuget12370.7%8 days

Every ecosystem with 100 or more reviewed advisories, by the ecosystems the project named in its own advisory; one naming packages in two ecosystems counts in both. 766 reviewed advisories whose project left the ecosystem blank or unsupported, but which GitHub reviewed into a supported one, are not counted. Adding them changes little: 5.1% over 72 hours for January to March, 71.8% from April.

Why the wait matters

A project that publishes an advisory has already told the world about the flaw. The projects that depend on it hear from Dependabot, and Dependabot does not alert on an unreviewed advisory.3 GitHub’s blog said so for the backlog: “New advisories may take longer to trigger, with critical issues prioritized.”2 Our numbers do not separate advisories by severity, so critical ones may move faster than the median. For the median advisory published since April that has been reviewed, the gap was 8 days.

A study of 2019 to 2025 found repository advisories were the database’s fast path.5 Our January to March numbers agree; the change starts in April.

How this ends

GitHub can close it either way: by clearing the queue until reviews are back inside 72 hours, or by changing the documentation to say what to expect now. The blog promised, “If things improve, we’ll tell you,” and the September staff reply, about CVE request turnaround, said “Feedback around updating our turnaround time was passed along to our curation team.”4 We recheck monthly and print the table here.

Our questions to the GitHub Advisory Database team

  1. Will the documentation’s “up to 72 hours” be updated to the current expectation, and is there a date by which reviews will be back inside it?
  2. Would you publish the queue: advisories waiting and the median wait, weekly?
  3. Of the 1,090 2026 advisories in our sample that were not in the database on 2026-10-17, how many were declined and how many are still waiting?

Their reply, scored

Sent 19 October as issue 10425; no reply yet.

What we told whom, and when.

17 Oct 2026Measured. Nobody has seen the page.
19 Oct 2026Published. The three questions above opened as github/advisory-database issue 10425, where the curation team answers in public.

What we can’t be sure of

Run it yourself

gunzip -k exhibits/census_2026-10-17.jsonl.gz
python3 analyze.py exhibits/census_2026-10-17.jsonl 2026-10-17T11:55:00Z summary_2026-10-17.json
python3 git_check.py exhibits/census_2026-10-17.jsonl 40 20261017 git_check_2026-10-17.json
python3 ghsa_census.py census_new.jsonl 2026-01-01 2026-10-16   # a fresh census, about four hours

Needs Python 3 and the GitHub CLI logged in; NVD’s API is anonymous and paced. The census makes about 24,000 GitHub API calls, roughly four hours at the standard rate limit. Scripts and exhibits: sm-021/.

References

  1. GitHub Docs, Repository security advisories. docs.github.com, saved copy github_docs_about_repository_security_advisories_2026-10-17.md.
  2. GitHub Blog, Inside the Advisory Database and what happens when vulnerability volume breaks records, 29 June 2026, updated 1 July. github.blog, saved copy github_blog_2026-06-29_advisory_database_volume.html.
  3. GitHub Docs, GitHub Advisory database. docs.github.com, saved copy github_docs_about_the_github_advisory_database_2026-10-17.md.
  4. GitHub Community discussion 205706, CVE not assigned for 24 days?, staff reply of 8 September 2026. github.com, saved copy github_community_discussion_205706_2026-10-17.json; the replier’s GitHub profile (company “GitHub”), github_user_ghostinhershell_2026-10-18.json.
  5. C. Segal, P. Segal, C. E. Banjar et al., Characterizing and Modeling the GitHub Security Advisories Review Pipeline, MSR 2026. arXiv:2602.06009.
  6. NVD CVE API 2.0, sourceIdentifier=security-advisories@github.com; GitHub REST API, repository security advisories and global advisories; github/advisory-database commit history.