Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
🐘
🐘 Packagist
Not in CISA KEV
HIGH severity

GHSA-x7cr-6qr6-2hh6

HIGHFix: composer/composer@2c40c53

GHSA-x7cr-6qr6-2hh6 is a high-severity (CVSS 8.3) Improper Input Validation vulnerability in composer/composer. O3 Security confirms whether GHSA-x7cr-6qr6-2hh6 is actually reachable in your code before you act, and blocks exploitation at runtime until you patch.

Missing input validation can lead to command execution in composer

Also known asBIT-composer-2022-24828CVE-2022-24828
Published
Apr 22, 2022
Updated
Feb 21, 2024
Affected
3 pkgs
Patched
3 / 3
Exploits
None indexed
Exploitation data as of Feb 21, 2024 · OSV.dev, NVD, FIRST.org (EPSS)

Real-World Exposure

3 pkgs affected
🐘composer/composer🐘composer/composer🐘composer/composer

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.

Description

The Composer method VcsDriver::getFileContent() with user-controlled $file or $identifier arguments is susceptible to an argument injection vulnerability. It can be leveraged to gain arbitrary command execution if the Mercurial or the Git driver are used.

This led to a vulnerability on Packagist.org and Private Packagist, i.e., using the composer.json readme field as a vector for injecting parameters into the $file argument for the Mercurial driver or via the $identifier argument for the Git and Mercurial drivers.

Composer itself can be attacked through branch names by anyone controlling a Git or Mercurial repository, which is explicitly listed by URL in a project's composer.json.

To the best of our knowledge, this was not actively exploited. The vulnerability has been patched on Packagist.org and Private Packagist within a day of the vulnerability report.

Affected Packages

3 total 3 fixed
EcosystemPackageVulnerable rangeFix
🐘Packagistcomposer/composerall versions1.10.26
🐘Packagistcomposer/composer2.0&&< 2.2.122.2.12
🐘Packagistcomposer/composer2.3&&< 2.3.52.3.5

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for composer/composer. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. Fix

    Update composer/composer to 1.10.26 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-x7cr-6qr6-2hh6 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 pinpoints whether GHSA-x7cr-6qr6-2hh6 is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to GHSA-x7cr-6qr6-2hh6. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

The Composer method `VcsDriver::getFileContent()` with user-controlled `$file` or `$identifier` arguments is susceptible to an argument injection vulnerability. It can be leveraged to gain arbitrary command execution if the Mercurial or the Git driver are used. This led to a vulnerability on Packagist.org and Private Packagist, i.e., using the composer.json `readme` field as a vector for injecting parameters into the `$file` argument for the Mercurial driver or via the `$identifier` argument for the Git and Mercurial drivers. Composer itself can be attacked through branch names by anyone con
O3 Security · Impact-Aware SCA

Is GHSA-x7cr-6qr6-2hh6 in your dependencies?

O3 detects GHSA-x7cr-6qr6-2hh6 across Packagist dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.

GHSA-x7cr-6qr6-2hh6: composer/composer… | O3 Security