fix: ignore CVE-2026-69246 and CVE-2026-54133 for 10.16.4 and 11.0.0 - #689
Merged
Conversation
Docker CI has been red on master since the 2026-08-09 nightly. The Trivy scan step fails on GHSA-v5mv-p594-2x33 / CVE-2026-69246, "Guzzle: Noncanonical host can bypass host-based checks" (HIGH, CVSS 7.2), published 2026-08-03 -- one day after the last green run on 2026-08-02. Nothing in this repo changed; the new advisory simply started matching the guzzlehttp/guzzle copies vendored inside the pinned ownCloud release tarballs. The scan runs with severity HIGH,CRITICAL and exit-code 1, so the step exits 1 and matrix fail-fast cancels the sibling job. That is why only the 10.16.4 job ever reported a failure while the 11.0.0 job showed up as cancelled. 10.16.4 hits the CVE in four bundles: lib/composer (core) 7.10.0 apps/graphapi 7.4.5 apps/files_external_dropbox 7.8.1 updater 7.9.2 11.0.0 is also affected, which the cancelled job had never revealed. Its core lib already ships the fixed 7.15.2, but apps/files_external_dropbox vendors 7.15.1, so it would have gone red as soon as 10.16.4 stopped shadowing it. Verified by extracting the composer installed.json files from the pinned v11.0.0 tarball. Both matrix entries therefore need the ignore, not just 10.16.4. ignore-unfixed does not help here: the CVE is fixed upstream in 7.15.2 and 8.0.1, just not in ownCloud's bundle. Since this repo builds from an immutable, tag-pinned release tarball it cannot bump the vendored library, so the ignore follows the existing precedent in these files for GHSA-27qh-8cxx-2cr5 (aws-sdk-php) and CVE-2026-44167. The comments record the affected bundles and versions so the entries can be dropped once ownCloud ships the bump. This is a first mitigation to get the pipeline moving again, not a fix. The advisory is a genuine host-check bypass, exploitable where an application builds a request URI from untrusted input and makes a host decision before handing it to Guzzle. The intent is to carry the guzzle bump in a 10.16.5. There is currently no issue or PR in the owncloud org tracking it. Note the suppression itself could not be verified locally: the local Trivy vulnerability DB is frozen at 2026-06-05, two months before this CVE was published, so it does not know the ID at all. Both files were confirmed to parse under trivy --ignorefile and to satisfy the editorconfig lint; the green CI run on this PR is the actual verification. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
The guzzle ignore turned all four affected targets green, but the Trivy scan still fails, now on a second and unrelated advisory that reached the scanner's DB in the meantime: GHSA-pcw8-m77r-2528 / CVE-2026-54133, "jmespath.php has CompilerRuntime code injection via unescaped function names" (CRITICAL, CVSS 9.8), published 2026-08-18 20:16 UTC -- three hours before yesterday's failing run, whose DB had not yet picked it up. It matches mtdowling/jmespath.php 2.8.0, pulled in by the aws-sdk-php 3.337.3 that files_primary_s3 vendors. Only 10.16.4 is affected: 11.0.0 ships aws-sdk-php 3.388.9 with jmespath.php 2.9.2, already above the fixed 2.9.1, so its ignore file is deliberately left alone. Despite the 9.8 score the finding is not reachable in this image: - JmesPath\Env::createRuntime() returns the unaffected AstRuntime unless the JP_PHP_COMPILE environment variable is set. It is set nowhere in the Dockerfiles or overlays, so reaching the vulnerable CompilerRuntime at all requires an operator to inject it deliberately. - Every search() call site in the bundled SDK passes an SDK-internal literal or a service-model-derived expression -- 'Parts[0].Size', waiter acceptor arguments, paginator output tokens -- never caller input, let alone attacker input. - The advisory itself states the default AstRuntime "is not affected unless JP_PHP_COMPILE is enabled", and that the searched data document alone is insufficient: the attacker must control the expression string. The comment in the ignore file records that reasoning so the entry is not mistaken for a blanket suppression of a critical. The real fix is the same one the neighbouring GHSA-27qh-8cxx-2cr5 entry is already waiting on: ownCloud updating the bundled aws-sdk-php, which 11.0.0 has done and 10.16.x has not. Worth flagging separately: two independent new CVEs have now landed against dependencies frozen inside a tag-pinned tarball within twelve hours of each other, and each one takes the whole publish pipeline down until an ignore is added by hand. That cadence is a property of gating publishes on a scanner whose input this repo cannot change, and it will recur. Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
phil-davis
approved these changes
Aug 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docker CI has been red on
mastersince the 2026-08-09 nightly. Two independent, newly published advisories are matching dependencies vendored inside the pinned ownCloud release tarballs. Nothing in this repo changed.The scan runs with
severity: HIGH,CRITICALandexit-code: 1, so the step exits 1 and matrix fail-fast cancels the sibling job. That is why only the 10.16.4 job ever reported a failure while 11.0.0 kept showing up ascancelled— and why the second CVE below only became visible once the first was suppressed.1. CVE-2026-69246 — guzzle (HIGH, CVSS 7.2) — both images
GHSA-v5mv-p594-2x33, "Guzzle: Noncanonical host can bypass host-based checks", published 2026-08-03 21:07 UTC — one day after the last green run on 2026-08-02. Fixed upstream in
guzzlehttp/guzzle7.15.2 / 8.0.1.0)10.16.4 hits it in four bundles:
lib/composer(core)apps/graphapiapps/files_external_dropboxupdater11.0.0 is affected too, which the perpetually cancelled job had never revealed. Its core lib already ships the fixed 7.15.2, but
apps/files_external_dropboxvendors 7.15.1 — so it would have gone red as soon as 10.16.4 stopped shadowing it. Verified by extracting the composerinstalled.jsonfiles from the pinned v11.0.0 tarball. Both matrix entries therefore need the ignore.2. CVE-2026-54133 — jmespath.php (CRITICAL, CVSS 9.8) — 10.16.4 only
GHSA-pcw8-m77r-2528, "jmespath.php has CompilerRuntime code injection via unescaped function names", published 2026-08-18 20:16 UTC — three hours before yesterday's failing run, whose scanner DB had not yet picked it up. It surfaced only after the guzzle ignore turned those four targets green.
It matches
mtdowling/jmespath.php2.8.0, pulled in by theaws-sdk-php3.337.3 thatfiles_primary_s3vendors. Only 10.16.4 is affected — 11.0.0 ships aws-sdk-php 3.388.9 with jmespath.php 2.9.2, already above the fixed 2.9.1, so its ignore file is deliberately left alone.Despite the 9.8 score, the finding is not reachable in this image:
JmesPath\Env::createRuntime()returns the unaffectedAstRuntimeunlessJP_PHP_COMPILEis set. It is set nowhere in the Dockerfiles or overlays, so reaching the vulnerableCompilerRuntimeat all requires an operator to inject it deliberately.search()call site in the bundled SDK passes an SDK-internal literal or service-model-derived expression —'Parts[0].Size', waiter acceptor arguments, paginator output tokens — never caller input, let alone attacker input.AstRuntime"is not affected unlessJP_PHP_COMPILEis enabled", and that the searched data document alone is insufficient: the attacker must control the expression string.That reasoning is recorded in the ignore file so the entry is not mistaken for a blanket suppression of a critical.
Why ignores
This repo builds from an immutable, tag-pinned release tarball, so it cannot bump either vendored library.
ignore-unfixeddoes not help — both CVEs are fixed upstream, just not in ownCloud's bundle. The ignores follow the existing precedent in these files forGHSA-27qh-8cxx-2cr5(aws-sdk-php) andCVE-2026-44167, and the comments record the affected bundles and versions so the entries can be dropped once ownCloud ships the bumps.These are first mitigations to get the pipeline moving again, not fixes. The guzzle advisory is a genuine host-check bypass; the intent is to carry that bump in a 10.16.5. The jmespath fix is the same one the neighbouring
GHSA-27qh-8cxx-2cr5entry is already waiting on: an aws-sdk-php update, which 11.0.0 has had and 10.16.x has not. There is currently no issue or PR in the owncloud org tracking either.Verification
Neither suppression could be verified locally — the local Trivy DB is frozen at 2026-06-05, before both advisories, so it does not know either ID. CI is the verification, and it is now green: both
Trivy scansteps and bothSmoke teststeps pass, with every Trivy target reporting0. Notably the 11.0.0 job completed for the first time since 2026-08-02, confirming nothing else had accumulated behind the fail-fast cancellation. Publish steps are skipped on PRs by design.Worth flagging
Two independent CVEs landed against dependencies frozen inside a tag-pinned tarball within twelve hours of each other, and each one took the whole publish pipeline down until an ignore was added by hand. That cadence is a property of gating publishes on a scanner whose input this repo cannot change, and it will recur.
🤖 Generated with Claude Code