Safeguard
Security Guides•

Which advisory fields help you build an exposure timeline?

Public advisory records carry published, modified and fixed fields. Here is how to use them to anchor the advisory side of your exposure timeline.

Safeguard Security Team
4 min read

Use the published and modified timestamps for when the public learned of a flaw, and the fixed event in the affected ranges for the first version that resolves it. Together with your own PR, merge and deploy times, they let you draw a complete exposure timeline with no guesswork.

Why the advisory side matters

An exposure window has an outside half you do not control and an inside half you do. To report honestly, you need to separate them. If a fix was published a week before you shipped it, that week is yours. If the advisory appeared an hour before your alert, the delay is not.

What the OSV schema provides

The Open Source Vulnerability schema describes a common record format. Each record includes an id, a modified timestamp, a published timestamp, an optional withdrawn timestamp, aliases, a summary and details, severity entries, and a list of affected packages. Each affected entry has an ecosystem, name and ranges, and ranges contain events such as introduced, fixed, last_affected and limit. The record also has references and credits.

FieldWhat it tells you
publishedWhen this record was first published by its source
modifiedWhen the record last changed
withdrawnIf set, the record was retracted
aliasesOther IDs for the same flaw, such as a CVE
events with introducedThe first affected version
events with fixedThe first version containing the fix
referencesLinks to advisories, patches and commits

Treat published as the timestamp of that record, from that source. Another database might have published earlier or later. When you build a timeline, note which source your timestamp came from.

Putting it into a timeline

  1. Advisory published. Use the earliest reliable source you can cite.
  2. Fix available. Find the version in the fixed event, then check the release date in the package registry.
  3. Your alert. The timestamp from your tooling.
  4. PR opened, merged, deployed. From your repository and pipeline.
  5. Verified. The time you confirmed the running version.

Each interval is a stage with a different owner.

IntervalOwner
Advisory to fix releasedUpstream
Fix released to your alertYour tooling
Alert to PRYour bot or triage
PR to mergeReview
Merge to deployPipeline

Cautions

  • Records can be modified after the fact, so capture the timestamps when you build the timeline rather than rereading them months later.
  • A withdrawn record should be marked, not silently dropped.
  • Aliases mean one flaw can have several records. Deduplicate before counting.
  • The fixed event is a version, not a date. Look up the release date separately.

Keep it simple

You do not need all of this for every finding. Capture the advisory published time, fix release time and your own four timestamps for each high priority finding. That is enough to answer what stage cost the most.

Try it yourself

Open the zero-day watch demo and look at how a newly published flaw is matched against your inventory. That match is the point where the inside half of your timeline begins.

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

Safeguard offers zero-day discovery and dependency scanning. A free scan is available at gold.safeguard.sh/scan.

Quick check

Is the published timestamp the date the flaw was found?

No. It is when that record was published by its source. The flaw may have been known privately earlier.

Where do I get the fix date?

The fixed event gives a version. Check the registry for when that version was released.

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.