PHP Vulnerability Scanner for PHP2Shell, Core Versions and Web Apps

Check your site for PHP2Shell (CVE-2026-109618 and CVE-2026-109619), unsupported PHP versions and known flaws in the apps built on PHP.

A php vulnerability scanner tests a live site for known flaws in PHP itself, in the applications built on it and in nearby files. On 21 October 2026 the PHP project patched PHP2Shell, two critical remote code execution flaws tracked as CVE-2026-109618 and CVE-2026-109619. ScanTitan checks the exposure a remote scan can see: your PHP version when the server reveals it, known CVEs in your CMS and plugins, and exposed files. This page shows what the scan covers, where it stops and how to check your version today.

PHP2Shell version check
CVE-2026-109618 · 109619
Is your PHP version fixed?
Type the full version from your hosting panel or from php -v, then compare it with the fixed releases published on 21 October 2026.
Waiting for a version
Pick a branch above or type your full version, such as 8.3.35.
Patch level
8.5.12fixed
8.4.27fixed
8.3.36fixed
8.2.35fixed
Source: php.net security advisory, 21 October 2026. This compares the version number only. Distribution packages can carry the fix without changing the number, so ask your host or vendor. The check runs in your browser and sends nothing anywhere.

PHP2Shell: CVE-2026-109618 and CVE-2026-109619 patched on 21 October 2026

Fixed in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35

PHP 8.2 reaches end of life on 31 December 2026

PHP 8.1 and older get no official fix, only source backports

What a PHP vulnerability scanner checks on a live site

A PHP vulnerability scanner works in one of two ways. A remote scanner, called DAST (Dynamic Application Security Testing), sends requests to your running site and studies the responses, with no access to your source code. A code scanner, called SAST (Static Application Security Testing), reads the source files for dangerous patterns. Snyk Code and Checkmarx read code, while Intruder, Invicti and ScanTitan test the running site. Choose by the question you need answered. If you ask whether your live site exposes a known flaw today, run a remote scan. If you ask whether your developers wrote an injectable query, read the code. A two-person team usually needs the remote scan first, because it shows what attackers see.

NVD CVSS 3.1 score for both PHP2Shell flaws. Neither needs a login.
1
until PHP 8.2 reaches end of life on 31 December 2026, per php.net
1 days
8.5.12, 8.4.27, 8.3.36 and 8.2.35 carry the official fix
1 fixed branches
CVSS 4.0 score the PHP security team gives both flaws
1

PHP2Shell: CVE-2026-109618 and CVE-2026-109619

What the two flaws are

PHP2Shell is the name researchers use for two critical flaws in PHP core, both patched on 21 October 2026.

CVE-2026-109618
Out-of-memory corruption

CVE-2026-109618 is an out-of-memory corruption bug: when PHP runs out of memory it aborts the request, and some code paths leave request memory uninitialized before shutdown code reads it.

CVE-2026-109619
Stale request state

CVE-2026-109619 is a stale state bug: request data survives after its memory is freed, so a later request on the same worker reuses it.

9.8
NVD score, CVSS 3.1
9.2
PHP security team, CVSS 4.0
None
login needed

NVD scores both 9.8 on CVSS 3.1, and the PHP security team scores both 9.2 on CVSS 4.0. Neither needs a login. An attacker sends ordinary web requests, which is why every CVE here gets treated as urgent.

Who is affected and how to check your PHP version

PHP says every installation that serves web requests is at risk, including PHP-FPM, Apache with its PHP module, php-cgi, FrankenPHP and LiteSpeed, with the highest risk on the Apache module. Confirm your version before you change anything.

PHP-FPMApache PHP module · highest riskphp-cgiFrankenPHPLiteSpeed
  1. 1

    Read the response headers with curl -I https://yourdomain.com and look for the X-Powered-By line. Many hosts hide it.

    curl -I https://yourdomain.com
  2. 2

    Open MultiPHP Manager in cPanel or PHP Settings in Plesk to see the version set for each domain.

  3. 3

    Check Tools, Site Health, Info, Server in WordPress.

  4. 4

    Run php -v and php-fpm -v on a server you control, and remember the command line can use a different version than the one serving your site.

    php -v
  5. 5

    Ask your host in writing which PHP build serves your site if the first four steps fail.

How to fix it

Update PHP
8.5.128.4.278.3.368.2.35

Update to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35, or to your distribution's patched package, then restart every PHP worker.

On PHP 8.1 and older

PHP 8.1 and older no longer receive updates from the PHP project. The PHP security team published minimal source backports for 7.4, 8.0 and 8.1, and some Linux distributions and LTS vendors backport fixes, so contact your host or vendor.

Workarounds

PHP's own advisory lists configuration workarounds and states that they do not make an installation safe.

Plugins and themes

Our stance: a plugin or theme update cannot fix either flaw, because the bug sits in the PHP engine.

Our PHP2Shell guide covers fixes by server type and how to check whether someone already used the flaw.

Exploitation status on 22 October 2026

Reports conflict, so read the dates.

17 October

Amazon's honeypot network recorded an exploitation attempt on 17 October, four days before disclosure.

Conflicting reports

watchTowr, Cloudflare and Patchstack report attempts or incidents, while the PHP project and CISA reported no exploitation at publication.

Catalogs

The CISA KEV (Known Exploited Vulnerabilities) catalog, version 2026.10.21, listed neither CVE in the part we read, and FIRST publishes no EPSS (Exploit Prediction Scoring System) score for them yet. The CISA record inside NVD lists exploitation as none.

Our checks

We re-check all three sources on publishing day.

Patch anyway: a 9.8 score, no login and a public advisory are enough.
PHP2Shell status
Checked 22 October 2026
CVSS score
9.8
NVD, CVSS 3.1. PHP security team: 9.2 on CVSS 4.0.
Login needed
None
Network attack, ordinary web requests.
CISA KEV
Not listed
Catalog version 2026.10.21.
FIRST EPSS
No score yet
The API returned no data on 22 October 2026.
Exploitation reports conflict. Amazon recorded an attempt on 17 October, four days before disclosure. watchTowr, Cloudflare and Patchstack report attempts or incidents, while the PHP project and CISA reported none at publication. Patch anyway.

How to scan a PHP site for vulnerabilities

Scan from outside first, because that is the view attackers have. You need a domain you own or hold written permission to test.

  1. Confirm that you own the domain or hold written permission to scan it.
  2. Check your PHP version with the steps above, because a remote scanner reports it only when the server reveals it.
  3. Create a ScanTitan account and add your domain to the website vulnerability scanner.
  4. Run the scan and read findings in the order ScanTitan ranks them by CVSS, EPSS and CISA KEV status.
  5. Open the HTTP evidence on each finding and confirm it before you change anything.
  6. Patch the PHP version, CMS core, plugin or exposed file, then scan again to prove the fix closed it.
  7. Repeat the scan after every update, because new CVEs publish daily.

What ScanTitan checks on a PHP site

Five checks cover the PHP version, the CMS layer, exposed files, logged-in flows and the order you fix things in.

PHP version and end of life exposure

A PHP engine the PHP project no longer patches is a standing risk, and PHP2Shell shows why: PHP 8.1 and older received no official fix. ScanTitan paid plans include an end of life check that flags unsupported PHP versions, and the free Software End of Life Checker does the same for a version you paste in. The checker runs in your browser and sends nothing anywhere. One limit applies: a remote scan reads the PHP version only when the server reveals it through headers, error pages or framework signals. Confirm the version in your hosting panel, then compare it with the table below. ScanTitan also detects PHP2Shell exposure on the sites it scans, so a vulnerable release shows up as a finding.

Known CVEs in your CMS, plugins and libraries

Most PHP sites run a CMS, and most breaches start in a plugin, not in the engine. ScanTitan detects component versions and matches them to known advisories and CVE records, using the same engine that runs more than 15,000 CVE-mapped checks across the OWASP Top 10. Use the WordPress, Joomla or Drupal scanner pages when you run one of those systems. Each finding names the component, the detected version, the advisory and the fixed release, so your developer knows what to update without guessing. Fixing these findings means updating the component, not the PHP engine, and a re-scan confirms the result. ScanTitan also fingerprints Laravel and Symfony applications and checks Composer dependencies, so a vulnerable framework or package shows up with its advisory.

Exposed files, backups and configuration

Attackers do not need a PHP engine flaw when a backup sits in the web root. ScanTitan checks for readable .env files, backup archives, configuration files and directory listings, along with missing security headers and weak SSL and TLS settings. A PHP file inside a media folder deserves special attention, because it often marks a web shell, a single file that gives an attacker remote control. ScanTitan malware scanning looks for PHP backdoors and obfuscated scripts, and each finding carries HTTP evidence plus a step by step fix. Remove the file, move backups out of the public folder and scan again to confirm the exposure is gone.

Injection, XSS and upload flaws behind a login

Broken access control tops the OWASP Top 10, and it mostly shows up behind a login. ScanTitan runs authenticated DAST scans that sign in and test endpoints, including admin panels and payment flows, for SQL injection, cross-site scripting (XSS), broken access control and known CVEs. Tests that stop at the login page only see your marketing pages. Run the authenticated scan with a test account at the lowest role a real user holds, so results match what a stolen password would reach. When your PHP application exposes an API or a JavaScript front end, use the API and JavaScript scanner pages to see how those layers are tested.

Prioritization with CVSS, EPSS and KEV

CVSS alone is a poor ordering signal. A CVSS 9.8 flaw with no known exploitation can wait a day behind a CVSS 7.5 flaw that attackers already use. ScanTitan ranks findings with CVSS, EPSS and CISA KEV status, so a two-person team patches the exploited few first. You can test the logic for free: paste CVE IDs into the CVE Priority Checker and read the verdict, Fix now, Fix soon or Fix later, with the reason. The tool treats any KEV listing as Fix now, and it sends CVE IDs only to public data sources.

PHP vulnerability types and their CWE IDs

MITRE and CISA publish the CWE Top 25 (Common Weakness Enumeration) each year, and several PHP weakness classes sit near the top of the 2025 list. The table maps each class to its CWE ID and to our guide, so you can read how the flaw works before a scan finds it. PHP2Shell belongs to CWE-416, use after free, which ranks seventh. Rank shows how often a weakness appears in real vulnerabilities, not how dangerous your own site is. A scan tells you which of these classes your site actually exposes. Deserialization and file inclusion flaws appear mostly in custom code and older plugins, so check those first when your own developer wrote the application.

PHP vulnerability typeCWE ID and 2025 Top 25 rankWhat an attacker getsRead more
Memory corruption RCE (PHP2Shell)CWE-416 rank 7Code execution on the serverPHP2Shell guide
OS command injectionCWE-78 rank 9Shell commands on the hostCommand injection
Code injectionCWE-94 rank 10Attacker PHP runs in your appObfuscated PHP malware
Unrestricted file uploadCWE-434 rank 12A web shell in your uploads folderFile upload flaws
Deserialization of untrusted dataCWE-502 rank 15Object injection and code executionCovered by authenticated scans
SQL injectionCWE-89 rank 2Database contents and admin accessTest for SQL injection
Cross-site scriptingCWE-79 rank 1Script running in your visitors' browsersWhat is XSS
Path traversalCWE-22 rank 6Files outside the web rootCovered by exposed file checks
File inclusionCWE-98Remote or local code loaded by includeCovered by authenticated scans

Supported and end of life PHP versions

The PHP project supports each branch for four years: two of active support and two of security fixes only. The table shows the status on php.net as of 22 October 2026. PHP 8.2 reaches end of life on 31 December 2026, which is 70 days after this update. After that date a new flaw in 8.2 gets no official fix, and your only choices are an upgrade or a paid vendor backport. Move to 8.3 or newer now if you can. Paste your versions into the Software End of Life Checker to see which line of your stack is already unsupported.

PHP branchActive support untilSecurity support untilPHP2Shell fix
8.531 Dec 202731 Dec 20298.5.12
8.431 Dec 202631 Dec 20288.4.27
8.331 Dec 2025 (ended)31 Dec 20278.3.36
8.231 Dec 2024 (ended)31 Dec 20268.2.35
8.1End of life 31 Dec 2025NoneNo official release, source backport only
8.0End of life 26 Nov 2023NoneNo official release, source backport only
7.4End of life 28 Nov 2022NoneNo official release, source backport only
7.3 and olderEnd of life 6 Dec 2021 and earlierNoneNo fix from the PHP project

What a ScanTitan PHP scan report holds

Every finding in the report is built for two readers: the developer who applies the fix and the owner who has to explain the risk. We do not publish invented findings on this page. Each entry holds the same six parts.

Name the component
The affected component, file or header, with the exact version ScanTitan detected.
Cite the advisory
The CVE ID, CVSS score, EPSS value and CISA KEV status that apply.
Attach the evidence
The HTTP request and response that prove the finding, so you verify it before you change anything.
Rank the finding
Placed against every other issue on the site, so the exploited few come first.
Explain the fix
Steps such as the fixed release number or the file to remove.
Record the re-scan
The result that proves the fix worked.
Honest limits

Where a scan stops

A remote scan sees what your server shows the internet, and no more. These limits apply to every external PHP scanner, ours included.

  • Expect the PHP version to stay hidden when your host strips headers. Confirm it in your hosting panel.
  • Treat a remote scan as a test of the running site, not a code review. It cannot read your source files.
  • Send a suspicious file to the malware code analyzer, which decodes PHP and explains what it does.
  • Plan a fix with your host or developer, because a scan reports problems and does not patch your server.
  • Use the network, IP and cloud scanners for the servers and services beneath PHP.
  • Follow the hacked site checklist if you suspect someone already used a flaw.
Security and privacy

How ScanTitan handles your site and scan data

NetherlandsISO 27001 teamGDPRDPA on request

ScanTitan is registered in the Netherlands and operated by an ISO 27001-certified security team, with GDPR-compliant data handling and a data processing agreement on request. Scan findings carry HTTP evidence, so you see exactly what the scanner saw. The free tools work differently from the scanner: the Software End of Life Checker runs in your browser and sends nothing anywhere, and the CVE Priority Checker sends only CVE IDs to public data sources, never to ScanTitan. Create an account, add a domain you own, and review results in one dashboard without installing anything on your server. If your company needs a signed agreement before it scans, ask for the DPA first.

For agencies

For agencies and site teams

40
client sites
40
PHP versions to confirm
1
deadline each from PHP2Shell

An agency that hosts forty client sites has forty PHP versions to confirm, and PHP2Shell gives each one a deadline. Enterprise platforms price this work for security teams. Small teams need the same answer for less money: which sites run an unsupported or unpatched version, and which findings to fix first. The ScanTitan pricing page lists the Consultant plan per concurrent website and shows white-label reports among the paid features, so you can send clients a report under your own name. Start with the PHP version of every client site, patch the exposed ones this week, and schedule repeat scans for the rest. See the pricing page for plan details.

ScanTitan pricing for PHP scanning

ScanTitan bills yearly, and the plan you need depends on one question: do you want vulnerability scanning? The Free plan covers malware scanning, basic exposure scanning, basic malware monitoring and basic uptime monitoring, and it does not include vulnerability scanning. Vulnerability scanning, which finds known CVEs in your CMS and plugins, starts on Professional at $119 per year, about $9.92 a month. Business at $155 per year adds 360° scanning, network exposure monitoring, vulnerability and exploit intelligence and API access. Agencies pick Consultant at $486 per year per concurrent website, with unlimited scans and white-labeled PDF reports. Enterprise pricing is custom.

Free
$0 /yr
Free forever, no card required
  • Malware scanning
  • Basic exposure scanning
  • Basic malware monitoring
  • Basic uptime monitoring
Sign up free
Professional
$119 /yr
About $9.92 a month, billed annually
  • Advanced vulnerability scanning
  • Advanced exposure scanning
  • Advanced malware monitoring
  • Uptime monitoring
  • Vulnerability monitoring
  • Exposure monitoring
See plan
MOST POPULAR
Business
$155 /yr
About $12.92 a month, billed annually
  • 360° vulnerability scanning
  • 360° exposure scanning
  • Network exposure monitoring
  • Brand monitoring
  • Vulnerability intelligence
  • Exploit intelligence
  • API access
See plan
Consultant
$486 /yr
Price per concurrent website
  • OWASP Top 10 scanning
  • Unlimited scans
  • Unlimited add and delete websites
  • White-labeled PDF reports
  • 360° vulnerability and exposure scanning
  • API access
See plan
Enterprise
Custom
Custom pricing for your team
  • 360° vulnerability and exposure scanning
  • Threat intelligence
  • SLA and dedicated support
  • Custom scan limits
  • White-label reporting available
Contact us

Prices come from the ScanTitan pricing page, checked on 22 October 2026. Check that page for the current plan details before you order.

Latest PHP scanner updates

The log below shows what changed on this page and which facts we checked, so you can judge how fresh it is.

  • Added a PHP2Shell section for CVE-2026-109618 and CVE-2026-109619 on 22 October 2026, with a version check, fixed releases and a dated exploitation status.
  • Verified the fixed versions, supported branches and end of life dates against php.net on 22 October 2026.
  • Checked NVD scores, the CISA KEV catalog version 2026.10.21 and the FIRST EPSS API on the same day.
  • Review the status box again after the next CISA KEV update, the next PHP security release or any new exploitation report, and update the date when we do.

ScanTitan vs Intruder, Invicti, Pentest-Tools and ZeroThreat

All four competitors are legitimate tools, and most are built for AppSec teams. The table records only what each vendor’s own pages show, reviewed on 22 October 2026. Not documented means we found no description on the page we read, and it is not a claim that the tool cannot do it. Pentest-Tools offers a free PHP2Shell scanner page, so credit where it is due. Our angle differs: we explain the version check, the end of life dates and the fix for a site owner or an agency, and we show how findings are ranked.

FeatureScanTitanIntruderInvictiPentest-ToolsZeroThreat
Entry pointFree plan and two free toolsFree trialDemo onlyFree light scanFree trial
PHP2Shell page or toolPHP2Shell detection, guide and version check on this pageNot on the PHP pageNot on the PHP pageFree PHP2Shell scannerNot on the PHP page
Authenticated scanningYesYesNot documentedYes, behind a 7-day trialYes
CVSS, EPSS and KEV prioritizationYesNot documentedNot documentedNot documentedNot documented
End of life PHP version checkPaid plans and a free checkerNot documentedNot documentedNot documentedNot documented
Prices shownOn the pricing pageNot on the PHP pageNot on the PHP pageNot documentedNot on the PHP page

Sources reviewed 22 October 2026: the PHP vulnerability scanner pages of Intruder, Invicti and ZeroThreat, and the free PHP2Shell scanner page of Pentest-Tools. Spotted something out of date? Tell us and we will correct it.

Common questions about PHP vulnerability scanning

Straight answers about PHP2Shell, PHP versions and what a remote scan can see.

PHP2Shell is the name researchers use for two critical flaws in PHP core, CVE-2026-109618 and CVE-2026-109619, patched on 21 October 2026 in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35. Both let an unauthenticated attacker reach remote code execution through ordinary web requests, and the PHP security team scores both 9.2 on CVSS 4.0. The first corrupts memory after an out-of-memory error, and the second reuses stale request state. PHP 8.1 and older get no official release, only source backports. Our PHP2Shell guide explains how to check your version, apply the fix and look for signs that someone already used it.

If your site runs a PHP version below 8.5.12, 8.4.27, 8.3.36 or 8.2.35 on a branch that is still supported, treat it as vulnerable until you update. If you run PHP 8.1 or older, the PHP project issues no official fix, so only a vendor backport or an upgrade protects you. The advisories list affected versions below the fixed releases and do not state a range for older branches, so we make no claim beyond that. Read your version from a header, your hosting panel or php -v, then compare it with the table above. Your host may also patch the package without changing the version string.

Only when the server reveals it. A remote scanner reads the version from response headers, error pages and framework signals, and many hosts hide all three on purpose. When the version stays hidden, a scan cannot tell you whether you run a fixed release, and any tool that claims otherwise is guessing. Confirm the version in your hosting panel or ask your host in writing which PHP build serves your site. ScanTitan paid plans include an end of life check that flags unsupported versions when they are visible, and the free Software End of Life Checker works from a version you paste in.

No. PHP's own advisory lists configuration workarounds and says they do not make an installation safe, and it says updating is the only safe choice. PHP 7.4, 8.0 and 8.1 are end of life, so the project ships no official release for them, only minimal source backports for people who build PHP themselves. Some Linux distributions and long term support vendors backport the fix into their own packages, so ask your vendor for the exact patched package version. If neither option exists for your stack, plan an upgrade to a supported branch and treat the site as exposed until then.

The free plan includes malware scanning, basic exposure scanning, basic malware monitoring and basic uptime monitoring. It does not include vulnerability scanning, which starts on the paid plans, so we do not promise a free PHP vulnerability scan. Two free tools help with PHP2Shell today and need no account: the Software End of Life Checker, which flags unsupported PHP versions from a list you paste in, and the CVE Priority Checker, which ranks up to 25 CVEs by CVSS, EPSS and KEV status. Check the pricing page for the current plan details before you sign up.

No. Both flaws sit in the PHP engine, not in WordPress core, a theme or a plugin, so a plugin update cannot close them. Updating your CMS still matters, because most site compromises start in outdated plugins, but the PHP2Shell fix is a PHP update to 8.5.12, 8.4.27, 8.3.36 or 8.2.35, or to your host's patched package. Many managed WordPress hosts patch PHP for you, so ask your host whether it already did and which version your site runs now. Then scan the site to catch the plugin and exposure issues that a patched engine leaves in place.

Your PHP version decides whether PHP2Shell applies to you

Attackers did not wait for the patch: Amazon recorded an exploitation attempt four days before disclosure. You do not need a security team to answer the first question. Read your PHP version, compare it with the fixed releases, and scan the site for the weaknesses that sit on top of PHP, such as outdated plugins, exposed backups and missing security headers. ScanTitan ranks every finding by CVSS, EPSS and CISA KEV status and attaches HTTP evidence, so you patch what attackers use first. Start with a scan today, or talk to our team about covering every client site you manage.

More vulnerability scanners

One scanning engine, one report, one set of CVSS, EPSS and CISA KEV priorities. Pick the scanner that matches what you run.