Repository navigation
Description
Description
Docker Scout 1.27.0 reports CVE-2026-107891 on the genuine signed Alpine 3.24 musl-1.2.6-r3 package. The reported package URL explicitly has os_version=3.24, but Scout uses an affected range of <1.2.6-r6 and a fixed version of 1.2.6-r6.
Alpine's branch-specific security data lists:
| Branch | musl fixed version for CVE-2026-107891 |
|---|---|
| v3.24/main | 1.2.6-r3 |
| edge/main | 1.2.6-r6 |
The r6 threshold appears to come from edge despite the Alpine 3.24 package identity. Please check the advisory's distro-branch selection.
Our earlier 1.2.6-r2 images were genuinely affected; we do not dispute or ask to suppress those findings. The false-positive report concerns the replacement 1.2.6-r3 package.
Actual result
The complete unsuppressed native linux/amd64 and linux/arm64 scans both report:
Package pkg:apk/alpine/musl@1.2.6-r3?os_name=alpine&os_version=3.24
Affected range <1.2.6-r6
Fixed version 1.2.6-r6
The finding is kind=fail, level=none, severity UNSPECIFIED. Our acceptance gate counts every Scout finding and blocks the image; no severity exclusion, exception or VEX suppression is used.
Producing run: https://github.com/brspoon/keep/actions/runs/39728273258
Commit: 3437692f4473856e875187cd05a55d129e915219
Run attempt: 1. The scanner executable is checksum-pinned, and the original SARIF identifies version 1.27.0.
Expected result
For Alpine 3.24, use the vendor's 1.2.6-r3 fixed threshold, continue reporting this CVE for r2, and do not match the CVE to the authentic r3 package. The edge branch should retain its separate r6 threshold; this is not a request to suppress the CVE globally.
The r3 stable package recipe declares the CVE fixed at r3 and includes the fix patch, corresponding to the upstream fix. The vulnerability was disclosed by the musl maintainer.
Reproduction and environment
Both scans run natively on GitHub-hosted Linux runners. The candidate is built locally from the public repository at the commit above, using a digest-pinned DHI Alpine 3.24 base and replacing its musl with the official signed Alpine 3.24 r3 APK.
The exact scanner command is:
docker-scout cves local://keep-ci --format sarif --output candidate-scout-ARCH.jsonNo severity, package, base, VEX or suppression filters are set.
Exact replacement packages:
- x86_64 r3 APK, SHA-256
e142255d0fa397f14318996bc10378093dcc069dc3dd1b6818c8f28a789c21da - aarch64 r3 APK, SHA-256
2e17864102278d9049c3a56f1bceed9e8cf287065617e579325123443daed8a5
Both APK signatures, compressed payload hashes and package metadata were verified using the pinned Alpine architecture keys. The runtime checks also verified the installed loader bytes against the exact APK payload. We retain the old base package's source/license attribution for earlier image layers without relabeling the current installed package.
Evidence
The attached bundle contains original complete Scout 1.27.0 SARIF files from both native r3 scans, complete original Alpine v3.24 and edge security-feed snapshots, the pinned r3 APKBUILD and patch, public package verification records, producing-run metadata and a replayed SHA-256 inventory. The source-tree scanner pins match Docker's published release checksums.
The security feeds were retrieved at 2026-10-22T05:37:09Z. v3.24 data was last modified 2026-10-21T18:11:15Z; edge data was last modified 2026-10-21T22:43:03Z.
Please confirm whether the correction is in the backend advisory data and whether a rescan of these same exact r3 packages will pick it up.
Bundle SHA-256: 58e07d890ab85b31c00d2931bc839c86521767f7a26232893e95ac04cf232dd9 (56,173 bytes).
Activity
jkreileder commentedon Oct 22, 2026
Same false positive here, on an unmodified Docker Official Image base. The finding doesn't depend on swapping in musl by hand.
Our image is built
FROM docker.io/library/python:3.15.1-alpine3.24@sha256:e85751f6fe48ddb0619557d606ad93685134347a821b85fd9cd9dfa61addb970, which ships Alpine's stockmusl/musl-utils1.2.6-r3. Docker Scout 1.27.0 reports:Reproduce locally with:
It reports
musl 1.2.6-r3with 1 unspecified vulnerability. Grype (DB built 2026-10-22) reports nothing for the same image, matching Alpine's v3.24 secdb, which lists CVE-2026-107891 as fixed inmusl1.2.6-r3. The images built on the previouspython:3.15.0-alpine3.24base shipped1.2.6-r2and were correctly flagged.Because the Scout action runs with
only-fixed: true, it treats the nonexistent r6 as an available fix, soexit-code: truescans fail with nothing to upgrade to.brspoon commentedon Oct 22, 2026
Thanks for confirming this on an unmodified Official Python image. That’s helpful corroboration of the Alpine 3.24 version mismatch.
cjrobbertse-ob commentedon Oct 23, 2026
We can corroborate this in OpenBankingUK/conformance-suite-v2 using Docker Scout 1.24.0, not just 1.27.0.
Actual CI run: https://github.com/OpenBankingUK/conformance-suite-v2/actions/runs/39926133606 (2026-10-23).
Both linux/amd64 and linux/arm64 scans report only CVE-2026-107891:
Exact built platform image manifest digests (unpublished candidate images, not registry pull references):
sha256:2dbe7339cd0fd57eb2cbbe052d957eccefdf4cc56605bc6aba8f94c38ca557d5sha256:2b55679aa49f51a56b6de8a7585351fc725a0fb2fc449a9749f67b0233ebce9eWe inspected both actual candidate archives without executing them. Both APK inventories identify installed musl
1.2.6-r3and source commit8f79d39391b46d6dbf1800fb68b8212a21d5ee2e. That stable-branch commit adds the CVE patch and records the fix at r3:alpinelinux/aports@8f79d39
The current Alpine tracker and v3.24 security database agree: stable 3.24 is fixed at r3; edge is fixed at r6:
https://security.alpinelinux.org/vuln/CVE-2026-107891
https://secdb.alpinelinux.org/v3.24/main.json
For comparison, Snyk 1.1298.2 reports zero findings on both candidate platforms; its report for our previous musl r2 image explicitly identifies r3 as the fix. This corroborates the vendor data but is not itself proof of correctness.
Our original Scout findings remain visible and the combined CI gate remains failed; no suppression or threshold change has been applied. Please confirm the Alpine 3.24 advisory mapping and whether a backend correction will be picked up by a rescan with Scout 1.24.0. We are requesting the branch-specific data correction, not a global exclusion of this CVE.
ci(scan): suppress Scout's musl false positive with a VEX statement
ci(scan): suppress Scout's musl false positive with a VEX statement
ci(scan): suppress Scout's musl false positive with a VEX statement (#…