Advisory Database
  • Advisories
  • Dependency Scanning
  1. composer
  2. ›
  3. composer/composer
  4. ›
  5. CVE-2026-40261

CVE-2026-40261: Composer has a command injection via malicious perforce reference

April 14, 2026 (updated April 16, 2026)

The Perforce::syncCodeBase() method appended the $sourceReference parameter to a shell command without proper escaping, allowing an attacker to inject arbitrary commands through a crafted source reference containing shell metacharacters. Further as in GHSA-wg36-wvj6-r67p / CVE-2026-40176 the Perforce::generateP4Command() method constructed shell commands by interpolating user-supplied Perforce connection parameters (port, user, client) without proper escaping from the source url field. Composer would execute these injected commands even if Perforce is not installed.

The source reference and url are provided as part of package metadata. Any Composer package repository can serve package metadata declaring perforce as a source type with a malicious source reference or source url. This means the vulnerability can be exploited through any package served by a compromised or malicious Composer repository. An attack does not require Perforce to be installed on the client, as Composer will attempt to execute the constructed command regardless.

This vulnerability is exploitable when installing or updating dependencies from source (--prefer-source, default when installing dev prefixed versions), even if you do not use Perforce.

References

  • github.com/FriendsOfPHP/security-advisories/blob/master/composer/composer/CVE-2026-40261.yaml
  • github.com/advisories/GHSA-gqw4-4w2p-838q
  • github.com/composer/composer/releases/tag/2.9.6
  • github.com/composer/composer/security/advisories/GHSA-gqw4-4w2p-838q
  • nvd.nist.gov/vuln/detail/CVE-2026-40261

Code Behaviors & Features

Detect and mitigate CVE-2026-40261 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions starting from 1.0.0 before 2.2.27, all versions starting from 2.3.0 before 2.9.6

Fixed versions

  • 2.2.27
  • 2.9.6

Solution

Upgrade to versions 2.2.27, 2.9.6 or above.

Impact 8.8 HIGH

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

Learn more about CVSS

Weakness

  • CWE-20: Improper Input Validation
  • CWE-78: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

Source file

packagist/composer/composer/CVE-2026-40261.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 16 May 2026 12:21:14 +0000.