GHSA-x7cr-6qr6-2hh6

Missing input validation can lead to command execution in composer

At a glance

Published
Updated
CVE
CVE-2022-24828
Aliases
BIT-composer-2022-24828
CVSS_V3
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H

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

PackageVersions
Packagist · composer/composerintroduced 0, fixed 1.10.26
Packagist · composer/composerintroduced 2.0, fixed 2.2.12
Packagist · composer/composerintroduced 2.3, fixed 2.3.5

References

Sources

SourceLicence
OSV.devCC-BY 4.0 — GitHub Advisory Database