TL;DR: 2,220,231 PHP service records across 224 countries showed 72.7% on unsupported branches, Flare reports from internet-scan data. Version banners alone cannot tell operators which hosts are genuinely vulnerable, so patch verification has to rely on package-level evidence and vendor advisories.
Editorial analysis by NHI Mgmt Group, based on content published by Flare: “PHP2Shell Exposure: 73% of 2.2 Million Version-Disclosing PHP Services Run Unsupported Branches”.
By the numbers:
- The 18 most common exact version strings account for 46.9% of all records.
Key questions
Q: Why can a PHP version banner be misleading about patch state?
A: A PHP version banner can reflect the web server, reverse proxy, or application configuration rather than the live interpreter version.
Q: How do security teams inventory PHP on management interfaces and appliances?
A: Security teams inventory PHP by scanning internet-exposed management interfaces and appliance services, then confirming the runtime with host checks, package data, or configuration files.
Q: What should teams do first when PHP version banners show an old branch?
A: Teams should verify the installed PHP release from package-manager evidence or host inventory, then compare it with the banner before assuming the exposed version is real.
Practitioner guidance
- Map every PHP runtime in the estate Include internet-facing hosts, management interfaces, appliances, and services on nonstandard ports, then tie each one to an owner and support path.
- Verify package-level patch state Check distribution package revisions, vendor advisories, and backport status before treating a version banner as evidence of risk or safety.
- Use version banners only as discovery leads Correlate exposed headers with internal inventory, scan freshness, and maintenance records so the banner becomes a triage input rather than a decision point.
Bottom line: Unsupported PHP branches dominate the observed internet-facing estate, but the banner data alone cannot tell operators which hosts are truly unpatched.
Glossary terms: X-Powered-By header, Expose_php, Internet-facing service record, Appliance firmware lineage
Explore further
View Full Forum → | NHI Foundation Course → | Our Services → | Read the full analysis →
Version banners create an exposure signal, not a remediation signal: the main governance error is treating a disclosed PHP version as proof of patch status. In practice, the banner only shows what the service advertises, while actual protection may depend on downstream packaging, appliance firmware, or vendor support. That makes version-based comfort false unless it is paired with package evidence and ownership of the underlying runtime. Practitioners should use banner data to trigger verification, not to close the issue.
A question worth separating out:
Q: What happens when unsupported PHP runs on exposed administrative services?
A: Unsupported PHP on exposed administrative services leaves a reachable attack surface with no vendor fixes, so any unpatched flaw becomes easier to exploit for initial access, command execution, or data theft. The usual controls are upgrade, isolate the service, restrict network reachability, and remove PHP from interfaces that do not need it.
👉 Read our full editorial: Unsupported PHP banners reveal exposure, not patch status