False negative: trivy sbom misses 278 CVEs on Syft CycloneDX that trivy image finds on the same nginx:1.25 tar (13 CRITICAL, 63 HIGH) #11139
Replies: 1 comment
|
One clarification on the 278, since the two numbers in the post do not 278 is the size of the set difference, IDs present in the trivy image The severity breakdown in the post is over the 278 set and is unchanged. The 6 are worth noting on their own, because they mean neither result is That is also why step 6 lands on 415 rather than 409: after the SrcName Happy to publish both ID lists if that is useful. |
Uh oh!
There was an error while loading. Please reload this page.
IDs
CVE-2023-45853, CVE-2024-37371, CVE-2024-45491, CVE-2024-45492, CVE-2025-0838, CVE-2026-33845, CVE-2026-42010, CVE-2026-8376
Description
Scanning nginx:1.25 with
trivy imagereports 409 unique CVEs. Scanning aSyft-generated CycloneDX SBOM of that same image tar with
trivy sbomreports137. The 278 missing include 13 CRITICAL and 63 HIGH.
The mechanism was explained by @DmitriyLewen in discussion #7850 (Nov 2024) for
Alpine: Trivy reads
aquasecurity:trivy:SrcNamefrom CycloneDX properties,Syft writes the source package into the PURL
upstream=qualifier instead, andwithout the property
SrcNamefalls back to the binary package name. Debianadvisories are keyed on source packages, so matching fails.
Nothing here is new about the cause. What I have is the effect size on Debian
images, measured on current releases, with a control group and an intervention
that confirms the mechanism.
Note that Trivy is not dropping packages: the log shows
pkg_num=149andcorrect OS detection (
debian 12.5). All 149 packages are read. Every one ofthem resolves its source name to its binary name.
Severity of the 278 missed CVEs (unique IDs, from
trivy imageon the same tar):Image digest: sha256:a484819eb60211f5299034ac80f6a681b06f89e65866ce91f356ed7c72af059c
Reproduced 2026-08-24 on a freshly pulled image.
Reproduction Steps
Target
SBOM
Scanner
Vulnerability
Target OS
Debian 12
Debug Output
All reactions