Skip to content

fix(supported-version): bump Composer 2.9.8 to 2.10.2 - #386

Merged
rhoerr merged 1 commit into
mage-os:mainfrom
marcelmtz:fix/composer-2.10.2-security-advisories
Jul 28, 2026
Merged

fix(supported-version): bump Composer 2.9.8 to 2.10.2#386
rhoerr merged 1 commit into
mage-os:mainfrom
marcelmtz:fix/composer-2.10.2-security-advisories

Conversation

@marcelmtz

Copy link
Copy Markdown
Contributor

Fixes #385.

Problem

Composer 2.9.8 is affected by three advisories published 2026-07-20:

Advisory CVE Affected Fixed in
PKSA-q3ht-3g42-rg8f CVE-2026-59946 <2.2.29, >=2.3.0 <2.10.2 2.2.29 / 2.10.2
PKSA-4pm6-g63v-5rkr CVE-2026-59947 same same
PKSA-zcdk-qnhk-hq2g CVE-2026-59948 same same

Upstream backported the fixes to the 2.2 LTS and 2.10 branches only, so there is no patched 2.9.x release and there will not be one — 2.9.8 is the last 2.9 release.

Since Composer 2.9 the audit.block-insecure config defaults to true, which strips advisory-affected packages out of the solver pool. Any build resolving a composer/composer constraint that sits entirely inside ~2.9.0 is therefore unsatisfiable:

Problem 1
  - Root composer.json requires composer/composer ~2.9.0, found composer/composer[2.9.0, ..., 2.9.8]
    but these were not loaded, because they are affected by security advisories (...)

This is what breaks the mirror integrity checks in mage-os/generate-mirror-repo-js — all 18 jobs on the 2.9.8 matrix entries (2.4.7 → 2.4.9) fail, while the 2.2.28 ones pass. COMPOSER_NO_AUDIT=1 does not help: it only skips the post-install audit report, not the pool filter, and there is no env var for block-insecure.

Change

Bumps every "composer": "2.9.8" matrix entry to "2.10.2" across both projects (18 + 5 for magento-open-source, 18 + 10 for mage-os) and rebuilds dist/. The Mage-OS 3.2.0 entries already declared 2.10.2, so this brings the rest in line.

Verification

npm test passes (114 tests). Resolution verified locally against https://mirror.mage-os.org/ with magento/project-community-edition:2.4.9:

  • Composer 2.9.8 + composer/composer:~2.9.0 → unsatisfiable (reproduces the CI failure)
  • Composer 2.10.2 + composer/composer:~2.10.0Lock file operations: 624 installs, 0 updates, 0 removals / Installing composer/composer (2.10.2)

No other Magento dependency is currently advisory-blocked, so this alone unblocks the integrity checks.

Not included

The 52 + 5 entries on Composer 2.2.28 are affected by the same three advisories (patched in 2.2.29), but do not fail, because audit.block-insecure does not exist on that branch. Bumping those is a separate, lower-urgency change.

Longer term it may be worth setting audit.block-insecure false in the integrity-check installs over in generate-mirror-repo-js: that harness exists to reproduce Adobe's exact dependency tree, so refusing to install known-vulnerable versions is correct for a real store but wrong there — otherwise the next advisory landing on any Magento-pinned dependency breaks the mirror build again.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VwGN3wbp1cvWui4JeyXL4T

Composer 2.9.8 is affected by CVE-2026-59946, CVE-2026-59947 and
CVE-2026-59948 (published 2026-07-20). Upstream backported the fixes to
the 2.2 LTS and 2.10 branches only, so no patched 2.9.x release exists
or will exist.

Since Composer 2.9 the `audit.block-insecure` config defaults to true,
which removes advisory-affected packages from the solver pool. Any build
that resolves a `composer/composer` constraint pinned inside `~2.9.0` is
now unsatisfiable — see mage-os#385 and the mirror
integrity checks in mage-os/generate-mirror-repo-js, where all 18 jobs
on the 2.9.8 entries fail with "not loaded, because they are affected by
security advisories".

Verified locally that magento/project-community-edition:2.4.9 resolves
cleanly with Composer 2.10.2 (624 installs, composer/composer 2.10.2).

The 2.2.28 entries are affected by the same advisories but do not fail,
as `audit.block-insecure` does not exist on that branch; bumping those
to 2.2.29 is left to a separate change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwGN3wbp1cvWui4JeyXL4T

@rhoerr rhoerr left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Marcel

@rhoerr
rhoerr merged commit 3de8427 into mage-os:main Jul 28, 2026
15 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Composer constraints cause mirror integrity checks to fail

2 participants