Composer is a dependency manager for the PHP programming language. Integrators using Composer code to call `VcsDriver::getFileContent` can have a code injection vulnerability if the user can control the `$file` or `$identifier` argument. This leads to a vulnerability on for example where the composer.json's `readme` field can be used as a vector for injecting parameters into hg/Mercurial via the `$file` argument, or git via the `$identifier` argument if you allow arbitrary data there (Packagist does not, but maybe other integrators do). Composer itself should not be affected by the vulnerability as it does not call `getFileContent` with arbitrary data into `$file`/`$identifier`. To the best of our knowledge this was not abused, and the vulnerability has been patched on and Private Packagist within a day of the vulnerability report.

References[email protected]/message/GWT6LDSRY7SFMTDZWJ4MS2ZBXHL7VQEF/[email protected]/message/QD7JQWL6C4GVROO25DTXWYWM6BPOPPCG/[email protected]/message/625MT3IKWKFVIWLSYZFSXHVUA2LES7YQ/


Source: MITRE

Published: 2022-04-13

Updated: 2022-09-09

Type: CWE-94

Risk Information


Base Score: 6.8

Vector: AV:N/AC:M/Au:N/C:P/I:P/A:P

Impact Score: 6.4

Exploitability Score: 8.6

Severity: MEDIUM


Base Score: 8.8

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Impact Score: 5.9

Exploitability Score: 2.8

Severity: HIGH