Skip to content
OpenAdvisories
Medium · 5.6 Public exploit CVE-2026-46420 EUVD-2026-45303GHSA-pqwm-q9pv-ph8r

setup-php: Command Injection in Repository-Derived PHP Version Resolution

Published Jul 17, 2026 · Updated Jul 20, 2026 · Assigned by GitHub_M

Description

setup-php is a GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and tools. From 2.25.0 prior to 2.37.1, shivammathur/setup-php resolves the PHP version from repository-controlled files such as .php-version, composer.lock through platform-overrides.php, and composer.json through config.platform.php, and insufficiently constrains those values before incorporating them into generated shell or PowerShell setup scripts, allowing command injection on a GitHub Actions runner when workflows such as pull_request_target check out attacker-controlled contents before invoking setup-php. This issue is fixed in version 2.37.1.

Affected products

VendorProductAffectedFixed
shivammathur setup-php >= 2.25.0, < 2.37.1 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

  • Jvr2022/CVE-2026-46420 ★ 1 · Jul 18, 2026

    PoC for CVE-2026-46420, command injection in shivammathur/setup-php via repository-controlled PHP version resolution.

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
GitHub Actions shivammathur/setup-php >= 2.25.0, < 2.37.1 2.37.1 GHSA-pqwm-q9pv-ph8r

References