CVE-2026-59947 json
Composer: URL-embedded HTTP-Basic username leaks to verbose logs (GitHub PAT exposure)
published 2026-07-08 4 mo ago modified 2026-07-27 3 mo ago also BIT-composer-2026-59947 , EUVD-2026-42363 , GHSA-g6xq-892h-64w3
- cvss
- 4.7
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 1%
- public exploits
- 0
- none known
Summary
Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, when Composer is run with -vvv debug verbosity, it could print a credential embedded in the username slot of a repository or package URL, such as a GitHub Personal Access Token in https://TOKEN@host/, to debug output because AuthHelper, Url::sanitize, and ProcessExecutor did not sanitize username-only URL credentials. This issue is fixed in versions 2.2.29 and 2.10.2.
Patch / fix
- packagist composer/composer 2.2.29, 2.10.2
- bitnami composer 2.2.29, 2.10.2
- getcomposer composer 2.2.29, 2.10.2
- composer Debian 14 2.10.2-1
debian advisories DEBIAN-CVE-2026-59947
- php-composer2 SLES for SAP 15 SP5, SLES for SAP 15 SP4, SLES 15 SP5-LTSS +5 more 2.2.30-150400.3.24.1
- php-composer2 SLES for SAP applications 16.0, SLES 16.0 2.8.9-160000.6.1
- php-composer2 SLE Module for Web and Scripting 15 SP7 2.6.4-150600.3.23.1
- php-composer2 SLES for SAP 15 SP5, SLES for SAP 15 SP4, SLES 15 SP5-LTSS +5 more 2.2.30-150400.3.21.1
- php-composer2 SLES 16.0, SLES for SAP applications 16.0 2.8.9-160000.4.1
- php-composer2 SLES for SAP 15 SP6, SLES 15 SP6-LTSS, SLE Module for Web and Scripting 15 SP7 2.6.4-150600.3.12.1
suse advisories SUSE-SU-2026:4589-1SUSE-SU-2026:23943-1SUSE-SU-2026:4288-1SUSE-SU-2026:4283-1SUSE-SU-2026:23116-1SUSE-SU-2026:23138-1
- php-composer2 openSUSE Leap 16.0 2.8.9-160000.6.1
- php-composer2 openSUSE Leap 16.0 2.8.9-160000.4.1
- php-composer2 openSUSE Tumbleweed 2.10.2-1.1
opensuse advisories openSUSE-SU-2026:21970-1openSUSE-SU-2026:21520-1openSUSE-SU-2026:11268-1
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-59947 updated cvss 4.7
composer/composer: Composer: Information disclosure of credentials via debug output
-
Red Hat Hardened Images composernot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 4 mo ago
Exploit prediction
0.12% chance of exploitation in the next 30 days, higher than 1% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.7 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 4.7 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 4.7 | CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| packagist | composer/composer | >=2.3.0, <2.10.2 >=1.0.0, <2.2.29 |
2.10.2 2.2.29 |
| bitnami | composer | >=1.0.0, <2.2.29 >=2.3.0, <2.10.2 |
2.2.29 2.10.2 |
Affected products
- composer composer
Classification
- Weakness
-
- CWE-532 Insertion of Sensitive Information into Log File
References
-
github.com
/composer/composer/commit/6bd66874ae523ecb69aca5964487a0cdfda03ef8
web
-
github.com
/composer/composer/commit/8887ad76fbd830cb1861a2b1fd8ead78ed1fa1ec
web
-
github.com
/composer/composer/security/advisories/GHSA-g6xq-892h-64w3
web
-
github.com
/composer/composer/releases/tag/2.10.2
web
-
github.com
/composer/composer/releases/tag/2.2.29
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-59947
advisory, web
-
github.com
/composer/composer
package
Sources
- CVE List CVE-2026-59947
- GitHub Advisory GHSA-g6xq-892h-64w3
- NVD CVE-2026-59947
- OSV BIT-composer-2026-59947
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.