Skip to main content
Security advisories in Agent Volumes are package-facing records that describe known vulnerabilities in published volumes. They are expressed in terms of volume identity and affected version history, not in terms of individual release artifacts. Unlike trust attachments — which are bound to a specific release subject — advisories target a volume across a range of versions and are updated over time as patches become available.
Advisories are not release-bound trust attachments. They live on a separate discovery surface and use different semantics from BOMs, provenance attestations, and signatures.

Advisory structure

Each advisory includes the following fields:

Identification

An advisory has one bibliotheca-local ID and may include external ecosystem identifiers when available:
The local field is the mandatory bibliotheca-assigned identifier. The preferredExternal field names the primary external advisory record when one exists. The aliases array lists additional external identifiers such as CVE numbers or OSV IDs.

Source and ecosystem

The source field identifies where the advisory originated:
The v0.1 core source ecosystem vocabulary is:

Severity

The v0.1 core severity vocabulary has four levels: critical, high, medium, and low. Every advisory must declare a severity.

Lifecycle fields

Every advisory must include published and updated timestamps in ISO 8601 format:
When an advisory is withdrawn, the record must include withdrawal metadata with an at timestamp indicating when the withdrawal occurred.

Affected version history

Advisory targeting is volume-level only in v0.1. The affected field identifies the volume and describes the affected version history using an event-based model:

Event types

The sentinel value introduced = "0" means the vulnerability has been present since the beginning of the package’s version history — before any known version. All other event values use full SemVer strings. Events within a range are ordered and interpreted together to define which versions are affected.

Component impact metadata

An advisory may include informational componentImpact metadata that names specific components affected within the volume:
Component impact metadata is informational only. It does not change the normative volume-level target of the advisory. Do not use it to conclude that only specific components are affected.

Advisory relationships

Advisories may be related to each other. Use the relationships array to express those connections:
The v0.1 core relationship vocabulary:

Complete advisory example

Here is the complete advisory fixture from the v0.1 conformance suite:

Querying advisories via the API

Use these endpoints to discover advisories for a volume:
List responses return an items collection envelope. Each item follows the advisory schema described above. You can query by both scopeless and scoped volume names:
Advisory read and discovery behavior is part of the v0.1 core interoperability contract and must be supported by all conforming bibliothecas. Advisory write operations — creating, updating, withdrawing, and moderating advisories — are bibliotheca-local in v0.1 and are not standardized by the spec.

Checking advisories during install

A conforming client should check for advisories on install. If an advisory affects the version you are about to install, surface the advisory details to the user before proceeding. The spec does not mandate a specific blocking policy — blocking decisions based on severity, affected range, or relationship type remain local policy — but advisories must be discoverable and surfaced.
Scanner findings are not advisory records. A bibliotheca may create an advisory based on scanner output under local policy, but the portable contract is the advisory read model only. Do not expect scanner results to appear directly as advisories without bibliotheca-side curation.