SBOM-Schwachstellenbericht-API
Referenz zum Lesen des gespeicherten Trivy-Schwachstellenberichts für ein SBOM-gestütztes Paketartefakt oder OCI-Subject.
/api/sbom/vulnerabilities/report/
Zweck
- den effektiven Schwachstellenbericht für ein bestehendes Subject lesen
- denselben subject-spezifischen Bericht nutzen, den Craftifact in
Findings->Vulnerabilitieszeigt - Automation unterstützen, die gespeicherte Findings braucht, ohne das UI auszulesen
Request
Query-Parameter
Sende immer repository.
Nutze danach genau einen Zielmodus.
Paketartefakt-Modus
-
artifact_id: erforderlich
Nutze diesen Modus, wenn der Bericht zu einem bestehenden Paketartefakt gehört.
OCI-Modus
oci_digest: erforderlich
Nutze diesen Modus, wenn der Bericht zu bestehendem OCI-Inhalt gehört, der im ausgewählten Repository per Digest identifiziert wird.
Optionale Filter
severity_min: gibt nur Findings ab dem ausgewählten Schweregrad zurück.severity: gibt nur Findings mit einem exakten Schweregrad zurück. Wiederhole den Parameter, um mehrere Schweregrade einzuschließen.q: filtert die zurückgegebenen Findings nach Schwachstellen- und Pakettext.hide_suppressed=1: blendet aktiv unterdrückte Findings in der zurückgegebenen Liste aus.limitundoffset: blättern durch die zurückgegebene Findings-Liste.
| Name | Erforderlich | Typ |
|---|---|---|
repository |
Optional | string |
artifact_id |
Optional | string · uuid |
oci_digest |
Optional | string · pattern: ^sha256:[a-f0-9]{64}$ |
severity_min |
Optional | string · enum: critical, high, medium, low, unknown |
limit |
Optional | integer |
offset |
Optional | integer |
Response
Die Response ist subject-spezifisch. Craftifact wählt die effektive SBOM für das angefragte Subject und führt Findings aus mehreren SBOM-Dokumenten für dasselbe Artefakt oder Image nicht zusammen.
Prüfe scan_state und summary, bevor du auf Basis von results handelst.
Pending-, Failed- oder Invalid-Zustände solltest du nicht als sauberes Ergebnis behandeln. Prüfe außerdem summary.stale, bevor du einen fertigen Bericht als aktuell behandelst.
Häufige Statuscodes:
200 OK: das ausgewählte Subject wurde aufgelöst und der Berichtszustand wird zurückgegeben.400 Bad Request: Zielauswahl, Paging oder Schweregrad-Filter ist ungültig.401 Unauthorized: es wurden keine gültigen programmgesteuerten Credentials mitgegeben.403 Forbidden: dem Aufrufer fehlt Lesezugriff oder Token-Scope für diese Repository-Familie.404 Not Found: Repository oder ausgewähltes Subject wird nicht zu einem zugänglichen Ziel aufgelöst.
OK
target
Erforderlich
object
document_id
Erforderlich
object
scan_state
Erforderlich
object
summary
Optional
object
results
Erforderlich
array
total
Erforderlich
integer
limit
Erforderlich
integer
offset
Erforderlich
integer
{
"target": {
"kind": "artifact",
"artifact_id": "3f5d0a9d-4cbe-4e6a-b5b1-1b4c3930d9a1",
"oci_digest": null,
"repository": "libs-release"
},
"document_id": "11111111-2222-3333-4444-555555555555",
"scan_state": "ready",
"summary": {
"scan_state": "ready",
"finding_count": 1,
"max_severity": "critical",
"db_version": "1",
"db_updated_at": "2026-04-23T09:15:00Z",
"by_severity": {
"critical": 1,
"high": 0,
"medium": 0,
"low": 0,
"unknown": 0
}
},
"results": [
{
"id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"vulnerability_id": "CVE-2026-0001",
"severity": "critical",
"package_type": "maven",
"package_name": "log4j-core",
"package_path": "pkg:maven/com.example/demo@1.0.0",
"package_purl": "pkg:maven/org.apache.logging.log4j/log4j-core@2.17.0",
"component_name": "lang-pkgs",
"component_version": "2.17.0",
"component_purl": "pkg:maven/org.apache.logging.log4j/log4j-core@2.17.0",
"installed_version": "2.17.0",
"fixed_version": "2.17.1",
"advisory_url": "https://example.test/CVE-2026-0001",
"title": "Remote code execution"
}
],
"total": 1,
"limit": 20,
"offset": 0
}
Bad Request
Bad request. Typical causes include:
repositoryis missing.- neither or both target selectors were provided.
limit,offset, orseverity_minis invalid.
error
Erforderlich
string
Unauthorized
error
Erforderlich
string
Forbidden
error
Erforderlich
string
Not Found
error
Erforderlich
string
Beispiele
curl \
-H "Authorization: Bearer $CRAFTIFACT_TOKEN" \
"https://packages.example.com/api/sbom/vulnerabilities/report/?repository=libs-release&artifact_id=ARTIFACT_ID"
curl \
-H "Authorization: Bearer $CRAFTIFACT_TOKEN" \
"https://packages.example.com/api/sbom/vulnerabilities/report/?repository=containers&oci_digest=sha256:DIGEST&severity_min=high"
Verwandte Seiten
- Für Triage im UI siehe Schwachstellen-Findings prüfen.
- Für Dependency-Lookup vor der Findings-Prüfung siehe Abhängigkeiten erkunden.
- Um zuerst SBOM-Daten zu binden, siehe SBOM-Upload-API.