Home Cyber Security News Vulnerability In PHP Composer Package Could Allow Supply-Chain Attacks

Vulnerability In PHP Composer Package Could Allow Supply-Chain Attacks

by Abeerah Hashim
PHP Composer vulnerability

A serious security vulnerability existed in the PHP Composer package. Exploiting this bug could allow an attacker to conduct code execution attacks. Whereas, a massive exploitation attempt may even result in devastating supply-chain attacks.

PHP Composer Vulnerability

Composer package is notable for managing software dependencies in the PHP ecosystem. Due to its widespread use, any security flaw in this package may have devastating attacks.

One such vulnerability in PHP Composer caught the attention of researchers at SonarSource.

Specifically, they found a code execution vulnerability on the Packagist.org server that existed due to improper URL sanitization. Hence, exploiting this flaw with a maliciously crafted URL would allow an adversary to steal the package maintainers’ credentials, or reroute package downloads to external malicious servers.

As described in the vulnerability description for this flaw, CVE-2021-29472,

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.

SonarSource has shared the full technical details of this vulnerability in their blog post.

Patch Released

After discovering this bug, the researchers reached out to Composer maintainers at Packagist to report the bug.

Consequently, the maintainers quickly deployed a hotfix the same day, followed by a thorough patch after few days.

Presently, Packagist has confirmed Composer 1.10.22 and 2.0.13 as the patched versions available on GitHub.

While users may update to the patched versions, Packagist also recommends adding URL validation for enhanced security.

You may also like

Leave a Comment

Latest Hacking News

Privacy Preference Center


The __cfduid cookie is used to identify individual clients behind a shared IP address and apply security settings on a per-client basis.

cookie_notice_accepted and gdpr[allowed_cookies] are used to identify the choices made from the user regarding cookie consent.

For example, if a visitor is in a coffee shop where there may be several infected machines, but the specific visitor's machine is trusted (for example, because they completed a challenge within your Challenge Passage period), the cookie allows Cloudflare to identify that client and not challenge them again. It does not correspond to any user ID in your web application, and does not store any personally identifiable information.

__cfduid, cookie_notice_accepted, gdpr[allowed_cookies]


DoubleClick by Google refers to the DoubleClick Digital Marketing platform which is a separate division within Google. This is Google’s most advanced advertising tools set, which includes five interconnected platform components.

DoubleClick Campaign Manager: the ad-serving platform, called an Ad Server, that delivers ads to your customers and measures all online advertising, even across screens and channels.

DoubleClick Bid Manager – the programmatic bidding platform for bidding on high-quality ad inventory from more than 47 ad marketplaces including Google Display Network.

DoubleClick Ad Exchange: the world’s largest ad marketplace for purchasing display, video, mobile, Search and even Facebook inventory.

DoubleClick Search: is more powerful than AdWords and used for purchasing search ads across Google, Yahoo, and Bing.

DoubleClick Creative Solutions: for designing, delivering and measuring rich media (video) ads, interactive and expandable ads.



The _ga is asssociated with Google Universal Analytics - which is a significant update to Google's more commonly used analytics service. This cookie is used to distinguish unique users by assigning a randomly generated number as a client identifier. It is included in each page request in a site and used to calculate visitor, session and campaign data for the sites analytics reports. By default it is set to expire after 2 years, although this is customisable by website owners.

The _gat global object is used to create and retrieve tracker objects, from which all other methods are invoked. Therefore the methods in this list should be run only off a tracker object created using the _gat global variable. All other methods should be called using the _gaq global object for asynchronous tracking.

_gid works as a user navigates between web pages, they can use the gtag.js tagging library to record information about the page the user has seen (for example, the page's URL) in Google Analytics. The gtag.js tagging library uses HTTP Cookies to "remember" the user's previous interactions with the web pages.

_ga, _gat, _gid