GHSA-x7cr-6qr6-2hh6

Suggest an improvement
Source
https://github.com/advisories/GHSA-x7cr-6qr6-2hh6
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/04/GHSA-x7cr-6qr6-2hh6/GHSA-x7cr-6qr6-2hh6.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-x7cr-6qr6-2hh6
Aliases
Published
2022-04-22T20:15:38Z
Modified
2024-02-21T05:32:42.447669Z
Severity
  • 8.3 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H CVSS Calculator
Summary
Missing input validation can lead to command execution in composer
Details

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.

Database specific
{
    "nvd_published_at": "2022-04-13T21:15:00Z",
    "cwe_ids": [
        "CWE-20",
        "CWE-88",
        "CWE-94"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2022-04-22T20:15:38Z"
}
References

Affected packages

Packagist / composer/composer

Package

Name
composer/composer
Purl
pkg:composer/composer/composer

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.10.26

Affected versions

1.*

1.0.0-alpha1
1.0.0-alpha2
1.0.0-alpha3
1.0.0-alpha4
1.0.0-alpha5
1.0.0-alpha6
1.0.0-alpha7
1.0.0-alpha8
1.0.0-alpha9
1.0.0-alpha10
1.0.0-alpha11
1.0.0-beta1
1.0.0-beta2
1.0.0
1.0.1
1.0.2
1.0.3
1.1.0-RC
1.1.0
1.1.1
1.1.2
1.1.3
1.2.0-RC
1.2.0
1.2.1
1.2.2
1.2.3
1.2.4
1.3.0-RC
1.3.0
1.3.1
1.3.2
1.3.3
1.4.0
1.4.1
1.4.2
1.4.3
1.5.0
1.5.1
1.5.2
1.5.3
1.5.4
1.5.5
1.5.6
1.6.0-RC
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4
1.6.5
1.7.0-RC
1.7.0
1.7.1
1.7.2
1.7.3
1.8.0
1.8.1
1.8.2
1.8.3
1.8.4
1.8.5
1.8.6
1.9.0
1.9.1
1.9.2
1.9.3
1.10.0-RC
1.10.0
1.10.1
1.10.2
1.10.3
1.10.4
1.10.5
1.10.6
1.10.7
1.10.8
1.10.9
1.10.10
1.10.11
1.10.12
1.10.13
1.10.14
1.10.15
1.10.16
1.10.17
1.10.18
1.10.19
1.10.20
1.10.21
1.10.22
1.10.23
1.10.24
1.10.25

Packagist / composer/composer

Package

Name
composer/composer
Purl
pkg:composer/composer/composer

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.0
Fixed
2.2.12

Affected versions

2.*

2.0.0-alpha1
2.0.0-alpha2
2.0.0-alpha3
2.0.0-RC1
2.0.0-RC2
2.0.0
2.0.1
2.0.2
2.0.3
2.0.4
2.0.5
2.0.6
2.0.7
2.0.8
2.0.9
2.0.10
2.0.11
2.0.12
2.0.13
2.0.14
2.1.0-RC1
2.1.0
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.1.6
2.1.7
2.1.8
2.1.9
2.1.10
2.1.11
2.1.12
2.1.14
2.2.0-RC1
2.2.0
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.2.10
2.2.11

Packagist / composer/composer

Package

Name
composer/composer
Purl
pkg:composer/composer/composer

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.3
Fixed
2.3.5

Affected versions

2.*

2.3.0-RC1
2.3.0-RC2
2.3.0
2.3.1
2.3.2
2.3.3
2.3.4