CVE-2026-40176
Composer is vulnerable to Command Injection via Malicious Perforce Repository
CVE-2026-40176 is a high vulnerability (CVSS 7.8) in Composer, published April 14, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 1.04%, the 64th percentile. Fixed in composer/composer 2.9.6.
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).
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.8
Composer is vulnerable to Command Injection via Malicious Perforce Repository
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).
- Record
CVE-2026-40176- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-20, CWE-78, CWE-78
- Updated
- 2026-11-02
EUVDEUVD-2026-23118
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).
- Record
EUVD-2026-23118- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-wg36-wvj6-r67p
7.8
Composer has a command injection via malicious perforce repository
Impact
The Perforce::generateP4Command() method constructed shell commands by interpolating user-supplied Perforce connection parameters (port, user, client) without proper escaping. An attacker controlling a repository configuration in a malicious composer.json declaring a Perforce VCS repository could inject arbitrary commands through these values, leading to command execution in the context of the user running Composer. Composer would execute these injected commands even if Perforce is not installed.
VCS repositories are only loaded from the root composer.json file located in the directory you execute Composer commands in and from the composer config directory (e.g. ~/.config/composer/composer.json). So this vulnerability cannot be exploited through composer.json files of packages installed as dependencies.
You are at risk of command execution if you run Composer commands on untrusted projects with attacker supplied composer.json files, regardless of whether you or any of your dependencies use Perforce.
Patches
Fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline)
Workarounds
- Carefully inspect composer.json files before running Composer on them. Verify that Perforce-related fields contain valid values.
- Only run Composer commands on projects from trusted sources.
- Record
GHSA-wg36-wvj6-r67p- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-20, CWE-78
- Updated
- 2026-11-03
NVD
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).
- Record
CVE-2026-40176- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-20, CWE-78
- Updated
- 2026-11-03
OSVALPINE-CVE-2026-40176
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).
- Record
ALPINE-CVE-2026-40176- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
OSV
7.8
Composer is vulnerable to Command Injection via Malicious Perforce Repository
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).
- Record
CVE-2026-40176- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-20, CWE-78
- Updated
- 2026-11-04
Show 15 moreShow less
OSVDEBIAN-CVE-2026-40176
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).
- Record
DEBIAN-CVE-2026-40176- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
OSVGHSA-wg36-wvj6-r67p
7.8
Composer has a command injection via malicious perforce repository
Impact
The Perforce::generateP4Command() method constructed shell commands by interpolating user-supplied Perforce connection parameters (port, user, client) without proper escaping. An attacker controlling a repository configuration in a malicious composer.json declaring a Perforce VCS repository could inject arbitrary commands through these values, leading to command execution in the context of the user running Composer. Composer would execute these injected commands even if Perforce is not installed.
VCS repositories are only loaded from the root composer.json file located in the directory you execute Composer commands in and from the composer config directory (e.g. ~/.config/composer/composer.json). So this vulnerability cannot be exploited through composer.json files of packages installed as dependencies.
You are at risk of command execution if you run Composer commands on untrusted projects with attacker supplied composer.json files, regardless of whether you or any of your dependencies use Perforce.
Patches
Fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline)
Workarounds
- Carefully inspect composer.json files before running Composer on them. Verify that Perforce-related fields contain valid values.
- Only run Composer commands on projects from trusted sources.
- Record
GHSA-wg36-wvj6-r67p- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-20, CWE-78
- Updated
- 2026-11-03
OSVRHSA-2026:8165
8.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:8165- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-40176
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).
- Record
UBUNTU-CVE-2026-40176- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVBIT-composer-2026-40176 No score
Composer is vulnerable to Command Injection via Malicious Perforce Repository
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).
- Record
BIT-composer-2026-40176- Updated
- 2026-11-02
OSVCLSA-2026-1787064466 No score
Fix CVE(s): CVE-2026-40176, CVE-2026-40261
- Non-maintainer upload by the TuxCare ELS team.
- CVE-2026-40261: Prevent a command injection vulnerability in
Perforce::syncCodeBase(), which appended the source reference to the
'p4 sync -f' command without escaping. Package metadata served by a
malicious or compromised Composer repository could inject shell
metacharacters, leading to command execution even when Perforce is not
installed.
- debian/patches/0018-CVE-2026-40261.patch
- CVE-2026-40176: Prevent a command injection vulnerability in
Perforce::generateP4Command(), which interpolated the Perforce
connection parameters (user, client, port) into the 'p4' command line
without escaping. A malicious composer.json declaring a Perforce VCS
repository could inject shell metacharacters, leading to command
execution even when Perforce is not installed. Also backport the
prerequisite upstream fix for Perforce::connectClient(), which passed
the client spec path through the shell redirection of the same command
line with only spaces escaped.
- debian/patches/0019-CVE-2026-40176.patch
- Record
CLSA-2026-1787064466- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10643-1 No score
php-composer2-2.9.7-1.1 on GA media
These are all security issues fixed in the php-composer2-2.9.7-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10643-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20670-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues:
- CVE-2025-67746: ANSI control characters injection in terminal output of various Composer commands via attacker controlled remote sources (bsc#1255768).
- CVE-2026-40176: arbitrary command injection via malicious Perforce repository definition (bsc#1262254).
- CVE-2026-40261: arbitrary command injection via malicious Perforce source reference/url (bsc#1262255).
- Record
openSUSE-SU-2026:20670-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21520-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues:
- CVE-2026-45793: Github Actions issued
GITHUB_TOKENdisclosure in GitHub Actions logs (bsc#1271504). - CVE-2026-59946: path traversal in package
binfield lets dependencieschmodarbitrary host files (bsc#1271151). - CVE-2026-59947: URL-embedded HTTP-Basic username leaks to verbose logs (bsc#1271129).
- CVE-2026-59948: arbitrary file write outside
vendordirectory via malicious transitive package name (bsc#1271122).
Changes for php-composer2:
- fix byte-swapped signature on s390x can cause broken or unsupported signature (bsc#1271729).
- Record
openSUSE-SU-2026:21520-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:1784-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues:
- CVE-2026-40176: arbitrary command injection via malicious Perforce repository definition (bsc#1262254).
- CVE-2026-40261: arbitrary command injection via malicious Perforce source reference/url (bsc#1262255).
- Record
SUSE-SU-2026:1784-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:1970-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues
- CVE-2026-40176: command injection via malicious Perforce repository definition (bsc#1262254).
- CVE-2026-40261: command injection via malicious Perforce source reference/url (bsc#1262255).
Changes for php-composer2:
- version update to 2.2.27 (align with upstream LTS version)
- Security: Hardened git/hg/perforce/fossil identifier validation to ensure branch names starting with - do not cause issues (246f807b, 246f807b, 246f807b)
- Security: Fixed Perforce unescaped user input in queryP4User shell command (246f807b)
- Security: Fixed usage of insecure 3DES ciphers when ext-curl is missing (21ffece62)
- Fixed issue handling paths with = in them on Windows (#11568)
- version 2.2.26 2025-12-30
- Security: Fixed ANSI sequence injection (GHSA-59pp-r3rg-353g / CVE-2025-67746)
- version 2.2.25 2024-12-11
- Fixed deprecation notices appearing on this LTS version in case it is used on modern PHP. Modern PHP support is not guaranteed nor tested for though and the main purpose of LTS releases is legacy PHP versions support. (#12217)
- Fixed issue on plugin upgrade when it defines multiple classes (#12226)
- Fixed duplicate errors appearing in the output depending on php settings (#12214)
- Fixed InstalledVersions returning duplicate data in some instances (#12225)
- version 2.2.24 2024-06-10
- Security: Fixed command injection via malicious git branch name (GHSA-47f6-5gq3-vx9c / CVE-2024-35241)
- Security: Fixed multiple command injections via malicious git/hg branch names (GHSA-v9qv-c7wm-wgmf / CVE-2024-35242)
- Security: Fixed secure-http checks that could be bypassed by using malformed URL formats (fa3b9582c)
- Security: Fixed Filesystem::isLocalPath including windows-specific checks on linux (3c37a67c)
- Security: Fixed perforce argument escaping (3773f775)
- Security: Fixed handling of zip bombs when extracting archives (de5f7e32)
- Security: Fixed Windows command parameter escaping to prevent abuse of unicode characters with best fit encoding
- conversion (3130a7455, 04a63b324)
- version 2.2.23 2024-02-08
- Security: Fixed code execution and possible privilege escalation via compromised vendor dir contents (GHSA-7c6p-848j-wh5h / CVE-2024-24821)
- version 2.2.22 2023-09-29
- Security: Fixed possible remote code execution vulnerability if composer.phar is publicly accessible, executable as PHP, and register_argc_argv is enabled in php.ini (GHSA-jm6m-4632-36hf / CVE-2023-43655)
- Fixed authentication issue when downloading several files from private Bitbucket in parallel (#11464)
- Fixed handling of broken junctions on windows (#11550)
- Fixed loading of root aliases on path repo packages when doing partial updates (#11632)
- Fixed parsing of lib-curl-openssl version with OSX SecureTransport (#11534)
- Fixed binary proxies not being transparent when included by another PHP process and returning a value (#11454)
- Fixed support for plugin classes being marked as readonly (#11404)
- Fixed GitHub rate limit reporting (#11366)
- Fixed issue displaying solver problems with branch names containing % signs (#11359)
- version 2.2.21 2023-02-15
- Fixed extra.plugin-optional support in PluginInstaller when doing pre-install checks (#11326)
- version 2.2.20 2023-02-10
- Added extra.plugin-optional support for allow auto-disabling unknown plugins which are not critical when running non-interactive (#11315)
- version 2.2.19 2023-02-04
- Fixed URL sanitizer to handle new GitHub personal access tokens format (#11137)
- Fixed cache keys to allow _ to avoid conflicts between package names like a-b and a_b (#11229)
- Fixed handling of --ignore-platform-req with upper-bound ignores to not apply to conflict rules (#11037)
- Fixed handling of COMPOSER_DISCARD_CHANGES when set to 0
- version 2.2.18 2022-08-20
- Fixed COMPOSER_NO_DEV so it also works with require and remove's --update-no-dev (#10995)
- Fixed duplicate missing extension warnings being…
- Record
SUSE-SU-2026:1970-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21542-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues:
- CVE-2025-67746: ANSI control characters injection in terminal output of various Composer commands via attacker controlled remote sources (bsc#1255768).
- CVE-2026-40176: arbitrary command injection via malicious Perforce repository definition (bsc#1262254).
- CVE-2026-40261: arbitrary command injection via malicious Perforce source reference/url (bsc#1262255).
- Record
SUSE-SU-2026:21542-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23116-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues:
- CVE-2026-45793: Github Actions issued
GITHUB_TOKENdisclosure in GitHub Actions logs (bsc#1271504). - CVE-2026-59946: path traversal in package
binfield lets dependencieschmodarbitrary host files (bsc#1271151). - CVE-2026-59947: URL-embedded HTTP-Basic username leaks to verbose logs (bsc#1271129).
- CVE-2026-59948: arbitrary file write outside
vendordirectory via malicious transitive package name (bsc#1271122).
Changes for php-composer2:
- fix byte-swapped signature on s390x can cause broken or unsupported signature (bsc#1271729).
- Record
SUSE-SU-2026:23116-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23138-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues:
- CVE-2026-45793: Github Actions issued
GITHUB_TOKENdisclosure in GitHub Actions logs (bsc#1271504). - CVE-2026-59946: path traversal in package
binfield lets dependencieschmodarbitrary host files (bsc#1271151). - CVE-2026-59947: URL-embedded HTTP-Basic username leaks to verbose logs (bsc#1271129).
- CVE-2026-59948: arbitrary file write outside
vendordirectory via malicious transitive package name (bsc#1271122).
Changes for php-composer2:
- fix byte-swapped signature on s390x can cause broken or unsupported signature (bsc#1271729).
- Record
SUSE-SU-2026:23138-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:3105-1 No score
Security update for php-composer2
This update for php-composer2 fixes the following issues:
- CVE-2026-45793: Github Actions issued
GITHUB_TOKENdisclosure in GitHub Actions logs (bsc#1271504). - CVE-2026-59946: path traversal in package
binfield lets dependencieschmodarbitrary host files (bsc#1271151). - CVE-2026-59947: URL-embedded HTTP-Basic username leaks to verbose logs (bsc#1271129).
- CVE-2026-59948: arbitrary file write outside
vendordirectory via malicious transitive package name (bsc#1271122).
- Record
SUSE-SU-2026:3105-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
composer/composerPackagist |
2.3.0 up to 2.9.6 | 2.9.6 |
composer/composerPackagist |
1.0.0 up to 2.2.27 | 2.2.27 |
composerAlpine:v3.23 |
1.0.0 up to 2.9.6-r0 | 2.9.6-r0 |
composerAlpine:v3.24 |
1.0.0 up to 2.9.6-r0 | 2.9.6-r0 |
composerBitnami |
1.0.0 up to 2.2.27, 2.3.0 up to 2.9.6 | 2.2.272.9.6 |
composerTuxCare:Debian:10 |
before 1.8.4-1+deb10u4+tuxcare.els1 | 1.8.4-1+deb10u4+tuxcare.els1 |
composerDebian:12 |
before 2.5.5-1+deb12u4, plus listed versions 2.5.5-12.5.5-1+deb12u12.5.5-1+deb12u22.5.5-1+deb12u3 |
2.5.5-1+deb12u4 |
composerDebian:13 |
before 2.8.8-1+deb13u2, plus listed versions 2.8.8-12.8.8-1+deb13u1 |
2.8.8-1+deb13u2 |
composerDebian:14 |
before 2.9.7-1, plus listed versions 2.8.10-12.8.11-12.8.11-22.8.12-12.8.8-1 Show 7 moreShow less2.8.9-12.9.0~rc1-12.9.1-12.9.2-12.9.3-12.9.4-12.9.5-1 |
2.9.7-1 |
composer/composerPackagist |
2.3.0 up to 2.9.6, plus listed versions 2.3.12.3.102.3.22.3.32.3.4 Show 45 moreShow less2.3.52.3.62.3.72.3.82.3.92.4.02.4.0-RC12.4.12.4.22.4.32.4.42.5.02.5.12.5.22.5.32.5.42.5.52.5.62.5.72.5.82.6.02.6.12.6.22.6.32.6.42.6.52.6.62.7.02.7.12.7.22.7.32.7.42.7.52.7.62.7.72.7.82.7.92.8.02.8.12.8.102.8.112.8.122.8.22.8.32.8.4 |
2.9.6 |
Show 17 moreShow less
| Package | Affected | Fixed |
|---|---|---|
composer/composerPackagist |
1.0.0 up to 2.2.27, plus listed versions 1.0.11.0.21.0.31.1.01.1.0-RC Show 45 moreShow less1.1.11.1.21.1.31.10.01.10.0-RC1.10.11.10.101.10.111.10.121.10.131.10.141.10.151.10.161.10.171.10.181.10.191.10.21.10.201.10.211.10.221.10.231.10.241.10.251.10.261.10.271.10.281.10.31.10.41.10.51.10.61.10.71.10.81.10.91.2.01.2.0-RC1.2.11.2.21.2.31.2.41.3.01.3.0-RC1.3.11.3.21.3.31.4.0 |
2.2.27 |
composerRed Hat:hummingbird:1 |
before 0:2.9.7-1.hum1 | 0:2.9.7-1.hum1 |
php-composer2SUSE:Linux Enterprise Server 16.0 |
before 2.8.9-160000.4.1 | 2.8.9-160000.4.1 |
php-composer2SUSE:Linux Enterprise Server for SAP applications 16.0 |
before 2.8.9-160000.4.1 | 2.8.9-160000.4.1 |
php-composer2SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 |
before 2.6.4-150600.3.12.1 | 2.6.4-150600.3.12.1 |
php-composer2SUSE:Linux Enterprise Server 15 SP6-LTSS |
before 2.6.4-150600.3.12.1 | 2.6.4-150600.3.12.1 |
php-composer2SUSE:Linux Enterprise Server for SAP Applications 15 SP6 |
before 2.6.4-150600.3.12.1 | 2.6.4-150600.3.12.1 |
composerUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.0.0~alpha10+20150602-11.0.0~alpha10+20150602-21.0.0~alpha11-11.0.0~alpha11-1ubuntu11.0.0~alpha11-2 Show 5 moreShow less1.0.0~alpha11-31.0.0~beta1-1ubuntu11.0.0~beta2-11.0.0~beta2-1ubuntu0.1~esm11.0.0~beta2-1ubuntu0.1~esm2 |
None known |
composerUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 1.5.1-11.5.2-11.6.2-11.6.3-11.6.3-1ubuntu0.1~esm11.6.3-1ubuntu0.1~esm2 |
None known |
composerUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 1.9.0-21.9.1-11.9.2-11.9.3-11.10.0-11.10.1-11.10.1-1ubuntu0.1~esm11.10.1-1ubuntu0.1~esm2 |
None known |
composerUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 2.0.9-2ubuntu22.0.9-2ubuntu32.0.13-1ubuntu12.1.12-1ubuntu12.2.6-2ubuntu42.2.6-2ubuntu4+esm1 |
None known |
composerUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 2.5.8-12.6.5-12.6.6-12.7.1-22.7.1-2ubuntu0.1~esm1 |
None known |
composerUbuntu:25.10 |
All versions, plus listed versions 2.8.6-12.8.8-1 |
None known |
composerUbuntu:26.10 |
All versions, plus listed versions 2.9.5-12.10.1-22.10.2-1 |
None known |
composerUbuntu:26.04:LTS |
All versions, plus listed versions 2.8.8-12.9.5-1 |
None known |
php-composer2openSUSE:Tumbleweed |
before 2.9.7-1.1 | 2.9.7-1.1 |
php-composer2openSUSE:Leap 16.0 |
before 2.8.9-160000.4.1 | 2.8.9-160000.4.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | Saku0512/CVE-2026-40176-poc | 2026-04-16 |
| PoC in GitHub | daptheHuman/cve-2026-40176-cve-2026-40261 | 2026-04-17 |
| PoC in GitHub | ikarolaborda/CVE-2026-40176 | 2026-06-15 |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-04 | facts | OSV |
| 2026-11-03 | references | OSV |
| 2026-11-03 | affected, aliases, references | NVD, OSV |
| 2026-11-03 | references | EUVD |
| 2026-11-03 | references | GitHub Advisories, OSV |
| 2026-11-02 | created | CVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub |
References
github.com/composer/composer/security/advisories/GHSA-wg36-wvj6-r67p
github.com/composer/composer/releases/tag/2.9.6
access.redhat.com/security/cve/CVE-2026-40176
bugzilla.redhat.com/show_bug.cgi?id=2458828
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-40176.json
access.redhat.com/errata/RHSA-2026:8165
Show 54 moreShow less
github.com/FriendsOfPHP/security-advisories/blob/master/composer/composer/CVE-2026-40176.yaml
github.com/composer/composer/releases/tag/2.2.27
nvd.nist.gov/vuln/detail/CVE-2026-40176
github.com/advisories/GHSA-wg36-wvj6-r67p
security.alpinelinux.org/vuln/CVE-2026-40176
errata.tuxcare.com/els_os/debian10els/CLSA-2026-1787064466.html
nvd.nist.gov/vuln/detail/CVE-2026-40261
github.com/CVEProject/cvelistV5/tree/main/cves/2026/40xxx/CVE-2026-40176.json
security-tracker.debian.org/tracker/CVE-2026-40176
github.com/composer/composer
images.redhat.com
access.redhat.com/security/cve/CVE-2026-40261
access.redhat.com/security/updates/classification
access.redhat.com/security/cve/CVE-2025-67746
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_8165.json
bugzilla.redhat.com/show_bug.cgi?id=2426283
cve.org/CVERecord?id=CVE-2025-67746
nvd.nist.gov/vuln/detail/CVE-2025-67746
github.com/composer/composer/commit/1d40a95c9d39a6b7f80d404ab30336c586da9917
github.com/composer/composer/commit/5db1876a76fdef76d3c4f8a27995c434c7a43e71
github.com/composer/composer/releases/tag/2.2.26
github.com/composer/composer/releases/tag/2.9.3
github.com/composer/composer/security/advisories/GHSA-59pp-r3rg-353g
cve.org/CVERecord?id=CVE-2026-40176
bugzilla.redhat.com/show_bug.cgi?id=2458841
cve.org/CVERecord?id=CVE-2026-40261
github.com/composer/composer/security/advisories/GHSA-gqw4-4w2p-838q
suse.com/support/update/announcement/2026/suse-su-20261784-1
bugzilla.suse.com/1262254
bugzilla.suse.com/1262255
suse.com/security/cve/CVE-2026-40176
suse.com/security/cve/CVE-2026-40261
suse.com/support/update/announcement/2026/suse-su-20261970-1
suse.com/security/cve/CVE-2022-24828
suse.com/security/cve/CVE-2023-43655
suse.com/security/cve/CVE-2024-24821
suse.com/security/cve/CVE-2024-35241
suse.com/security/cve/CVE-2024-35242
suse.com/security/cve/CVE-2025-67746
suse.com/support/update/announcement/2026/suse-su-202621542-1
bugzilla.suse.com/1255768
suse.com/support/update/announcement/2026/suse-su-202623116-1
bugzilla.suse.com/1271122
bugzilla.suse.com/1271129
bugzilla.suse.com/1271151
bugzilla.suse.com/1271504
bugzilla.suse.com/1271729
suse.com/security/cve/CVE-2026-45793
suse.com/security/cve/CVE-2026-59946
suse.com/security/cve/CVE-2026-59947
suse.com/security/cve/CVE-2026-59948
suse.com/support/update/announcement/2026/suse-su-202623138-1
suse.com/support/update/announcement/2026/suse-su-20263105-1
ubuntu.com/security/CVE-2026-40176
Left out here: 108 versions and the rest of 1 source description. The JSON record has them.