{"items":[{"id":"NVI-00003429","kind":"vulnerability","title":"Composer has a command injection via malicious perforce reference","revision":4,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected.","NVD lastModified does not establish freshness of every associated CPE record."],"lifecycle":"active","identifiers":["GHSA-gqw4-4w2p-838q","CVE-2026-40261"],"plain_summary":"GitHub lists this reviewed advisory for composer/composer, composer/composer. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-76e790fa4124353753bdf18c7293129b"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.9.6 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.2.27 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-07-20T19:12:37.000Z","value":"8.8 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-520ff8e18ce020ee880d90982c4c209d"},{"kind":"CVSS","as_of":"2026-07-15T02:21:05.167Z","value":"8.8 HIGH (3.1)","meaning":"security-advisories@github.com severity; no combined Null risk score.","source_id":"sr-c4ce33ccbfdafd042c5b9846eb03a81c"},{"kind":"CVSS","as_of":"2026-07-15T02:21:05.167Z","value":"8.8 HIGH (3.1)","meaning":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c severity; no combined Null risk score.","source_id":"sr-c4ce33ccbfdafd042c5b9846eb03a81c"},{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"1.688%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.7704. Missing scores are unknown.","source_id":"sr-76e790fa4124353753bdf18c7293129b"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-520ff8e18ce020ee880d90982c4c209d","url":"https://github.com/advisories/GHSA-gqw4-4w2p-838q","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-gqw4-4w2p-838q","publisher":"GitHub Advisory Database","observed_at":"2026-11-04T02:49:06.528Z"},{"id":"sr-3e17ff4fcbd93292540ddd4231708adc","url":"https://github.com/advisories/GHSA-gqw4-4w2p-838q","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-gqw4-4w2p-838q","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:20.421Z"},{"id":"sr-c4ce33ccbfdafd042c5b9846eb03a81c","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-40261","basis":"official_catalog","notes":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","title":"CVE-2026-40261","publisher":"NIST National Vulnerability Database","observed_at":"2026-11-01T07:23:52.242Z"},{"id":"sr-76e790fa4124353753bdf18c7293129b","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-40261","publisher":"FIRST EPSS","observed_at":"2026-10-31T22:06:15.378Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-520ff8e18ce020ee880d90982c4c209d"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":[">= 2.3.0, < 2.9.6"]},{"certainty":"source_listed","source_ids":["sr-520ff8e18ce020ee880d90982c4c209d"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":[">= 1.0.0, < 2.2.27"]},{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 2.3.0; fixed 2.9.6"]},{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 1.0.0; fixed 2.2.27"]}],"null_published_at":"2026-11-07T22:29:23.416Z","source_updated_at":"2026-07-20T19:12:37.000Z","source_disclosed_at":"2026-04-14T20:01:42.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-10-31T21:42:20.421Z"},{"id":"NVI-00003429","kind":"vulnerability","title":"Composer has a command injection via malicious perforce reference","revision":3,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-gqw4-4w2p-838q","CVE-2026-40261"],"plain_summary":"GitHub lists this reviewed advisory for composer/composer, composer/composer. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-76e790fa4124353753bdf18c7293129b"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.9.6 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.2.27 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-07-20T19:12:37.000Z","value":"8.8 high","meaning":"GitHub source severity; exploitability and local consequence require separate evidence.","source_id":"sr-520ff8e18ce020ee880d90982c4c209d"},{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"1.688%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.7704. Missing scores are unknown.","source_id":"sr-76e790fa4124353753bdf18c7293129b"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-520ff8e18ce020ee880d90982c4c209d","url":"https://github.com/advisories/GHSA-gqw4-4w2p-838q","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-gqw4-4w2p-838q","publisher":"GitHub Advisory Database","observed_at":"2026-11-04T02:49:06.528Z"},{"id":"sr-3e17ff4fcbd93292540ddd4231708adc","url":"https://github.com/advisories/GHSA-gqw4-4w2p-838q","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-gqw4-4w2p-838q","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:20.421Z"},{"id":"sr-76e790fa4124353753bdf18c7293129b","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-40261","publisher":"FIRST EPSS","observed_at":"2026-10-31T22:06:15.378Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-520ff8e18ce020ee880d90982c4c209d"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":[">= 2.3.0, < 2.9.6"]},{"certainty":"source_listed","source_ids":["sr-520ff8e18ce020ee880d90982c4c209d"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":[">= 1.0.0, < 2.2.27"]},{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 2.3.0; fixed 2.9.6"]},{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 1.0.0; fixed 2.2.27"]}],"null_published_at":"2026-11-04T10:04:27.921Z","source_updated_at":"2026-07-20T19:12:37.000Z","source_disclosed_at":"2026-04-14T20:01:42.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-10-31T21:42:20.421Z"},{"id":"NVI-00003429","kind":"vulnerability","title":"Composer has a command injection via malicious perforce reference","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-gqw4-4w2p-838q","CVE-2026-40261"],"plain_summary":"OSV carries this publisher advisory for composer/composer, composer/composer. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 2.9.6 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.2.27 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-76e790fa4124353753bdf18c7293129b"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"EPSS","as_of":"2026-10-31T12:00:27.000Z","value":"1.688%","meaning":"FIRST EPSS model v2026.06.15; exploitation probability over 30 days, percentile 0.7704. Missing scores are unknown.","source_id":"sr-76e790fa4124353753bdf18c7293129b"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-3e17ff4fcbd93292540ddd4231708adc","url":"https://github.com/advisories/GHSA-gqw4-4w2p-838q","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-gqw4-4w2p-838q","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:20.421Z"},{"id":"sr-76e790fa4124353753bdf18c7293129b","url":"https://www.first.org/epss/data.html","basis":"official_catalog","notes":"FIRST EPSS; probability of exploitation in the next 30 days, not local compromise. Dataset date/model retained; FIRST services terms apply.","title":"CVE-2026-40261","publisher":"FIRST EPSS","observed_at":"2026-10-31T22:06:15.378Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 2.3.0; fixed 2.9.6"]},{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 1.0.0; fixed 2.2.27"]}],"null_published_at":"2026-11-01T19:14:01.603Z","source_updated_at":"2026-09-10T03:51:01.816Z","source_disclosed_at":"2026-04-14T20:01:42.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Dated EPSS estimate updated; this is not a new disclosure or proof of exploitation.","null_first_observed_at":"2026-10-31T21:42:20.421Z"},{"id":"NVI-00003429","kind":"vulnerability","title":"Composer has a command injection via malicious perforce reference","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-gqw4-4w2p-838q","CVE-2026-40261"],"plain_summary":"OSV carries this publisher advisory for composer/composer, composer/composer. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 2.9.6 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 2.2.27 for composer/composer. Confirm the publisher’s latest guidance.","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-3e17ff4fcbd93292540ddd4231708adc","url":"https://github.com/advisories/GHSA-gqw4-4w2p-838q","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-gqw4-4w2p-838q","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-10-31T21:42:20.421Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 2.3.0; fixed 2.9.6"]},{"certainty":"source_listed","source_ids":["sr-3e17ff4fcbd93292540ddd4231708adc"],"technology":"composer/composer","known_exclusions":[],"conditions_summary":"### Impact\nThe `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.\n\nThe 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.\n\nThis vulnerability is exploitable when installing or updating dependencies from source (`--prefer-source`, default when installing","public_affected_ranges":["ECOSYSTEM: introduced 1.0.0; fixed 2.2.27"]}],"null_published_at":"2026-10-31T22:12:48.016Z","source_updated_at":"2026-09-10T03:51:01.816Z","source_disclosed_at":"2026-04-14T20:01:42.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-10-31T21:42:20.421Z"}],"next_cursor":null,"snapshot_revision":"42594"}