Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CVE-2026-59946 (GCVE-0-2026-59946)
Vulnerability from cvelistv5 – Published: 2026-07-08 19:32 – Updated: 2026-07-09 14:41| URL | Tags |
|---|---|
| https://github.com/composer/composer/security/adv… | x_refsource_CONFIRM |
| https://github.com/composer/composer/commit/502c6… | x_refsource_MISC |
| https://github.com/composer/composer/commit/c50b1… | x_refsource_MISC |
| https://github.com/composer/composer/releases/tag… | x_refsource_MISC |
| https://github.com/composer/composer/releases/tag… | x_refsource_MISC |
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-59946",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-07-09T14:21:07.902689Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-07-09T14:41:23.436Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "composer",
"vendor": "composer",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0, \u003c 2.2.29"
},
{
"status": "affected",
"version": "\u003e= 2.3.0, \u003c 2.10.2"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "NONE",
"baseScore": 6.1,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-732",
"description": "CWE-732: Incorrect Permission Assignment for Critical Resource",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-07-08T19:32:38.089Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx"
},
{
"name": "https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0"
},
{
"name": "https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1"
},
{
"name": "https://github.com/composer/composer/releases/tag/2.10.2",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/composer/composer/releases/tag/2.10.2"
},
{
"name": "https://github.com/composer/composer/releases/tag/2.2.29",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/composer/composer/releases/tag/2.2.29"
}
],
"source": {
"advisory": "GHSA-gjfg-22fp-rrxx",
"discovery": "UNKNOWN"
},
"title": "Composer: Path traversal in package bin field lets dependencies chmod arbitrary host files"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-59946",
"datePublished": "2026-07-08T19:32:38.089Z",
"dateReserved": "2026-07-07T18:49:15.607Z",
"dateUpdated": "2026-07-09T14:41:23.436Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-59946",
"date": "2026-08-04",
"epss": "0.00142",
"percentile": "0.03974"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-59946\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-07-08T20:16:59.707\",\"lastModified\":\"2026-07-10T19:14:18.563\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.\"}],\"affected\":[{\"source\":\"security-advisories@github.com\",\"affectedData\":[{\"vendor\":\"composer\",\"product\":\"composer\",\"versions\":[{\"version\":\"\u003e= 1.0, \u003c 2.2.29\",\"status\":\"affected\"},{\"version\":\"\u003e= 2.3.0, \u003c 2.10.2\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N\",\"baseScore\":6.1,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"REQUIRED\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":1.8,\"impactScore\":4.2}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-07-09T14:21:07.902689Z\",\"id\":\"CVE-2026-59946\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-22\"},{\"lang\":\"en\",\"value\":\"CWE-732\"}]}],\"references\":[{\"url\":\"https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/composer/composer/releases/tag/2.10.2\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/composer/composer/releases/tag/2.2.29\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx\",\"source\":\"security-advisories@github.com\"}]}}",
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-07-30T03:47:13+00:00",
"cve": "CVE-2026-59946",
"id": "CVE-2026-59946",
"initial_release_date": "2026-07-08T19:32:38.089000+00:00",
"product_status:fixed": "2",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "composer: Composer: Insecure file permissions leading to information disclosure and potential execution",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-59946.json",
"version": "3"
},
"suse_vex": {
"aggregate_severity": "moderate",
"current_release_date": "2026-07-15T18:48:01Z",
"cve": "CVE-2026-59946",
"id": "CVE-2026-59946",
"initial_release_date": "2026-07-10T03:11:49Z",
"product_status:known_affected": "19",
"product_status:recommended": "1",
"source": "SUSE CSAF VEX",
"status": "interim",
"title": "SUSE CVE CVE-2026-59946",
"url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-59946.json",
"version": "3"
},
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-59946\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-07-09T14:21:07.902689Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-07-09T14:21:08.559Z\"}}], \"cna\": {\"title\": \"Composer: Path traversal in package bin field lets dependencies chmod arbitrary host files\", \"source\": {\"advisory\": \"GHSA-gjfg-22fp-rrxx\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 6.1, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N\", \"integrityImpact\": \"LOW\", \"userInteraction\": \"REQUIRED\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"composer\", \"product\": \"composer\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003e= 1.0, \u003c 2.2.29\"}, {\"status\": \"affected\", \"version\": \"\u003e= 2.3.0, \u003c 2.10.2\"}]}], \"references\": [{\"url\": \"https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx\", \"name\": \"https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0\", \"name\": \"https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1\", \"name\": \"https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/composer/composer/releases/tag/2.10.2\", \"name\": \"https://github.com/composer/composer/releases/tag/2.10.2\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/composer/composer/releases/tag/2.2.29\", \"name\": \"https://github.com/composer/composer/releases/tag/2.2.29\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-22\", \"description\": \"CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)\"}]}, {\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-732\", \"description\": \"CWE-732: Incorrect Permission Assignment for Critical Resource\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-07-08T19:32:38.089Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-59946\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-07-09T14:41:23.436Z\", \"dateReserved\": \"2026-07-07T18:49:15.607Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-07-08T19:32:38.089Z\", \"assignerShortName\": \"GitHub_M\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
bit-composer-2026-59946
Vulnerability from bitnami_vulndb
Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer's binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.
{
"affected": [
{
"package": {
"ecosystem": "Bitnami",
"name": "composer",
"purl": "pkg:bitnami/composer"
},
"ranges": [
{
"events": [
{
"introduced": "1.0.0"
},
{
"fixed": "2.2.29"
},
{
"introduced": "2.3.0"
},
{
"fixed": "2.10.2"
}
],
"type": "SEMVER"
}
],
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N",
"type": "CVSS_V3"
}
]
}
],
"aliases": [
"CVE-2026-59946"
],
"database_specific": {
"cpes": [
"cpe:2.3:a:getcomposer:composer:*:*:*:*:*:*:*:*",
"cpe:2.3:a:getcomposer:composer:*:*:*:*:*:php:*:*"
],
"severity": "Medium"
},
"details": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.",
"id": "BIT-composer-2026-59946",
"modified": "2026-07-27T06:08:49.409Z",
"published": "2026-07-14T08:40:58.630Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/releases/tag/2.10.2"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/releases/tag/2.2.29"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx"
},
{
"type": "WEB",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-59946"
}
],
"schema_version": "1.6.2",
"summary": "Composer: Path traversal in package bin field lets dependencies chmod arbitrary host files"
}
FKIE_CVE-2026-59946
Vulnerability from fkie_nvd - Published: 2026-07-08 20:16 - Updated: 2026-07-10 19:14| Vendor | Product | Version |
|---|
{
"affected": [
{
"affectedData": [
{
"product": "composer",
"vendor": "composer",
"versions": [
{
"status": "affected",
"version": "\u003e= 1.0, \u003c 2.2.29"
},
{
"status": "affected",
"version": "\u003e= 2.3.0, \u003c 2.10.2"
}
]
}
],
"source": "security-advisories@github.com"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2."
}
],
"id": "CVE-2026-59946",
"lastModified": "2026-07-10T19:14:18.563",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "NONE",
"baseScore": 6.1,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N",
"version": "3.1"
},
"exploitabilityScore": 1.8,
"impactScore": 4.2,
"source": "security-advisories@github.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-59946",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-07-09T14:21:07.902689Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-07-08T20:16:59.707",
"references": [
{
"source": "security-advisories@github.com",
"url": "https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0"
},
{
"source": "security-advisories@github.com",
"url": "https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1"
},
{
"source": "security-advisories@github.com",
"url": "https://github.com/composer/composer/releases/tag/2.10.2"
},
{
"source": "security-advisories@github.com",
"url": "https://github.com/composer/composer/releases/tag/2.2.29"
},
{
"source": "security-advisories@github.com",
"url": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx"
}
],
"sourceIdentifier": "security-advisories@github.com",
"vulnStatus": "Deferred",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-22"
},
{
"lang": "en",
"value": "CWE-732"
}
],
"source": "security-advisories@github.com",
"type": "Secondary"
}
]
}
GHSA-GJFG-22FP-RRXX
Vulnerability from github – Published: 2026-07-20 21:57 – Updated: 2026-07-20 21:57Summary
A Composer package declares its executables in the bin field of its composer.json. When Composer installs a package, it processes each bin entry and changes the file mode of the corresponding file so it is executable.
If a bin entry contains .. path segments, it can resolve to a path outside the package's own install directory. A malicious package can use this to make Composer run chmod against a file that already exists elsewhere on the machine. The resulting mode is world-readable and world-executable (0755 under the common umask of 022). This happens when the package is installed, e.g. during composer install, composer update, and composer require. Any dependency can trigger it, including a transitive dependency several levels deep.
The vulnerability changes file permissions only, and does not read, modify, or execute the contents of the target file, and it is not remote code execution. The impact is to confidentiality: a file with deliberately restrictive permissions, such as a private key at mode 0600, can be made readable by other users on the same host.
Am I affected?
We reviewed packagist.org data and found no evidence that any published package exploited this vulnerability. If you install packages only from packagist.org, you are not affected by any known exploitation.
You are potentially affected if all of the following are true:
- Your Composer project depends, directly or transitively, on a package you do not fully trust.
- A file you rely on for its restrictive permissions already exists at a path the Composer process can write to. Examples include SSH private keys,
.envfiles,~/.aws/credentials, and.netrc.
The most likely way to be affected is to add or update a dependency that is malicious or has been compromised, then run an install on a machine that holds sensitive, permission-restricted files.
Two points to note:
--no-scripts,--no-plugins, and anallow-pluginsallow-list do not prevent this. The permission change happens during normal binary installation, outside the plugin and script trust model.- Impact scales with privilege: As a regular user, only files owned by that user can be affected, which typically means your own secrets becoming readable by other local users on a shared machine. As root (for example, a CI container with no non-root user, or
sudo composer install), any file on the system can be affected, including system credential stores.
Patched versions
The fix makes Composer reject any package whose binary entry contains a .. path segment. During install/update the operation aborts before any file permission is changed, and the same check now also applies when a package is published to Packagist.org, so such packages are refused upstream.
Fixed in 2.2.29 (2.2 LTS line) and 2.10.2 (current 2.x line). Composer 1.x is end of life and will not be patched. 1.x users should upgrade to a patched 2.x release.
Workarounds
Upgrading to a patched release is the only complete fix. There is no configuration option that disables the vulnerable behavior.
{
"affected": [
{
"package": {
"ecosystem": "Packagist",
"name": "composer/composer"
},
"ranges": [
{
"events": [
{
"introduced": "2.3.0"
},
{
"fixed": "2.10.2"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Packagist",
"name": "composer/composer"
},
"ranges": [
{
"events": [
{
"introduced": "1.0.0"
},
{
"fixed": "2.2.29"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-59946"
],
"database_specific": {
"cwe_ids": [
"CWE-22",
"CWE-732"
],
"github_reviewed": true,
"github_reviewed_at": "2026-07-20T21:57:40Z",
"nvd_published_at": "2026-07-08T20:16:59Z",
"severity": "MODERATE"
},
"details": "## Summary\n\nA Composer package declares its executables in the `bin` field of its `composer.json`. When Composer installs a package, it processes each `bin` entry and changes the file mode of the corresponding file so it is executable.\n\nIf a `bin` entry contains `..` path segments, it can resolve to a path outside the package\u0027s own install directory. A malicious package can use this to make Composer run `chmod` against a file that already exists elsewhere on the machine. The resulting mode is world-readable and world-executable (0755 under the common umask of 022). This happens when the package is installed, e.g. during `composer install`, `composer update`, and `composer require`. Any dependency can trigger it, including a transitive dependency several levels deep.\n\nThe vulnerability *changes file permissions only, and does not read, modify, or execute the contents of the target file, and it is not remote code execution*. The impact is to confidentiality: a file with deliberately restrictive permissions, such as a private key at mode 0600, can be made readable by other users on the same host.\n\n## Am I affected?\n\nWe reviewed packagist.org data and found no evidence that any published package exploited this vulnerability. If you install packages only from packagist.org, you are not affected by any known exploitation.\n\nYou are potentially affected if *all* of the following are true:\n\n- Your Composer project depends, directly or transitively, on a package you do not fully trust.\n- A file you rely on for its restrictive permissions already exists at a path the Composer process can write to. Examples include SSH private keys, `.env` files, `~/.aws/credentials`, and `.netrc`.\n\nThe most likely way to be affected is to add or update a dependency that is malicious or has been compromised, then run an install on a machine that holds sensitive, permission-restricted files.\n\nTwo points to note:\n\n- `--no-scripts`, `--no-plugins`, and an `allow-plugins` allow-list do not prevent this. The permission change happens during normal binary installation, outside the plugin and script trust model.\n- Impact scales with privilege: As a regular user, only files owned by that user can be affected, which typically means your own secrets becoming readable by other local users on a shared machine. As root (for example, a CI container with no non-root user, or `sudo composer install`), any file on the system can be affected, including system credential stores.\n\n## Patched versions\n\nThe fix makes Composer reject any package whose binary entry contains a `..` path segment. During install/update the operation aborts before any file permission is changed, and the same check now also applies when a package is published to Packagist.org, so such packages are refused upstream.\n\nFixed in 2.2.29 (2.2 LTS line) and 2.10.2 (current 2.x line). Composer 1.x is end of life and will not be patched. 1.x users should upgrade to a patched 2.x release.\n\n## Workarounds\n\nUpgrading to a patched release is the only complete fix. There is no configuration option that disables the vulnerable behavior.",
"id": "GHSA-gjfg-22fp-rrxx",
"modified": "2026-07-20T21:57:40Z",
"published": "2026-07-20T21:57:40Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-59946"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1"
},
{
"type": "PACKAGE",
"url": "https://github.com/composer/composer"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/releases/tag/2.10.2"
},
{
"type": "WEB",
"url": "https://github.com/composer/composer/releases/tag/2.2.29"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N",
"type": "CVSS_V3"
}
],
"summary": "Composer: Path traversal in package bin field lets dependencies chmod arbitrary host files"
}
OPENSUSE-SU-2026:11268-1
Vulnerability from csaf_opensuse - Published: 2026-07-14 00:00 - Updated: 2026-07-14 00:00| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64 | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64 | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64 | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x | — |
Vendor Fix
|
|
| Unresolved product id: openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64 | — |
Vendor Fix
|
{
"document": {
"aggregate_severity": {
"namespace": "https://www.suse.com/support/security/rating/",
"text": "moderate"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright 2024 SUSE LLC. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "php-composer2-2.10.2-1.1 on GA media",
"title": "Title of the patch"
},
{
"category": "description",
"text": "These are all security issues fixed in the php-composer2-2.10.2-1.1 package on the GA media of openSUSE Tumbleweed.",
"title": "Description of the patch"
},
{
"category": "details",
"text": "openSUSE-Tumbleweed-2026-11268",
"title": "Patchnames"
},
{
"category": "legal_disclaimer",
"text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
"title": "Terms of use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://www.suse.com/support/security/contact/",
"name": "SUSE Product Security Team",
"namespace": "https://www.suse.com/"
},
"references": [
{
"category": "external",
"summary": "SUSE ratings",
"url": "https://www.suse.com/support/security/rating/"
},
{
"category": "self",
"summary": "URL of this CSAF notice",
"url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_11268-1.json"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-59946 page",
"url": "https://www.suse.com/security/cve/CVE-2026-59946/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-59947 page",
"url": "https://www.suse.com/security/cve/CVE-2026-59947/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-59948 page",
"url": "https://www.suse.com/security/cve/CVE-2026-59948/"
}
],
"title": "php-composer2-2.10.2-1.1 on GA media",
"tracking": {
"current_release_date": "2026-07-14T00:00:00Z",
"generator": {
"date": "2026-07-14T00:00:00Z",
"engine": {
"name": "cve-database.git:bin/generate-csaf.pl",
"version": "1"
}
},
"id": "openSUSE-SU-2026:11268-1",
"initial_release_date": "2026-07-14T00:00:00Z",
"revision_history": [
{
"date": "2026-07-14T00:00:00Z",
"number": "1",
"summary": "Current version"
}
],
"status": "final",
"version": "1"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "php-composer2-2.10.2-1.1.aarch64",
"product": {
"name": "php-composer2-2.10.2-1.1.aarch64",
"product_id": "php-composer2-2.10.2-1.1.aarch64"
}
}
],
"category": "architecture",
"name": "aarch64"
},
{
"branches": [
{
"category": "product_version",
"name": "php-composer2-2.10.2-1.1.ppc64le",
"product": {
"name": "php-composer2-2.10.2-1.1.ppc64le",
"product_id": "php-composer2-2.10.2-1.1.ppc64le"
}
}
],
"category": "architecture",
"name": "ppc64le"
},
{
"branches": [
{
"category": "product_version",
"name": "php-composer2-2.10.2-1.1.s390x",
"product": {
"name": "php-composer2-2.10.2-1.1.s390x",
"product_id": "php-composer2-2.10.2-1.1.s390x"
}
}
],
"category": "architecture",
"name": "s390x"
},
{
"branches": [
{
"category": "product_version",
"name": "php-composer2-2.10.2-1.1.x86_64",
"product": {
"name": "php-composer2-2.10.2-1.1.x86_64",
"product_id": "php-composer2-2.10.2-1.1.x86_64"
}
}
],
"category": "architecture",
"name": "x86_64"
},
{
"branches": [
{
"category": "product_name",
"name": "openSUSE Tumbleweed",
"product": {
"name": "openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed",
"product_identification_helper": {
"cpe": "cpe:/o:opensuse:tumbleweed"
}
}
}
],
"category": "product_family",
"name": "SUSE Linux Enterprise"
}
],
"category": "vendor",
"name": "SUSE"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "php-composer2-2.10.2-1.1.aarch64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64"
},
"product_reference": "php-composer2-2.10.2-1.1.aarch64",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "php-composer2-2.10.2-1.1.ppc64le as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le"
},
"product_reference": "php-composer2-2.10.2-1.1.ppc64le",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "php-composer2-2.10.2-1.1.s390x as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x"
},
"product_reference": "php-composer2-2.10.2-1.1.s390x",
"relates_to_product_reference": "openSUSE Tumbleweed"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "php-composer2-2.10.2-1.1.x86_64 as component of openSUSE Tumbleweed",
"product_id": "openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
},
"product_reference": "php-composer2-2.10.2-1.1.x86_64",
"relates_to_product_reference": "openSUSE Tumbleweed"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-59946",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-59946"
}
],
"notes": [
{
"category": "general",
"text": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-59946",
"url": "https://www.suse.com/security/cve/CVE-2026-59946"
},
{
"category": "external",
"summary": "SUSE Bug 1271151 for CVE-2026-59946",
"url": "https://bugzilla.suse.com/1271151"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 5.5,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-07-14T00:00:00Z",
"details": "moderate"
}
],
"title": "CVE-2026-59946"
},
{
"cve": "CVE-2026-59947",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-59947"
}
],
"notes": [
{
"category": "general",
"text": "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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-59947",
"url": "https://www.suse.com/security/cve/CVE-2026-59947"
},
{
"category": "external",
"summary": "SUSE Bug 1271129 for CVE-2026-59947",
"url": "https://bugzilla.suse.com/1271129"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 4.7,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-07-14T00:00:00Z",
"details": "moderate"
}
],
"title": "CVE-2026-59947"
},
{
"cve": "CVE-2026-59948",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-59948"
}
],
"notes": [
{
"category": "general",
"text": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a maliciously crafted package from an untrusted repository other than Packagist.org or Private Packagist can cause Composer to write attacker-controlled files outside the vendor directory and outside the project during install or update by using an invalid package name that is not correctly validated before dependency-resolution results are written or installed. This issue is fixed in versions 2.2.29 and 2.10.2.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-59948",
"url": "https://www.suse.com/security/cve/CVE-2026-59948"
},
{
"category": "external",
"summary": "SUSE Bug 1271122 for CVE-2026-59948",
"url": "https://bugzilla.suse.com/1271122"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.aarch64",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.ppc64le",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.s390x",
"openSUSE Tumbleweed:php-composer2-2.10.2-1.1.x86_64"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-07-14T00:00:00Z",
"details": "important"
}
],
"title": "CVE-2026-59948"
}
]
}
OPENSUSE-SU-2026:21520-1
Vulnerability from csaf_opensuse - Published: 2026-08-03 21:09 - Updated: 2026-08-03 21:09| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch | — |
Vendor Fix
|
| Product | Identifier | Version | Remediation |
|---|---|---|---|
| Unresolved product id: openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch | — |
Vendor Fix
|
{
"document": {
"aggregate_severity": {
"namespace": "https://www.suse.com/support/security/rating/",
"text": "important"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright 2024 SUSE LLC. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "Security update for php-composer2",
"title": "Title of the patch"
},
{
"category": "description",
"text": "This update for php-composer2 fixes the following issues:\n\n- CVE-2026-45793: Github Actions issued `GITHUB_TOKEN` disclosure in GitHub Actions logs (bsc#1271504).\n- CVE-2026-59946: path traversal in package `bin` field lets dependencies `chmod` arbitrary host files (bsc#1271151).\n- CVE-2026-59947: URL-embedded HTTP-Basic username leaks to verbose logs (bsc#1271129).\n- CVE-2026-59948: arbitrary file write outside `vendor`directory via malicious transitive package name (bsc#1271122).\n\nChanges for php-composer2:\n\n- fix byte-swapped signature on s390x can cause broken or unsupported signature (bsc#1271729).\n",
"title": "Description of the patch"
},
{
"category": "details",
"text": "openSUSE-Leap-16.0-1425",
"title": "Patchnames"
},
{
"category": "legal_disclaimer",
"text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
"title": "Terms of use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://www.suse.com/support/security/contact/",
"name": "SUSE Product Security Team",
"namespace": "https://www.suse.com/"
},
"references": [
{
"category": "external",
"summary": "SUSE ratings",
"url": "https://www.suse.com/support/security/rating/"
},
{
"category": "self",
"summary": "URL of this CSAF notice",
"url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_21520-1.json"
},
{
"category": "self",
"summary": "SUSE Bug 1271122",
"url": "https://bugzilla.suse.com/1271122"
},
{
"category": "self",
"summary": "SUSE Bug 1271129",
"url": "https://bugzilla.suse.com/1271129"
},
{
"category": "self",
"summary": "SUSE Bug 1271151",
"url": "https://bugzilla.suse.com/1271151"
},
{
"category": "self",
"summary": "SUSE Bug 1271504",
"url": "https://bugzilla.suse.com/1271504"
},
{
"category": "self",
"summary": "SUSE Bug 1271729",
"url": "https://bugzilla.suse.com/1271729"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2025-67746 page",
"url": "https://www.suse.com/security/cve/CVE-2025-67746/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-40176 page",
"url": "https://www.suse.com/security/cve/CVE-2026-40176/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-40261 page",
"url": "https://www.suse.com/security/cve/CVE-2026-40261/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-45793 page",
"url": "https://www.suse.com/security/cve/CVE-2026-45793/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-59946 page",
"url": "https://www.suse.com/security/cve/CVE-2026-59946/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-59947 page",
"url": "https://www.suse.com/security/cve/CVE-2026-59947/"
},
{
"category": "self",
"summary": "SUSE CVE CVE-2026-59948 page",
"url": "https://www.suse.com/security/cve/CVE-2026-59948/"
}
],
"title": "Security update for php-composer2",
"tracking": {
"current_release_date": "2026-08-03T21:09:33Z",
"generator": {
"date": "2026-08-03T21:09:33Z",
"engine": {
"name": "cve-database.git:bin/generate-csaf.pl",
"version": "1"
}
},
"id": "openSUSE-SU-2026:21520-1",
"initial_release_date": "2026-08-03T21:09:33Z",
"revision_history": [
{
"date": "2026-08-03T21:09:33Z",
"number": "1",
"summary": "Current version"
}
],
"status": "final",
"version": "1"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_version",
"name": "php-composer2-2.8.9-160000.4.1.noarch",
"product": {
"name": "php-composer2-2.8.9-160000.4.1.noarch",
"product_id": "php-composer2-2.8.9-160000.4.1.noarch"
}
}
],
"category": "architecture",
"name": "noarch"
},
{
"branches": [
{
"category": "product_name",
"name": "openSUSE Leap 16.0",
"product": {
"name": "openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0"
}
}
],
"category": "product_family",
"name": "SUSE Linux Enterprise"
}
],
"category": "vendor",
"name": "SUSE"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "php-composer2-2.8.9-160000.4.1.noarch as component of openSUSE Leap 16.0",
"product_id": "openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
},
"product_reference": "php-composer2-2.8.9-160000.4.1.noarch",
"relates_to_product_reference": "openSUSE Leap 16.0"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2025-67746",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2025-67746"
}
],
"notes": [
{
"category": "general",
"text": "Composer is a dependency manager for PHP. In versions on the 2.x branch prior to 2.2.26 and 2.9.3, attackers controlling remote sources that Composer downloads from might in some way inject ANSI control characters in the terminal output of various Composer commands, causing mangled output and potentially leading to confusion or DoS of the terminal application. There is no proven exploit and this has thus a low severity but we still publish a CVE as it has potential for abuse, and we want to be on the safe side informing users that they should upgrade. Versions 2.2.26 and 2.9.3 contain a patch for the issue.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2025-67746",
"url": "https://www.suse.com/security/cve/CVE-2025-67746"
},
{
"category": "external",
"summary": "SUSE Bug 1255768 for CVE-2025-67746",
"url": "https://bugzilla.suse.com/1255768"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 3.3,
"baseSeverity": "LOW",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-03T21:09:33Z",
"details": "low"
}
],
"title": "CVE-2025-67746"
},
{
"cve": "CVE-2026-40176",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-40176"
}
],
"notes": [
{
"category": "general",
"text": "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).",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-40176",
"url": "https://www.suse.com/security/cve/CVE-2026-40176"
},
{
"category": "external",
"summary": "SUSE Bug 1262254 for CVE-2026-40176",
"url": "https://bugzilla.suse.com/1262254"
},
{
"category": "external",
"summary": "SUSE Bug 1262255 for CVE-2026-40176",
"url": "https://bugzilla.suse.com/1262255"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-03T21:09:33Z",
"details": "important"
}
],
"title": "CVE-2026-40176"
},
{
"cve": "CVE-2026-40261",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-40261"
}
],
"notes": [
{
"category": "general",
"text": "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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-40261",
"url": "https://www.suse.com/security/cve/CVE-2026-40261"
},
{
"category": "external",
"summary": "SUSE Bug 1262255 for CVE-2026-40261",
"url": "https://bugzilla.suse.com/1262255"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-03T21:09:33Z",
"details": "important"
}
],
"title": "CVE-2026-40261"
},
{
"cve": "CVE-2026-45793",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-45793"
}
],
"notes": [
{
"category": "general",
"text": "Composer is a dependency Manager for the PHP language. Prior to 1.10.28, 2.2.28, and 2.9.8, Composer\\IO\\BaseIO::loadConfiguration() validates GitHub OAuth tokens with the regex ^[.A-Za-z0-9_]+$ and interpolates rejected tokens into an UnexpectedValueException; GitHub Actions GITHUB_TOKEN values using the ghs_\u003cid\u003e_\u003cbase64url-JWT\u003e format can contain -, fail validation, and be disclosed to stderr or CI logs. This issue is fixed in versions 1.10.28, 2.2.28, and 2.9.8.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-45793",
"url": "https://www.suse.com/security/cve/CVE-2026-45793"
},
{
"category": "external",
"summary": "SUSE Bug 1271504 for CVE-2026-45793",
"url": "https://bugzilla.suse.com/1271504"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-03T21:09:33Z",
"details": "moderate"
}
],
"title": "CVE-2026-45793"
},
{
"cve": "CVE-2026-59946",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-59946"
}
],
"notes": [
{
"category": "general",
"text": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-59946",
"url": "https://www.suse.com/security/cve/CVE-2026-59946"
},
{
"category": "external",
"summary": "SUSE Bug 1271151 for CVE-2026-59946",
"url": "https://bugzilla.suse.com/1271151"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 5.5,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-03T21:09:33Z",
"details": "moderate"
}
],
"title": "CVE-2026-59946"
},
{
"cve": "CVE-2026-59947",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-59947"
}
],
"notes": [
{
"category": "general",
"text": "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.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-59947",
"url": "https://www.suse.com/security/cve/CVE-2026-59947"
},
{
"category": "external",
"summary": "SUSE Bug 1271129 for CVE-2026-59947",
"url": "https://bugzilla.suse.com/1271129"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 4.7,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-03T21:09:33Z",
"details": "moderate"
}
],
"title": "CVE-2026-59947"
},
{
"cve": "CVE-2026-59948",
"ids": [
{
"system_name": "SUSE CVE Page",
"text": "https://www.suse.com/security/cve/CVE-2026-59948"
}
],
"notes": [
{
"category": "general",
"text": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a maliciously crafted package from an untrusted repository other than Packagist.org or Private Packagist can cause Composer to write attacker-controlled files outside the vendor directory and outside the project during install or update by using an invalid package name that is not correctly validated before dependency-resolution results are written or installed. This issue is fixed in versions 2.2.29 and 2.10.2.",
"title": "CVE description"
}
],
"product_status": {
"recommended": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
},
"references": [
{
"category": "external",
"summary": "CVE-2026-59948",
"url": "https://www.suse.com/security/cve/CVE-2026-59948"
},
{
"category": "external",
"summary": "SUSE Bug 1271122 for CVE-2026-59948",
"url": "https://bugzilla.suse.com/1271122"
}
],
"remediations": [
{
"category": "vendor_fix",
"details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
"product_ids": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"scores": [
{
"cvss_v3": {
"baseScore": 7,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"products": [
"openSUSE Leap 16.0:php-composer2-2.8.9-160000.4.1.noarch"
]
}
],
"threats": [
{
"category": "impact",
"date": "2026-08-03T21:09:33Z",
"details": "important"
}
],
"title": "CVE-2026-59948"
}
]
}
RHSA-2026:34854
Vulnerability from csaf_redhat - Published: 2026-07-02 08:56 - Updated: 2026-08-03 10:48A flaw was found in Composer, a dependency manager for PHP. A malicious package can exploit a vulnerability in Composer's binary installation process by using specially crafted path segments. This allows an existing file on the host system to have its permissions changed to be world-readable and world-executable. This can lead to sensitive information disclosure and potentially allow an attacker to execute arbitrary code.
{
"document": {
"aggregate_severity": {
"namespace": "https://access.redhat.com/security/updates/classification/",
"text": "Moderate"
},
"category": "csaf_security_advisory",
"csaf_version": "2.0",
"distribution": {
"text": "Copyright \u00a9 Red Hat, Inc. All rights reserved.",
"tlp": {
"label": "WHITE",
"url": "https://www.first.org/tlp/"
}
},
"lang": "en",
"notes": [
{
"category": "summary",
"text": "An update for Red Hat Hardened Images RPMs is now available.",
"title": "Topic"
},
{
"category": "general",
"text": "This update includes the following RPMs:\n\ncomposer:\n * composer-2.10.2-1.hum1 (noarch)\n * composer-2.10.2-1.hum1.src (src)",
"title": "Details"
},
{
"category": "legal_disclaimer",
"text": "This content is licensed under the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/). If you distribute this content, or a modified version of it, you must provide attribution to Red Hat Inc. and provide a link to the original.",
"title": "Terms of Use"
}
],
"publisher": {
"category": "vendor",
"contact_details": "https://access.redhat.com/security/team/contact/",
"issuing_authority": "Red Hat Product Security is responsible for vulnerability handling across all Red Hat products and services.",
"name": "Red Hat Product Security",
"namespace": "https://www.redhat.com"
},
"references": [
{
"category": "self",
"summary": "https://access.redhat.com/errata/RHSA-2026:34854",
"url": "https://access.redhat.com/errata/RHSA-2026:34854"
},
{
"category": "external",
"summary": "https://images.redhat.com/",
"url": "https://images.redhat.com/"
},
{
"category": "external",
"summary": "https://access.redhat.com/security/cve/CVE-2026-59946",
"url": "https://access.redhat.com/security/cve/CVE-2026-59946"
},
{
"category": "external",
"summary": "https://access.redhat.com/security/updates/classification/",
"url": "https://access.redhat.com/security/updates/classification/"
},
{
"category": "self",
"summary": "Canonical URL",
"url": "https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_34854.json"
}
],
"title": "Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update",
"tracking": {
"current_release_date": "2026-08-03T10:48:57+00:00",
"generator": {
"date": "2026-08-03T10:48:57+00:00",
"engine": {
"name": "Red Hat SDEngine",
"version": "5.3.8"
}
},
"id": "RHSA-2026:34854",
"initial_release_date": "2026-07-02T08:56:58+00:00",
"revision_history": [
{
"date": "2026-07-02T08:56:58+00:00",
"number": "1",
"summary": "Initial version"
},
{
"date": "2026-08-01T08:08:43+00:00",
"number": "2",
"summary": "Last updated version"
},
{
"date": "2026-08-03T10:48:57+00:00",
"number": "3",
"summary": "Last generated version"
}
],
"status": "final",
"version": "3"
}
},
"product_tree": {
"branches": [
{
"branches": [
{
"branches": [
{
"category": "product_name",
"name": "Red Hat Hardened Images",
"product": {
"name": "Red Hat Hardened Images",
"product_id": "Red Hat Hardened Images",
"product_identification_helper": {
"cpe": "cpe:/a:redhat:hummingbird:1"
}
}
}
],
"category": "product_family",
"name": "Red Hat Hardened Images"
},
{
"branches": [
{
"category": "product_version",
"name": "composer-main@noarch",
"product": {
"name": "composer-main@noarch",
"product_id": "composer-main@noarch",
"product_identification_helper": {
"purl": "pkg:rpm/redhat/composer@2.10.2-1.hum1?arch=noarch\u0026distro=hummingbird-20251124\u0026repository_id=public-hummingbird-x86_64-rpms"
}
}
}
],
"category": "architecture",
"name": "noarch"
},
{
"branches": [
{
"category": "product_version",
"name": "composer-main@src",
"product": {
"name": "composer-main@src",
"product_id": "composer-main@src",
"product_identification_helper": {
"purl": "pkg:rpm/redhat/composer@2.10.2-1.hum1?arch=src\u0026distro=hummingbird-20251124\u0026repository_id=public-hummingbird-source-rpms"
}
}
}
],
"category": "architecture",
"name": "src"
}
],
"category": "vendor",
"name": "Red Hat"
}
],
"relationships": [
{
"category": "default_component_of",
"full_product_name": {
"name": "composer-main@noarch as a component of Red Hat Hardened Images",
"product_id": "Red Hat Hardened Images:composer-main@noarch"
},
"product_reference": "composer-main@noarch",
"relates_to_product_reference": "Red Hat Hardened Images"
},
{
"category": "default_component_of",
"full_product_name": {
"name": "composer-main@src as a component of Red Hat Hardened Images",
"product_id": "Red Hat Hardened Images:composer-main@src"
},
"product_reference": "composer-main@src",
"relates_to_product_reference": "Red Hat Hardened Images"
}
]
},
"vulnerabilities": [
{
"cve": "CVE-2026-59946",
"cwe": {
"id": "CWE-279",
"name": "Incorrect Execution-Assigned Permissions"
},
"discovery_date": "2026-07-08T20:01:11.154736+00:00",
"ids": [
{
"system_name": "Red Hat Bugzilla ID",
"text": "2498194"
}
],
"notes": [
{
"category": "description",
"text": "A flaw was found in Composer, a dependency manager for PHP. A malicious package can exploit a vulnerability in Composer\u0027s binary installation process by using specially crafted path segments. This allows an existing file on the host system to have its permissions changed to be world-readable and world-executable. This can lead to sensitive information disclosure and potentially allow an attacker to execute arbitrary code.",
"title": "Vulnerability description"
},
{
"category": "summary",
"text": "composer: Composer: Insecure file permissions leading to information disclosure and potential execution",
"title": "Vulnerability summary"
},
{
"category": "other",
"text": "Red Hat ships Composer version 2.10.2 in its products, which already includes the fix for this issue. Community distributions have been notified.",
"title": "Statement"
},
{
"category": "general",
"text": "The CVSS score(s) listed for this vulnerability do not reflect the associated product\u0027s status, and are included for informational purposes to better understand the severity of this vulnerability.",
"title": "CVSS score applicability"
}
],
"product_status": {
"fixed": [
"Red Hat Hardened Images:composer-main@noarch",
"Red Hat Hardened Images:composer-main@src"
]
},
"references": [
{
"category": "self",
"summary": "Canonical URL",
"url": "https://access.redhat.com/security/cve/CVE-2026-59946"
},
{
"category": "external",
"summary": "RHBZ#2498194",
"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2498194"
},
{
"category": "external",
"summary": "https://www.cve.org/CVERecord?id=CVE-2026-59946",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-59946"
},
{
"category": "external",
"summary": "https://nvd.nist.gov/vuln/detail/CVE-2026-59946",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-59946"
},
{
"category": "external",
"summary": "https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0",
"url": "https://github.com/composer/composer/commit/502c6c4f699802d9cf464728b3e8a95674f919a0"
},
{
"category": "external",
"summary": "https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1",
"url": "https://github.com/composer/composer/commit/c50b1efd13ebd73f6dca19b31424c5a02bf93cc1"
},
{
"category": "external",
"summary": "https://github.com/composer/composer/releases/tag/2.10.2",
"url": "https://github.com/composer/composer/releases/tag/2.10.2"
},
{
"category": "external",
"summary": "https://github.com/composer/composer/releases/tag/2.2.29",
"url": "https://github.com/composer/composer/releases/tag/2.2.29"
},
{
"category": "external",
"summary": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx",
"url": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx"
}
],
"release_date": "2026-07-08T19:32:38.089000+00:00",
"remediations": [
{
"category": "vendor_fix",
"date": "2026-07-02T08:56:58+00:00",
"details": "For details on how to apply this update, which includes the changes described in this advisory, refer to:\nhttps://images.redhat.com/",
"product_ids": [
"Red Hat Hardened Images:composer-main@noarch",
"Red Hat Hardened Images:composer-main@src"
],
"restart_required": {
"category": "none"
},
"url": "https://access.redhat.com/errata/RHSA-2026:34854"
}
],
"scores": [
{
"cvss_v3": {
"attackComplexity": "LOW",
"attackVector": "LOCAL",
"availabilityImpact": "NONE",
"baseScore": 5.6,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "LOW",
"privilegesRequired": "LOW",
"scope": "UNCHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:L/A:N",
"version": "3.1"
},
"products": [
"Red Hat Hardened Images:composer-main@noarch",
"Red Hat Hardened Images:composer-main@src"
]
}
],
"threats": [
{
"category": "impact",
"details": "Moderate"
}
],
"title": "composer: Composer: Insecure file permissions leading to information disclosure and potential execution"
}
]
}
ubuntu-cve-2026-59946
Vulnerability from osv_ubuntu
Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer's binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.
{
"affected": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "composer",
"binary_version": "1.0.0~beta2-1ubuntu0.1~esm2"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:16.04:LTS",
"name": "composer",
"purl": "pkg:deb/ubuntu/composer@1.0.0~beta2-1ubuntu0.1~esm2?arch=source\u0026distro=esm-apps/xenial"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.0.0~alpha10+20150602-1",
"1.0.0~alpha10+20150602-2",
"1.0.0~alpha11-1",
"1.0.0~alpha11-1ubuntu1",
"1.0.0~alpha11-2",
"1.0.0~alpha11-3",
"1.0.0~beta1-1ubuntu1",
"1.0.0~beta2-1",
"1.0.0~beta2-1ubuntu0.1~esm1",
"1.0.0~beta2-1ubuntu0.1~esm2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "composer",
"binary_version": "1.6.3-1ubuntu0.1~esm2"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:18.04:LTS",
"name": "composer",
"purl": "pkg:deb/ubuntu/composer@1.6.3-1ubuntu0.1~esm2?arch=source\u0026distro=esm-apps/bionic"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.5.1-1",
"1.5.2-1",
"1.6.2-1",
"1.6.3-1",
"1.6.3-1ubuntu0.1~esm1",
"1.6.3-1ubuntu0.1~esm2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "composer",
"binary_version": "1.10.1-1ubuntu0.1~esm2"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:20.04:LTS",
"name": "composer",
"purl": "pkg:deb/ubuntu/composer@1.10.1-1ubuntu0.1~esm2?arch=source\u0026distro=esm-apps/focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.9.0-2",
"1.9.1-1",
"1.9.2-1",
"1.9.3-1",
"1.10.0-1",
"1.10.1-1",
"1.10.1-1ubuntu0.1~esm1",
"1.10.1-1ubuntu0.1~esm2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "composer",
"binary_version": "2.2.6-2ubuntu4+esm1"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:22.04:LTS",
"name": "composer",
"purl": "pkg:deb/ubuntu/composer@2.2.6-2ubuntu4+esm1?arch=source\u0026distro=esm-apps/jammy"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.0.9-2ubuntu2",
"2.0.9-2ubuntu3",
"2.0.13-1ubuntu1",
"2.1.12-1ubuntu1",
"2.2.6-2ubuntu4",
"2.2.6-2ubuntu4+esm1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "composer",
"binary_version": "2.7.1-2ubuntu0.1~esm1"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:24.04:LTS",
"name": "composer",
"purl": "pkg:deb/ubuntu/composer@2.7.1-2ubuntu0.1~esm1?arch=source\u0026distro=esm-apps/noble"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.5.8-1",
"2.6.5-1",
"2.6.6-1",
"2.7.1-2",
"2.7.1-2ubuntu0.1~esm1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "composer",
"binary_version": "2.8.8-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:25.10",
"name": "composer",
"purl": "pkg:deb/ubuntu/composer@2.8.8-1?arch=source\u0026distro=questing"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.8.6-1",
"2.8.8-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "composer",
"binary_version": "2.9.5-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:26.04:LTS",
"name": "composer",
"purl": "pkg:deb/ubuntu/composer@2.9.5-1?arch=source\u0026distro=resolute"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"2.8.8-1",
"2.9.5-1"
]
}
],
"aliases": [],
"details": "Composer is a dependency Manager for the PHP language. Prior to 2.2.29 and 2.10.2, a Composer package bin entry containing .. path segments can resolve outside the package install directory and cause Composer\u0027s binary installation flow to chmod an existing host file to a world-readable and world-executable mode during composer install, update, or require. This issue is fixed in versions 2.2.29 and 2.10.2.",
"id": "UBUNTU-CVE-2026-59946",
"modified": "2026-07-15T17:53:45Z",
"published": "2026-07-08T20:16:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2026-59946"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-59946"
},
{
"type": "REPORT",
"url": "https://github.com/composer/composer/security/advisories/GHSA-gjfg-22fp-rrxx"
}
],
"related": [],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2026-59946"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.