跪拜 Guibai
← All articles
PHP · AIGC · AI Programming

PHP2Shell Exploits Hit the Interpreter Core AI Formal Proofs Assume Away

By ServBay ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

A third of the world's PHP deployments now face a critical, remotely exploitable flaw with no official patch, so legacy operations teams must rely on backports or temporary shutdowns. The incident also resets expectations for AI-assisted development: proving code logic doesn't prove the runtime it runs on.

Summary

Two critical flaws in the PHP interpreter's C-language kernel, CVE-2026-109618 and CVE-2026-109619, are already causing real damage: European government sites went offline, Dutch digital identity systems shut down, and Japanese platforms posted maintenance notices. Both carry a CVSS score of 9.2, and under default configurations an unauthenticated request can trigger the underlying exception and execute code on the server. Because the defect lives in the interpreter rather than application logic, even a site that prints Hello World is exposed.

Independent researcher Ryan Austin found the vulnerabilities in early August and traced the trail back to a 2004 memory-limit issue and a 2020 problem report. His retrospective emphasizes that no special AI tool made the discovery; AI's actual role was compressing the exploit verification cycle from weeks to days. The timing collided with OpenAI and Anthropic announcements about AI-driven vulnerability discovery and formal proof, and the contrast frames the engineering boundary: formal verification proves application logic against an idealized runtime, but says nothing about the C implementation underneath.

Official patches only cover PHP 8.2 through 8.5. With roughly 65% of PHP sites on 8.x, 27% on 7.x, and 7% on 5.x, about a third of the PHP web has no official fix. ServBay responded by backporting patches to EOL branches including 7.x and 5.6, and its per-project PHP version binding lets legacy sites stay on patched older interpreters while new projects run current versions.

Takeaways
— CVE-2026-109618 and CVE-2026-109619, collectively called PHP2Shell, are rated 9.2 on the CVSS scale and allow unauthenticated remote code execution under default PHP configurations.
— Independent researcher Ryan Austin found the vulnerabilities in early August and posted a hash clue; his write-up traces the key evidence to a 2004 memory-limit defect and a 2020 issue report.
— AI did not drive the original discovery; it accelerated turning the theoretical flaw into a working verification script from weeks to days.
— Both flaws sit in the C implementation of the PHP interpreter kernel, so application-layer code, including a site that only prints Hello World, cannot block the exploit.
— CVE-2026-109618 stems from longjmp-based memory exhaustion handling that later cleanup routines treat uninitialized data as valid; CVE-2026-109619 involves residue from a released variable scope being reused by later requests.
— Malicious payloads affect the interpreter during Web server and FastCGI request parsing, before the application script is read or executed.
— W3Techs data puts PHP at about 69% of sites with a known server-side language; among PHP sites, 65% run 8.x, 27% run 7.x, and 7% run 5.x.
— Official patches for the two vulnerabilities cover only PHP 8.2, 8.3, 8.4, and 8.5, leaving roughly one-third of existing PHP sites without an official fix.
— ServBay backported patches to EOL PHP branches including 7.x and 5.6, and its per-project PHP version binding isolates different sites on different interpreter versions.
Conclusions

The gap between Anthropic's formal-proof results and this incident is not about proof quality; it is about what formal proof assumes away. A verified function still depends on an interpreter, OS, and hardware that are not part of the proof.

The public narrative around AI vulnerability discovery keeps crediting frontier models, but the actual sequence here gives the credit to human memory of old bug reports. LLMs made the exploit faster to validate, which is a real gain, not the same as finding the bug.

Backporting security patches to unsupported branches is becoming a normal operational requirement, not a temporary workaround. The upgrade-only advice ignores the cost and risk of rewriting legacy systems under incident pressure.

The exploit timeline compresses the defender's window: once the patch is public, attackers can reverse it faster, so teams without a patching path face a race where even taking the server offline may be the rational move.

Concepts & terms
PHP2Shell
The name security researchers gave this pair of PHP vulnerabilities because an unauthenticated request can end in shell-level code execution on the server.
CVSS 9.2
A score on the 0-10 Common Vulnerability Scoring System; 9.2 is critical and indicates remote exploitation with low complexity and severe impact.
FastCGI and PHP-FPM
In a standard PHP deployment, the web server forwards requests to PHP-FPM over FastCGI; PHP-FPM runs the PHP interpreter, which is implemented in C.
longjmp
A C control-flow function that jumps to a saved execution point rather than returning; PHP uses it to abort request processing on memory exhaustion, and the flaw lets cleanup routines run on uninitialized data.
EOL (end-of-life)
A software release that no longer receives official security patches; PHP 5.x and 7.x are past end-of-life, so they do not get official fixes for new vulnerabilities.
Backport
Taking a security fix from a maintained release and applying it to an older, unsupported release so legacy systems can stay patched without upgrading major versions.
Formal proof
A mathematical demonstration that a piece of code satisfies a specification; it verifies logic, but assumes the underlying interpreter, OS, and hardware behave correctly.
From the discussion
Featured comments
智测星球

Separate acceptance of application-layer proof, runtime version, and patch status — that boundary is well drawn. Since upgrading the interpreter changes the behavior of existing systems, beyond verifying that the vulnerability no longer reproduces, evidence of key business regression and rollback should be kept as well.

See top comments, translated →
Source: juejin.cn ↗ Google Translate ↗ Backup ↗