OpenAI ships a Codex skill that checks sites for php2shell

On October 21, OpenAI released php2shell-checker, an open-source tool that checks whether a site or server runs a PHP build exposed to php2shell. That is the pair of PHP flaws found under its Patch the Planet initiative. The tool comes as two Codex skills in an OpenAI repository on GitHub, and asking Codex $skill-installer install both skills from https://github.com/openai/php2shell-checker installs both.
The flaws are CVE-2026-109618, remote code execution through out-of-memory corruption during request cleanup, and CVE-2026-109619, where request-owned global state goes stale and a later request on the same worker reuses it. The fixed releases are PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35.
Use phpcheck-url when all you have is an address ($phpcheck-url check https://example.com) and phpcheck-server when you can get onto the machine. You can also skip Codex and run the script with Node: node phpcheck.js "https://example.com" for a site, node phpcheck.js --local for the PHP binary on the command line.
For a URL, the checker sends a HEAD request and falls back to GET only if HEAD returns 405 or 501. It reads the version from the X-Powered-By and Server headers. It does not follow redirects or look at response bodies. Locally it parses php -v. Results map to exit codes, so the tool fits into a script: OK is 0, VULNERABLE is 1, UNKNOWN is 3, and invalid arguments return 2. --json gives machine-readable output with a patch_status field. UNKNOWN covers a missing version or response, a version or branch the tool doesn’t recognize, and newer prerelease builds. OpenAI warns that UNKNOWN does not mean the target is patched.
An OK is only a version comparison: the patch number sits above the cutoff embedded for that branch, on the assumption that later stable patches carry the fix. The tool does not check the fix itself, and headers can be hidden or changed. Backports are the other gap. PHP 8.1 and older are out of support, and PHP has published minimal source backports for 7.4, 8.0 and 8.1. Distributions and LTS vendors may ship patched packages too. Those backports may leave the upstream version number unchanged, so a server that has been fixed can still report the version of an unpatched one.
PHP has also published stopgaps, among them disabling session.upload_progress and restarting workers, and says they are not complete fixes. Whatever result the checker returns, OpenAI’s instruction is the same: compare the version against the official PHP security release.
Up next
GPT-Rosalind cut months of gene analysis to 32 minutes
In 32 minutes, thousands of GPT-Rosalind agents worked through data from millions of mouse brain cells, a job the team put at months to a year by hand. Have you ever split a big analysis across many parallel agents instead of one?
Related stories
- OpenAI models helped find critical flaws in PHP
- libheif bugs reached OpenAI repos and GitHub Enterprise
- OpenAI agents tried a RubyGems bug found only in July
- Patch the kernel bug OpenAI’s agents turned into root
- Verifying OpenAI’s signed agent traffic from Python
- OpenAI keeps Codex cache forever, API cache gets 12 hours
Comments
No comments yet. Be the first.
Join the conversation
Sign in to leave a comment. It appears after moderation.

