Skip to content

Alpine 3.24 musl 1.2.6-r3 incorrectly matched to CVE-2026-107891 using edge's r6 threshold #248

Open

Description

@brspoon

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.json

No 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.

Download the evidence bundle

Bundle SHA-256: 58e07d890ab85b31c00d2931bc839c86521767f7a26232893e95ac04cf232dd9 (56,173 bytes).

Activity

  1. jkreileder commented on Oct 22, 2026

    @jkreileder

    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 stock musl / musl-utils 1.2.6-r3. Docker Scout 1.27.0 reports:

    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
    

    Reproduce locally with:

    docker scout cves --only-package musl docker.io/jkreileder/cf-ips-to-hcloud-fw:1.5.2

    It reports musl 1.2.6-r3 with 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 in musl 1.2.6-r3. The images built on the previous python:3.15.0-alpine3.24 base shipped 1.2.6-r2 and were correctly flagged.

    Because the Scout action runs with only-fixed: true, it treats the nonexistent r6 as an available fix, so exit-code: true scans fail with nothing to upgrade to.

  2. brspoon commented on Oct 22, 2026

    @brspoon
    Author

    Thanks for confirming this on an unmodified Official Python image. That’s helpful corroboration of the Alpine 3.24 version mismatch.

  3. cjrobbertse-ob commented on Oct 23, 2026

    @cjrobbertse-ob

    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:

    Package: musl 1.2.6-r3
    Distribution: Alpine 3.24
    Affected range: <1.2.6-r6
    Fixed version: 1.2.6-r6
    Severity: UNSPECIFIED
    

    Exact built platform image manifest digests (unpublished candidate images, not registry pull references):

    • linux/amd64: sha256:2dbe7339cd0fd57eb2cbbe052d957eccefdf4cc56605bc6aba8f94c38ca557d5
    • linux/arm64: sha256:2b55679aa49f51a56b6de8a7585351fc725a0fb2fc449a9749f67b0233ebce9e

    We inspected both actual candidate archives without executing them. Both APK inventories identify installed musl 1.2.6-r3 and source commit 8f79d39391b46d6dbf1800fb68b8212a21d5ee2e. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions