Skip to content
OpenAdvisories
High · 8.8 CVE-2021-29472 BIT-composer-2021-29472EUVD-2021-0829GHSA-h5h8-pc6h-jvvx

Missing argument delimiter can lead to code execution via VCS repository URLs or source download URLs on systems with Mercurial in composer

Published Apr 27, 2021 · Updated Aug 3, 2024 · Assigned by GitHub_M

Description

Composer is a dependency manager for PHP. URLs for Mercurial repositories in the root composer.json and package source download URLs are not sanitized correctly. Specifically crafted URL values allow code to be executed in the HgDriver if hg/Mercurial is installed on the system. The impact to Composer users directly is limited as the composer.json file is typically under their own control and source download URLs can only be supplied by third party Composer repositories they explicitly trust to download and execute source code from, e.g. Composer plugins. The main impact is to services passing user input to Composer, including Packagist.org and Private Packagist. This allowed users to trigger remote code execution. The vulnerability has been patched on Packagist.org and Private Packagist within 12h of receiving the initial vulnerability report and based on a review of logs, to the best of our knowledge, was not abused by anyone. Other services/tools using VcsRepository/VcsDriver or derivatives may also be vulnerable and should upgrade their composer/composer dependency immediately. Versions 1.10.22 and 2.0.13 include patches for this issue.

Affected products

VendorProductAffectedFixed
composer composer < 1.10.22, >=2.0,<2.0.13 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 composer 2.0.9-2 —
Debian 13 composer 2.0.9-2 —
Debian 12 composer 2.0.9-2 —
Debian 10 composer 1.8.4-1+deb10u1 DSA-4907-1
Debian 9 composer 1.2.2-1+deb9u1 DLA-2654-1
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS composer 1.10.1-1ubuntu0.1~esm1 USN-5220-1
Ubuntu Pro 18.04 LTS composer 1.6.3-1ubuntu0.1~esm1 USN-5220-1
Ubuntu Pro 16.04 LTS composer 1.0.0~beta2-1ubuntu0.1~esm1 USN-5220-1
ReleasePackageFixed inAdvisory
SUSE Package Hub 15 SP3 php-composer 1.10.22-bp153.2.3.1 openSUSE-SU-2021:1289-1
SUSE Package Hub 15 SP2 php-composer 1.10.22-bp153.2.3.1 openSUSE-SU-2021:1289-1
SUSE Package Hub 15 SP1 php-composer 1.10.22-bp153.2.3.1 openSUSE-SU-2021:1289-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed php-composer 1.10.22-2.2 openSUSE-SU-2024:11166-1
openSUSE Leap 15.3 php-composer 1.10.22-bp153.2.3.1 openSUSE-SU-2021:1289-1
openSUSE Leap 15.2 php-composer 1.10.22-bp153.2.3.1 openSUSE-SU-2021:1289-1
ReleasePackageFixed inAdvisory
Alpine v3.24 composer 2.0.13-r0 —
Alpine v3.23 composer 2.0.13-r0 —
Alpine v3.22 composer 2.0.13-r0 —
Alpine v3.21 composer 2.0.13-r0 —
Alpine v3.20 composer 2.0.13-r0 —
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 composer 2.0.13-r0 —
Alpine v3.18 composer 2.0.13-r0 —
Alpine v3.17 composer 2.0.13-r0 —
Alpine v3.16 composer 2.0.13-r0 —
Alpine v3.15 composer 2.0.13-r0 —
Alpine v3.14 composer 2.0.13-r0 —
Alpine v3.13 composer 2.0.13-r0 —

Affected packages

EcosystemPackageAffectedFixedRecord
Packagist composer/composer < 1.10.22 1.10.22 GHSA-h5h8-pc6h-jvvx
Packagist composer/composer >= 2.0.0-alpha1, < 2.0.13 2.0.13 GHSA-h5h8-pc6h-jvvx

Advisories 5

References