Every CVE Search/ Get API key

CVE-2026-40261

Composer has Command Injection via Malicious Perforce Reference

8.8 HighPublic exploitFix available

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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
Required

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

1.69%Up 1.6 points since Apr 16, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.8

Composer has Command Injection via Malicious Perforce Reference

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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
CVE-2026-40261
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-78, CWE-20, CWE-78
Updated
2026-11-02
EUVDEUVD-2026-23119 8.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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
EUVD-2026-23119
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-gqw4-4w2p-838q 8.8

Composer has a command injection via malicious perforce reference

Impact

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.

Patches

Fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline)

Note, the fix for the source url in the Perforce::generateP4Command() was addressed as part of the patches for GHSA-wg36-wvj6-r67p / CVE-2026-40176 in the same versions.

Workarounds

  • Avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting.
  • Only use trusted Composer repositories.
Record
GHSA-gqw4-4w2p-838q
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-20, CWE-78
Updated
2026-11-02
NVD 8.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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
CVE-2026-40261
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-20, CWE-78
Updated
2026-11-02
OSVALPINE-CVE-2026-40261 8.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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
ALPINE-CVE-2026-40261
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-03
OSV 8.8

Composer has Command Injection via Malicious Perforce Reference

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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
CVE-2026-40261
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-20, CWE-78
Updated
2026-11-02
Show 15 moreShow less
OSVDEBIAN-CVE-2026-40261 8.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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
DEBIAN-CVE-2026-40261
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVGHSA-gqw4-4w2p-838q 8.8

Composer has a command injection via malicious perforce reference

Impact

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.

Patches

Fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline)

Note, the fix for the source url in the Perforce::generateP4Command() was addressed as part of the patches for GHSA-wg36-wvj6-r67p / CVE-2026-40176 in the same versions.

Workarounds

  • Avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting.
  • Only use trusted Composer repositories.
Record
GHSA-gqw4-4w2p-838q
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-20, CWE-78
Updated
2026-11-02
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 HighCVSS: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-40261 8.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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
UBUNTU-CVE-2026-40261
CVSS 3.1
8.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVBIT-composer-2026-40261 No score

Composer has Command Injection via Malicious Perforce Reference

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::syncCodeBase() method, which appends the $sourceReference parameter to a shell command without proper escaping, and additionally in the Perforce::generateP4Command() method as in GHSA-wg36-wvj6-r67p / CVE-2026-40176, which interpolates user-supplied Perforce connection parameters (port, user, client) from the source url field without proper escaping. An attacker can inject arbitrary commands through crafted source reference or source url values containing shell metacharacters, even if Perforce is not installed. Unlike CVE-2026-40176, the source reference and url are provided as part of package metadata, meaning any compromised or malicious Composer repository can serve package metadata declaring perforce as a source type with malicious values. This vulnerability is exploitable when installing or updating dependencies from source, including the default behavior when installing dev-prefixed versions. This issue has been fixed in Composer 2.2.27 (2.2 LTS) and 2.9.6 (mainline). If developers are unable to immediately update, they can avoid installing dependencies from source by using --prefer-dist or the preferred-install: dist config setting, and only use trusted Composer repositories as a workaround.

Record
BIT-composer-2026-40261
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_TOKEN disclosure in GitHub Actions logs (bsc#1271504).
  • CVE-2026-59946: path traversal in package bin field lets dependencies chmod arbitrary 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_TOKEN disclosure in GitHub Actions logs (bsc#1271504).
  • CVE-2026-59946: path traversal in package bin field lets dependencies chmod arbitrary 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_TOKEN disclosure in GitHub Actions logs (bsc#1271504).
  • CVE-2026-59946: path traversal in package bin field lets dependencies chmod arbitrary 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_TOKEN disclosure in GitHub Actions logs (bsc#1271504).
  • CVE-2026-59946: path traversal in package bin field lets dependencies chmod arbitrary 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

Affected packages
PackageAffectedFixed
composer/composer
Packagist
2.3.0 up to 2.9.6
2.9.6
composer/composer
Packagist
1.0.0 up to 2.2.27
2.2.27
composer
Alpine:v3.23
1.0.0 up to 2.9.6-r0
2.9.6-r0
composer
Alpine:v3.24
1.0.0 up to 2.9.6-r0
2.9.6-r0
composer
Bitnami
1.0.0 up to 2.2.27, 2.3.0 up to 2.9.6
2.2.272.9.6
composer
TuxCare:Debian:10
before 1.8.4-1+deb10u4+tuxcare.els1
1.8.4-1+deb10u4+tuxcare.els1
composer
Debian: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
composer
Debian:13
before 2.8.8-1+deb13u2, plus listed versions
2.8.8-12.8.8-1+deb13u1
2.8.8-1+deb13u2
composer
Debian: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 less
2.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/composer
Packagist
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 less
2.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
Affected packages
PackageAffectedFixed
composer/composer
Packagist
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 less
1.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
composer
Red Hat:hummingbird:1
before 0:2.9.7-1.hum1
0:2.9.7-1.hum1
php-composer2
SUSE:Linux Enterprise Server 16.0
before 2.8.9-160000.4.1
2.8.9-160000.4.1
php-composer2
SUSE:Linux Enterprise Server for SAP applications 16.0
before 2.8.9-160000.4.1
2.8.9-160000.4.1
php-composer2
SUSE: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-composer2
SUSE:Linux Enterprise Server 15 SP6-LTSS
before 2.6.4-150600.3.12.1
2.6.4-150600.3.12.1
php-composer2
SUSE:Linux Enterprise Server for SAP Applications 15 SP6
before 2.6.4-150600.3.12.1
2.6.4-150600.3.12.1
composer
Ubuntu: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 less
1.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
composer
Ubuntu: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
composer
Ubuntu: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
composer
Ubuntu: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
composer
Ubuntu: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
composer
Ubuntu:25.10
All versions, plus listed versions
2.8.6-12.8.8-1
None known
composer
Ubuntu:26.10
All versions, plus listed versions
2.9.5-12.10.1-22.10.2-1
None known
composer
Ubuntu:26.04:LTS
All versions, plus listed versions
2.8.8-12.9.5-1
None known
php-composer2
openSUSE:Tumbleweed
before 2.9.7-1.1
2.9.7-1.1
php-composer2
openSUSE: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.

Public exploits
SourceLinkDate
PoC in GitHubterminat0r7031/composer-CVE-2026-40261-CVE-2026-40176-PoC2026-04-16

History

History
RecordedChangedSources
affected, aliases, referencesOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-40261 is a high vulnerability (CVSS 8.8) in Composer, published April 14, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 1.69%, the 77th percentile. Fixed in composer/composer 2.9.6.

References

Show 53 moreShow less
This page doesn't list everything

Left out here: 108 versions and the rest of 1 source description. The JSON record has them.

MoveEnter Open