CVE-2019-11043 — php-src
CRITICALCVE-2019-11043 is a critical-severity (CVSS 9.8) CWE-120 vulnerability. It is in CISA's Known Exploited Vulnerabilities catalog (added 2022-03-25) and has been used in ransomware campaigns — treat it as actively exploited and patch now. A fix is available — see the affected versions and patch details below.
Exploitation Status
Actively exploited in the wild
- Confirmed by CISA's Known Exploited Vulnerabilities catalog on 2022-03-25 — including use in ransomware campaigns. Federal agencies were required to remediate by 2022-04-15.
- A successful exploit gives an attacker total control of the affected component, not partial access.
Exploitation and automatability from CISA (KEV catalog and SSVC triage) for CVE-2019-11043.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
CVE-2019-11043 by exploitation likelihood (EPSS) against impact (CVSS). In the shaded patch-first corner (EPSS 50%+, CVSS 7.0+).
Where this sits among everything scored
Of 394,803 CVEs with a current EPSS score, this one falls in the ≥ 90% band (highlighted). Counts from FIRST.org, log-scaled.
Description
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it is possible to cause FPM module to write past allocated buffers into the space reserved for FCGI protocol data, thus opening the possibility of remote code execution.
Affected Products
ubuntu linuxcanonicaldebian linuxdebianfedorafedoraprojectphpphpenterprise linuxredhatenterprise linux desktopredhatResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
PHP-FPM + Nginx - Remote Code Execution
by Emil Lerner · Oct 28, 2019
PHP-FPM - Underflow Remote Code Execution (Metasploit)
by Metasploit · Mar 9, 2020
Detection & mitigation playbook
VulnerabilityDetect
Identify every host running the affected component and compare the installed build against the fixed version below — for source-built or distro-packaged software the version string, not a lockfile, is the source of truth (`dpkg -l`, `rpm -q`, or the binary's own `--version`).
Fix
Upgrade the affected component to the fixed release for CVE-2019-11043, or apply your distribution's backported patch — distro builds are often patched at an older version number, so check your vendor's advisory rather than the upstream version alone.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How to detect CVE-2019-11043
A community-maintained Nuclei template exists for this CVE. You can scan for it directly:
nuclei -id cve-2019-11043 -u https://target- Template
- PHP-FPM Path Info Buffer Underflow - Remote Code Execution
- Severity
- critical
- Remediation
- Upgrade PHP to 7.1.33, 7.2.24, 7.3.11 or later. As mitigation, remove the fastcgi_split_path_info directive or ensure it cannot match an empty PATH_INFO.
Template by ProjectDiscovery nuclei-templates (Prasath from Securin Labs (https://securin.io)), MIT licensed. View the full template. Scan only systems you are authorised to test.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
This issue only affects instances running php-fpm under nginx server software as environment paths and parameters are handled by different code pieces depending on the server php-fpm is running under. The code where this issue is found is used exclusively when php-fpm detects the request came through an nginx…
1) Check your nginx configuration files, specially the ones related to php-fpm for presence of pattern bellow on fastcgi_split_path_info regex and PATH_INFO parameter: ~~~ fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; ~~~ 2) If fastcgi_split_path_info regex matches with the one above, for each fastcgi_param PATH_INFO entry perform the following change: ~~~ fastcgi_param PATH_INFO $fastcgi_path_info if_not_empty; ~~~ This step will allow you to safely continue using PATH_INFO parameter while the patch is not applied. 3) Restart your nginx instance: ~~~ systemctl restart nginx ~~~Source: Red Hat security advisory for CVE-2019-11043 (CC BY 4.0)
| Product | Fixed in | Advisory |
|---|---|---|
| Red Hat Enterprise Linux 6 | php-0:5.3.3-50.el6_10 | RHSA-2019:3287 |
| Red Hat Enterprise Linux 7 | php-0:5.4.16-46.1.el7_7 | RHSA-2019:3286 |
| Red Hat Enterprise Linux 7.6 Extended Update Support | php-0:5.4.16-46.1.el7_6 | RHSA-2020:2835 |
| Red Hat Enterprise Linux 8 | php:7.2-8010020191030112723.dcfb48bd | RHSA-2019:3735 |
| Red Hat Enterprise Linux 8 | php:7.3-8010020191030161321.dcfb48bd | RHSA-2019:3736 |
| Red Hat Enterprise Linux 8.0 Update Services for SAP Solutions | php:7.2-8000020191113103901.5d58a046 | RHSA-2020:0322 |
| Red Hat Software Collections for Red Hat Enterprise Linux 6 | rh-php70-php-0:7.0.27-2.el6 | RHSA-2019:3724 |
| Red Hat Software Collections for Red Hat Enterprise Linux 7 | rh-php72-php-0:7.2.24-1.el7 | RHSA-2019:3299 |
Frequently Asked Questions
Is CVE-2019-11043 in your dependencies?
Find it across , including transitive dependencies.