CVE intelligence and bounded remediation

CVE-2026-40176 — Composer is a dependency manager for PHP

High CVSS 7.8

Composer is a dependency manager for PHP. Versions 1.0 through 2.2.26 and 2.3 through 2.9.5 contain a command injection vulnerability in the Perforce::generateP4Command() method, which constructs shell commands by interpolating user-supplied Perforce connection parameters (port, user, client) without proper escaping. An attacker can inject arbitrary commands through these values in a malicious composer.json declaring a Perforce VCS repository, leading to command execution in the context of the user running Composer, even if Perforce is not installed. VCS repositories are only loaded from the root composer.json or the composer config directory, so this cannot be exploited through composer.json files of packages installed as dependencies. Users are at risk if they run Composer commands on untrusted projects with attacker-supplied composer.json files. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline).

Severity
High
CVSS
7.8 (3.1)
Published
2026-04-15
CISA KEV
Not currently listed
Ecosystem
software/application
Weaknesses
CWE-20, CWE-78

Affected products

  • getcomposer / composer

Showing 1 representative product identities from 2 source matches. Confirm exact affected versions with the linked vendor and NVD evidence.

Matched remediation archetype

Command, code, expression, and template injection

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Trace untrusted values to process execution, interpreters, evaluators, template engines, dynamic imports, and administrative scripting features.
  • Determine whether the affected path is reachable across each trust boundary and which service account or host privilege it inherits.
  • Review configuration for optional execution features, unsafe compatibility modes, and shell invocation.

Remediate safely

  • Replace string-built commands or evaluated code with fixed operations and structured argument APIs that do not invoke a shell.
  • Use strict allowlists for operation identifiers and reject unexpected input before it reaches any interpreter.
  • Update the affected component and add inert regression tests covering metacharacters, encoding variants, and alternate request paths.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.