DEBSBOM-SEC-SCAN(1)
π debsbom-sec-scan(1) π
okay bestie, listen up β this is the debsbom-sec-scan page from the debsbom manual, and it's literally the vibe check for your SBOM. let's get into it β¨
πΈ NAME πΈ
debsbom-sec-scan β the debsbom sec-scan command. that's it, that's the name, slay π
π¦ SYNOPSIS π¦
debsbom sec-scan [-h] [-t {cdx,spdx}] [--author AUTHOR]
[--default-product {component,distribution}]
[--product PRODUCT] [--db DB] [--distro DISTRO] [--update-db]
[--filter FILTER] [-f {text,json,sarif,vex}]
[--min-urgency {high,medium,low,unimportant,end-of-life,not-yet-assigned}]
[--tracker TRACKER] [--with-paths-to-root]
[bomin]
it's giving very "one long line but make it fashion" π
π DESCRIPTION π
Check sbom for security vulnerabilities. yes queen, that's the whole mission statement.
it scans packages from an SBOM for security vulnerabilities. like, it looks at everything you shipped and goes "hmm, any of this problematic?" and then tells you. no cap π₯
π JSON Output Schema π
so when the application is run with JSON output enabled (via the --json flag), status messages get emitted as single-line JSON objects to standard output. each line is one distinct scan result (for example, a vulnerability affecting a package). one line, one result, no overlapping, periodt.
the schema for these JSON objects is as follows β and bestie, this is exact, do not freestyle it:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/siemens/debsbom/refs/heads/main/src/debsbom/schema/schema-sec-scan.json",
"title": "Security Scan Result",
"definitions": {
"vulnerability": {
"type": "object",
"required": [
"id",
"status",
"urgency",
"tracker"
],
"properties": {
"id": {
"type": "string",
"description": "Vulnerability identifier (CVE or temporary ID)"
},
"status": {
"type": "string",
"enum": [
"resolved",
"undetermined",
"open"
],
"description": "Current vulnerability status"
},
"urgency": {
"type": "string",
"enum": [
"high",
"medium",
"low",
"unimportant",
"end-of-life",
"not-yet-assigned"
],
"description": "Urgency level"
},
"fixed-in": {
"type": [
"string"
],
"description": "Version in which the vulnerability is fixed"
},
"desc": {
"type": [
"string"
],
"description": "Vulnerability description"
},
"tracker": {
"type": [
"string"
],
"format": "uri",
"description": "URL to the vulnerability tracker entry"
},
"debianbug": {
"type": "integer",
"description": "Debian bug id"
},
"bugreport": {
"type": [
"string"
],
"format": "uri",
"description": "URL to the debian bug tracker entry"
},
"nodsa": {
"type": [
"string"
],
"description": "Reason why no DSA is issued"
}
},
"additionalProperties": false
},
"pathsToRoot": {
"type": "object",
"properties": {
"allShortest": {
"type": "array",
"items": {
"$ref": "schema-trace-path.json"
}
}
}
}
},
"type": "object",
"required": [
"package",
"purl",
"vulnerability"
],
"properties": {
"package": {
"type": "string",
"description": "Package name and version"
},
"purl": {
"type": "string",
"description": "Package URL (PURL) identifier"
},
"vulnerability": {
"$ref": "#/definitions/vulnerability"
},
"pathsToRoot": {
"$ref": "#/definitions/pathsToRoot"
}
},
"additionalProperties": false
}
β¨ OPTIONS β¨
π Positional Arguments π
bominβ the sbom file(s) to process for'bomin'. and yes, you can pass'-'to read from stdin, iconic behavior honestly π«Ά
π Named Arguments π
-t,--sbom-typeβ which SBOM type to process (default is auto-detect). heads up: this one is required when you're reading from stdin, so don't forget it.
possible choices: cdx, spdx
--authorβ the author of the document (-f vexonly, so it does literally nothing otherwise)--default-product='component'β controls whether the component or the distribution gets used as the product in VEX statements (-f vexonly, default is'component')
possible choices: component, distribution
--productβ the product to use in VEX statements. this one overwrites the behavior of--default-product(-f vexonly)--db=~/.cache/debsbom/security-tracker.jsonβ path to the Debian security tracker JSON database (default:~/.cache/debsbom/security-tracker.json)--distro='trixie'β the Debian distribution to check (default:'trixie')--update-db=Falseβ downloads the security tracker database (from--tracker) and stores it at the path specified by--db--filterβ limits the search to a specific package name. tunnel vision, but make it intentional-f='text',--format='text'β the output format (default:'text')
possible choices: text, json, sarif, vex
--min-urgency='not-yet-assigned'β filters CVEs by urgency (default:'not-yet-assigned')
possible choices: high, medium, low, unimportant, end-of-life, not-yet-assigned
--tracker='https://security-tracker.debian.org/tracker'β URL of the upstream debian security tracker (default:'https://security-tracker.debian.org/tracker')--with-paths-to-root=Falseβ emits the path from component to root for each affected package (-f jsononly)
π SEE ALSO π
π DEBSBOM π
part of the debsbom(1) suite. family reunion energy π§
Author
Christoph Steiger, Felix Moessbauer
Copyright
2025, Siemens
and that's the whole page, bestie π this came from the debsbom source, and the version/date stamped on it is Jul 28, 2026 β so you know exactly when this particular lore dropped. go scan something, stay safe out there ππΈ
π¦ where this page comes from
- ubuntu stonking: debsbom 0.9.0-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms