Missing input validation can lead to command execution in composer
Impact
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.
Source excerpt · OSVAffected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
| Affected range | Recorded fix |
|---|---|
| Earlier releases before 1.10.26Ecosystem versions | 1.10.26 |
| From 2.0 before 2.2.12Ecosystem versions | 2.2.12 |
| From 2.3 before 2.3.5Ecosystem versions | 2.3.5 |
Version evidence: OSV · GHSA-x7cr-6qr6-2hh6
View original version evidence (149 explicit versions)
Original source 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.
References
- Security advisory github.com/composer/composer/security/advisories/GHSA-x7cr-6qr6-2hh6
- Security advisory nvd.nist.gov/vuln/detail/CVE-2022-24828
- Patch github.com/composer/composer/commit/2c40c53637c5c7e43fff7c09d3d324d632734709
- Security advisory github.com/FriendsOfPHP/security-advisories/blob/master/composer/composer/CVE-2022-24828.yaml
- Source reference github.com/composer/composer
- Source reference lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/625MT3IKWKFVIWLSYZFSXHVUA2LES7YQ
- Source reference lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/GWT6LDSRY7SFMTDZWJ4MS2ZBXHL7VQEF
- Source reference lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/QD7JQWL6C4GVROO25DTXWYWM6BPOPPCG
- Security advisory www.tenable.com/security/tns-2022-09