cd /news/developer-tools/php2shell-checker · home › topics › developer-tools › article
[ARTICLE · art-154731] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Php2shell-Checker

OpenAI released php2shell-checker, a Node.js command-line tool that checks whether a website or local PHP installation runs a version at or below embedded October 20, 2026 security cutoffs, without sending exploit requests. The tool reads the X-Powered-By and Server headers via HEAD requests (falling back to GET on 405 or 501) or runs php -v locally, returning exit code 0 for OK, 1 for VULNERABLE, 3 for UNKNOWN and 2 for invalid arguments, with --json output for machine-readable results. OpenAI states it is not accepting external code contributions, and the project is licensed under Apache License 2.0.

read2 min views2 publishedOct 21, 2026
Php2shell-Checker
Image: Michielbdejong (auto-discovered)

Check a website or local PHP version without exploit requests. Uses Node.js. No packages to install.

To install both skills, ask Codex:

$skill-installer install both skills from https://github.com/openai/php2shell-checker

Use phpcheck-server when you have server access, or phpcheck-url when you only have a URL:

$phpcheck-server check the PHP version serving my site
$phpcheck-url check example.com

Check a website:

node phpcheck.js "https://example.com"

Check the local CLI PHP

node phpcheck.js --local
Result Exit code Meaning
OK 0 Stable PHP patch version above the embedded cutoff for a listed major/minor branch.
VULNERABLE 1 PHP version at or below the embedded cutoff for that branch.
UNKNOWN 3 No PHP version or response, an unrecognized version/branch, or a newer prerelease build.

Use --json for machine-readable output (patch_status is ok, vulnerable, or unknown). Invalid arguments exit with code 2.

node --test phpcheck.test.js

Tests run the CLI against local HTTP servers simulating PHP response headers; no PHP installation or external website is required.

The checker only evaluates versions exposed in HTTP response headers or by php -v. It reads X-Powered-By and Server, sends HEAD, and falls back to GET only when HEAD returns 405 or 501. It does not follow redirects or inspect response bodies. Missing or hidden PHP headers return UNKNOWN.

OK is a version comparison against the embedded October 20, 2026 cutoffs, assuming subsequent stable patches in each listed branch contain the fix; it does not independently verify a security fix. Check the cutoffs against the official PHP security release when its affected and fixed versions are published. Headers can be hidden or changed, and distribution backports may not change the upstream version. UNKNOWN does not mean the target is patched.

OpenAI is not accepting external code contributions to this project. Bug reports and non-code feedback are welcome through GitHub issues. See CONTRIBUTING.md.

This project is licensed under the Apache License 2.0.

── more in #developer-tools 4 stories · sorted by recency
── more on @openai 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/php2shell-checker] indexed:0 read:2min 2026-10-21 · —