Safeguard
Security Guides•

Advisories change after publication: how often records get updated

In OSV, 60 to 90 percent of advisories were last modified more than 30 days after publication. Why a one time scan goes stale and how often to rescan.

Safeguard Security Team
4 min read

Advisories are living records. In OSV exports from 19 October 2026, between 59.9 percent (npm) and 89.6 percent (RubyGems) of advisories carry a modified date more than 30 days after their published date. A scan result from last quarter can be wrong today, in either direction.

Method

We downloaded eight OSV exports on 19 October 2026 and kept vulnerability advisories (excluding MAL- and withdrawn records). For each we compared the modified and published timestamps. We also counted records modified in the 30 days before 19 October.

Limits matter here. A modified date changes for any edit, including a typo fix, a new reference or a bulk metadata update. It does not tell you what changed, and it cannot tell a fix of the affected range from a cosmetic edit. We report the timestamps only.

What the numbers say

EcosystemModified more than 30 days after publicationMore than 365 days afterMedian gap in daysModified in the last 30 days
RubyGems89.6%73.4%9301.1%
Maven86.8%65.2%5881.7%
Packagist78.0%52.7%4602.9%
crates.io69.1%48.0%30810.4%
PyPI65.1%46.5%2125.3%
NuGet65.0%51.1%4085.7%
Go61.7%37.1%1056.2%
npm59.9%41.1%1145.6%

In every ecosystem, a majority of records were touched well after publication, and in four a majority were touched more than a year later.

Recent activity is also uneven. 10.4 percent of crates.io records were modified in the last 30 days, against about 1 to 6 percent elsewhere. Among records published more than a year ago, 5.5 percent of crates.io records changed in that window, against 0.0 to 1.3 percent in the other seven ecosystems.

What changes in a record

We did not inspect edits, but the fields most likely to move are the ones you rely on. Affected ranges get corrected as maintainers find the true first or last affected version. A fixed version is added once a patch ships. Severity is added or revised. An alias to a CVE appears once a CVE is assigned.

Each of those can flip a finding: a version you were told was vulnerable is cleared, a package with no fix gets one, or a rating moves above your gate threshold.

What to do with it

Rescan on a schedule, not once. Daily is reasonable for production dependencies, and it costs little because the matching is automated.

Keep the date of the data. When you record a decision such as "not affected" or "accepted risk", note when you made it and review it, because the record behind it can change.

Alert on changes to findings you already triaged. A record that moves from "no fix" to "fixed in a later version" is a task. A record that moves up in severity deserves a second look.

Safeguard's SBOM and dependency scanning can be rerun against updated advisory data, and the free scan at https://gold.safeguard.sh/scan shows a current result for one repository.

Try it yourself

Open the demo and look at how monitoring turns a change in advisory data into a new finding on an inventory you already scanned.

Click through it at your own pace, or open it full screen.

Quick check

Does a modified date mean the advisory changed in a way that matters?

Not necessarily. Any edit changes it, including minor ones. It does show that records are not static.

How often should I rescan?

Daily for production dependencies is a reasonable default, with a rescan whenever a large advisory batch lands.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.