PHP2Shell Vulnerability Under Active Exploitation: Are You Affected, and What Should You Do Today?

Published On : 2026-11-04
Share :
PHP2Shell Vulnerability Under Active Exploitation: Are You Affected, and What Should You Do Today?

PHP2Shell Vulnerability Under Active Exploitation: Are You Affected, and What Should You Do Today?

October 2026: The latest critical PHP vulnerability, leaked on 20 October 2026, is being used against real targets.

CYFIRMA has obtained the original target list drawn up by a group of Korean-speaking operators, assessed with high confidence as DPRK state-nexus operators within the Lazarus Group ecosystem. The list names 216 internet-facing servers across 10 countries, spanning government, banking, telecommunications and infrastructure providers. That list is captured and in CYFIRMA’s hands; it is not a claim.

Between 25 and 29 October, the same operators reported exploiting two critical PHP flaws, CVE-2026-109618 and CVE-2026-109619 (both CVSS v4.0 9.2), and claimed a wider scope of 581 hosts. The 581 figure, and the compromise of any individual host, are operator claims that CYFIRMA has not independently verified.

The action is the same either way: patch to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35 (or a verified vendor backport) and restart every PHP worker today.

By CYFIRMA Research | Published November 2026 | TLP: CLEAR | Reference CYF-FS-2026-1029-PHP2SHELL-DPRK

Status: Severity: critical | Confidence: high (actor); campaign activity confirmed | TLP: CLEAR | Latest advisory: version 4, 29 October 2026

Update log

  • 29 Oct 2026 (v4): Original 216-host target list captured; 24 more suspected source IPs; attribution raised to high confidence.
  • 24 Oct 2026 (v3): Operators report a 216-host set and 21 compromised scan-node IPs; roughly a third already touched.
  • 23 Oct 2026 (v2): 17 suspected source IPs observed in 8 hours.
  • 22 Oct 2026 (v1): Closed channel identified; pre-attack advisory issued.

Key takeaways

  • The target list is real and captured. CYFIRMA obtained the operators’ original list: 216 hosts in 10 countries, 148 in Asia-Pacific (68.5%), 49 in North America and 19 in the Middle East. The United States and Japan alone make up 44.4%.
  • The 581-host figure is a claim. The operators say they have exploited hosts and widened the set to 581. That is an adversary claim, not independently verified.
  • Updating your CMS does not fix it. The flaws sit in PHP itself. Updating WordPress, Drupal, Magento, or Laravel changes nothing; the fixes are PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35.
  • Patching closes the hole, not a compromise. The operators dropped hosts whose banners advertised fixed versions, so a patched host may fall out of their pool; a backport that keeps the old version string will not, and patching does not remove a web shell already planted.
  • High-confidence DPRK attribution. CYFIRMA assesses the operators as DPRK state-nexus actors in the Lazarus ecosystem, with a financial and espionage mandate.
  • Three things to do now. Patch, restart all workers, and hunt your logs back to 17 October 2026.

What Is the PHP2Shell Vulnerability?

PHP2Shell is the name given to two critical, unauthenticated remote code execution flaws in PHP core, tracked as CVE-2026-109618 and CVE-2026-109619, each rated CVSS v4.0 9.2. Technical details leaked on 20 October 2026, ahead of coordinated disclosure, and the PHP Security Team released fixes on 21 October.

The flaws matter because crafted multipart requests reach PHP’s request handling before any application code runs, so no web application, framework, or plugin can defend against them. Triggering the bugs takes one request; reliable code execution usually needs a follow-up request on the same worker. For the root cause and exploitability analysis of each CVE, see the exploitation and vulnerability detail section of the CYFIRMA First Sight advisory.

Is Your PHP Affected?

Any organisation running internet-facing PHP below the fixed versions is affected, whatever application sits on top of it.

PHP2Shell patch: which PHP versions are fixed?

PHP branch Status Fix
8.5 Supported 8.5.12
8.4 Supported 8.4.27
8.3 Security-only 8.3.36
8.2 Security-only 8.2.35
8.1, 8.0, 7.4 End of life Minimal source backports and vendor builds only; confirm with your vendor
7.3 and older End of life No fix; migrate or isolate

Apache with mod_php (prefork) is the highest-risk setup and should be patched or isolated first.

Is WordPress affected by PHP2Shell?

Yes, if it runs on an unpatched PHP, and updating WordPress will not fix it; the same is true of Drupal, Magento, and Laravel. The flaw lives in the PHP runtime, not in any application or framework built on it. Only patching PHP itself closes the hole.

How do you check your PHP version?

Check the version of the process that actually serves web traffic, meaning Apache or PHP-FPM, rather than only the command-line php -v, which can point to a different install. Include containers, appliances, and PHP bundled inside vendor software, where an old runtime is easy to miss.

What Is Confirmed, What Is Assessed and What Is Not Established?

Not everything in this story carries the same weight. The table below, taken from advisory version 4, separates what CYFIRMA holds as fact from what it assesses and from what remains an operator claim.

Confirmed Assessed Not established
CYFIRMA obtained the operators’ original 216-host target set across 10 countries. The actor is a DPRK state-nexus operator within the Lazarus Group ecosystem (high confidence, raised from moderate in versions 1 to 3). The expansion to 581 hosts is an adversary claim.
Both CVEs are unauthenticated RCE flaws in PHP core, each CVSS v4.0 9.2. Tasking spans financial gain and espionage. Exploitation of any given host is self-reported by the operators.
Low-and-slow weakness checks and initial exploitation attempts are continuing against internet-facing PHP.   Appearing on the list indicates targeting, not compromise.

What Did CYFIRMA Find?

CYFIRMA’s closed-source collection surfaced a Korean-speaking actor on a closed I2P channel on 22 October 2026, two days after the PHP2Shell details leaked and one day after fixes shipped. Rather than scanning the whole internet, the operators were building a curated list of servers worth their time.

By 24 October, they reported a completed set of 216 hosts that still advertised older PHP versions. CYFIRMA has since obtained that original list, which is what makes the targeting, as distinct from the exploitation, a confirmed fact.

From 25 to 29 October, the operators reported first-pass results: exploitation attempts, web shells reported on most of the hosts they rated highest-confidence, and an expansion of the working set to 581 hosts.

Their stated order of priority was government and banks first, then logistics and trading platforms. All of this later activity is self-reported, and CYFIRMA has not verified it host by host.

The channel and the operators’ handles are deliberately not named here; the advisory publishes masked transcripts for analysts in its adversary conversation intelligence section.

How do the operators work?

  • Low and slow. Weakness checks are paced and targeted, with no broad, noisy sweeps that would trip volume-based alerts.
  • Rotating, disposable infrastructure. Checks run from compromised scan nodes that are rotated; addresses that get ‘burned’ are dropped and not reused.
  • They prune the list. Hosts that bannered a fixed PHP version, or sat behind heavy filtering, were removed from the list, so a fix that shows in the banner is visible to them and is likely to take you out of scope for new attempts. Patching does not remove a foothold already gained.
  • Shell first, then secrets. Once a web shell is planted, they move to configuration files, .env files, and database credentials, with financial outcomes pursued first and espionage on government hosts run as a parallel track.

They also adapt public proof-of-concept code rather than writing their own, rank candidate code with a local AI model, and validate it in a lab before use.

How are attackers using AI?

The operators use a local AI model to rank public proof-of-concept repositories and then validate the most promising code in a controlled lab. By their own account, AI is used only for speed in sorting and validating open material; they do not claim to invent new exploitation primitives with it.

CYFIRMA holds this detail with moderate confidence. The practical effect is a shorter gap between public disclosure and a working attack.

Is North Korea behind it?

CYFIRMA now assesses with high confidence that the operators are DPRK state-nexus operators within the Lazarus Group ecosystem, a judgement raised from moderate confidence in versions 1 to 3.

The assessed mandate is unchanged: financial gain, with espionage against government hosts as a parallel objective. That combination, financially motivated intrusion alongside state collection, is consistent with how the Lazarus ecosystem has operated for years. The structured assessment and the links to known adversaries are set out in the assessment section of the advisory. No malware-family or infrastructure overlap with a named Lazarus cluster has yet been confirmed; the assessment would be lowered if collection pointed to an unaffiliated Korean-speaking group or to deliberate false-flagging.

Is Your Organisation on the Target List?

You can check. The 216-host list CYFIRMA captured is published in masked form (as /24 ranges, grouped by country) in advisory version 4, so organisations can compare it against their own address ranges without publishing individual host addresses (see the captured target set section of the advisory). The address ranges are deliberately not reproduced in this blog.

Two cautions apply.

Targeting, not compromise. Appearing on the list indicates targeting, not compromise: it means the operators selected your server because it advertised an older PHP version, not that they got in.

A snapshot of one stage. The list is a snapshot of one planning stage. The operators have since claimed a wider set, so any organisation still advertising older PHP in the prioritised sectors, government and banking above all, should assume it is in scope whether or not it appears on the list.

Which countries and regions are on the list?

Country Hosts
United States 49
Japan 47
India 31
South Korea 30
Thailand 16
United Arab Emirates 14
Indonesia 10
Australia 10
Saudi Arabia 5
Singapore 4
Total 216

By region, Asia-Pacific accounts for 148 hosts (68.5%), North America for 49 (22.7%), and the Middle East for 19 (8.8%). The United States and Japan together hold 96 hosts, or 44.4% of the list. The sectors named in the captured list are government, banking, telecommunications, infrastructure providers, and other sectors; earlier advisory versions also named logistics, aviation, manufacturing, trading, and online transaction platforms.

PHP2Shell Timeline: What Has Happened So Far?

Items marked with an asterisk (*) are adversary claims, not independently verified.

Date (2026) Event
17 October Earliest known exploitation attempt (pre-disclosure)
20 October Technical details leaked ahead of coordinated disclosure
21 October PHP Security Team releases fixes (8.5.12, 8.4.27, 8.3.36, 8.2.35)
22 October Advisory v1: closed channel identified; pre-attack advisory issued
23 October Advisory v2: 17 suspected source IPs observed in 8 hours
24 October Advisory v3: operators report a 216-host target set (since captured by CYFIRMA) and 21 compromised scan-node IPs; roughly a third of the set already touched*
25–29 October Operators report exploitation, web shells opening and an expansion to 581 hosts*
29 October Advisory v4: original 216-host list captured; 24 more suspected source IPs; attribution raised to high confidence

What Should You Do Today?

Patching is the only complete mitigation. Everything else in this section either buys time or helps you find out whether you were already hit.

If you run PHP: six actions

  1. Patch and restart every PHP worker. Move to 8.5.12, 8.4.27, 8.3.36, or 8.2.35 (or newer), or a verified vendor backport. A graceful reload that leaves old worker processes alive leaves the server vulnerable; confirm the running version, not the installed one.
  2. Block or closely monitor the suspected source addresses. The advisory lists 62 suspected source IPs across versions 2 to 4, plus the 16 Version 1 staging addresses, in its suspected source infrastructure section.
  3. Hunt your logs back to 17 October 2026. Search web server, WAF, and proxy logs for multipart request anomalies, unexpected PHP files, PHP worker crashes, and shells or download tools spawned by a PHP process. Because the scanning is low-volume and paced, review extended time windows rather than looking for spikes.
  4. Preserve volatile evidence before patching any suspect host. A restart destroys the in-memory state associated with CVE-2026-109619. Capture memory and logs first.
  5. Isolate what you cannot patch. Take unpatchable internet-facing PHP off the internet or behind strict filtering, Apache mod_php first, and apply the per-CVE temporary controls from the advisory.
  6. Check the captured target list. Compare your address ranges against the masked list in the advisory. Treat any of your PHP hosts in a matching /24 as a confirmed target and act with the highest urgency.

What if you cannot patch yet?

Temporary controls reduce exposure but do not replace patching, and they differ by CVE. Disabling session upload progress, for example, helps against CVE-2026-109619 but does nothing for CVE-2026-109618. The advisory sets out the interim control for each flaw in its temporary controls section.

What if you suspect a compromise?

Do not patch first. Isolate the host from the network without restarting it or PHP, then preserve volatile evidence by capturing memory and logs. Rebuild it from a trusted, patched image rather than cleaning it in place, and rotate every secret the PHP worker could have reached: database credentials, API keys, .env contents, and anything in configuration files.

What should leaders ask their teams?

Each of these should have a one-sentence answer.

  • Do we know every PHP runtime we run, including inside containers, appliances, and vendor software?
  • Have all PHP workers been restarted, and has someone checked the running version rather than the installed one?
  • Are any of our hosts on the captured target list?
  • Can we see when a web server process starts a shell or a download tool?

The last question matters because application logs usually show nothing: the bug fires before application code runs, so detection has to come from the web server, the operating system, or the network.

What Is the Potential Impact?

Unauthenticated remote code execution on internet-facing PHP gives an attacker the same foothold, whatever CMS, framework, or plugins sit on top.

From there, the realistic outcomes are:

  • web-shell deployment
  • theft of credentials and configuration
  • data exfiltration
  • cryptomining
  • ransomware precursors
  • lateral movement into the wider network

For this particular actor, the worst cases are financial theft and espionage against government hosts. Severity: critical. Time sensitivity: immediate.

How Does Early Warning Like This Work?

This warning did not come from a scanner. It came from CYFIRMA’s closed-source human-intelligence monitoring, which surfaced the operators’ planning on a closed channel before most of the targeted servers had been touched.

That collection was then correlated with vulnerability intelligence on the two CVEs and with exploitation telemetry and delivered to customers through DeCYFIR early-warning arrangements, with the public advisory following under TLP: CLEAR.

The value of the approach is the gap it opens: organisations were warned of the campaign on 22 October, while the operators were still building their target list and before the exploitation they reported from 25 October. CYFIRMA describes the broader method in its explainers on External Threat Landscape Management (ETLM) and preemptive cybersecurity.

Frequently Asked Questions About PHP2Shell

What is PHP2Shell?

PHP2Shell is the name given to two critical remote code execution vulnerabilities in PHP core, CVE-2026-109618 and CVE-2026-109619, disclosed in October 2026. Both can be triggered by an unauthenticated attacker with a single crafted request. Details were leaked on 20 October 2026, and fixes followed on 21 October.

What are CVE-2026-109618 and CVE-2026-109619?

They are the two CVE identifiers assigned to the PHP2Shell flaws. Each is an unauthenticated remote code execution vulnerability in the PHP runtime, rated CVSS v4.0 9.2. They need different interim controls but the same patch.

What is the latest PHP vulnerability?

As of late October 2026, the latest critical PHP vulnerability is PHP2Shell, covering CVE-2026-109618 and CVE-2026-109619. It is under active exploitation by an actor CYFIRMA assesses as DPRK state-nexus. Fixed versions have been available since 21 October 2026.

Is there a patch for the PHP vulnerability?

Yes. The PHP Security Team released fixed versions on 21 October 2026 for every supported and security-only branch. Patching PHP and restarting all workers is the only complete mitigation.

Which PHP versions are fixed?

PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35, and anything newer on those branches. PHP 8.1, 8.0, and 7.4 are end-of-life and depend on vendor builds or minimal source backports. PHP 7.3 and older have no fixes and should be migrated or isolated.

How do I check my PHP version?

Check the version of the process serving web traffic, Apache or PHP-FPM, rather than relying only on php -v at the command line. Do the same for containers, appliances, and PHP bundled inside vendor software. The running version after a full restart is the one that counts.

Does updating WordPress, Drupal, Magento, or Laravel fix PHP2Shell?

No. The flaw is in the PHP runtime, not in any application or framework, so no CMS or framework update can close it. You must patch PHP itself and restart every worker.

Which PHP setups are most at risk?

Internet-facing servers running PHP below the fixed versions, with Apache mod_php (prefork) the highest-risk configuration. End-of-life branches that cannot take an official patch are also high risk. The operators specifically selected hosts that still advertised older PHP versions.

Is PHP2Shell being exploited?

Yes. The earliest known exploitation attempt dates to 17 October 2026, before public disclosure, and low-and-slow weakness checks and initial exploitation attempts against internet-facing PHP are continuing. The operators tracked by CYFIRMA have reported exploitation and web shells, though those per-host reports are their own claims.

Did CYFIRMA capture the attackers’ target list?

Yes. CYFIRMA obtained the operators’ original target list of 216 internet-facing servers across 10 countries. That list, not the operators’ later claims, is the basis for the confirmed targeting in this blog and the advisory.

Is my organisation on the target list, and how do I check?

Compare your public address ranges against the masked /24 ranges published by country in advisory version 4. Being on the list means you were targeted, not that you were compromised. If you run older internet-facing PHP in government, banking, telecommunications or infrastructure, assume you are in scope either way.

What does the 581-host figure mean?

It is the number of hosts the operators claimed to have expanded their campaign to between 25 and 29 October 2026. It is an adversary claim that CYFIRMA has not independently verified. The 216-host figure, by contrast, comes from a list CYFIRMA holds.

Are there confirmed compromises?

CYFIRMA has confirmed the targeting and the ongoing exploitation attempts, but compromise of individual hosts is self-reported by the operators. No organisation should treat its absence from the list, or the absence of a public breach report, as evidence that it is clean. Hunt your logs back to 17 October 2026.

Is North Korea or the Lazarus Group behind the campaign, and how confident is CYFIRMA?

CYFIRMA assesses with high confidence that the operators are DPRK state-nexus operators within the Lazarus Group ecosystem. That confidence was raised from moderate in versions 1 to 3 to high in version 4 of the advisory. The assessed mandate combines financial gain with espionage.

Which countries and sectors are targeted?

The captured list covers the United States (49 hosts), Japan (47), India (31), South Korea (30), Thailand (16), the UAE (14), Indonesia (10), Australia (10), Saudi Arabia (5), and Singapore (4). Sectors include government, banking, telecommunications, and infrastructure providers, with logistics, aviation, manufacturing, trading, and online transaction platforms named in earlier versions. Asia-Pacific holds 68.5% of the list.

Why do the attackers skip hosts that advertise fixed PHP versions?

Because a patched host cannot be exploited with these flaws, so it is not worth their time or the risk of exposing their scan nodes. The operators removed hosts that bannered fixed versions, or sat behind heavy filtering, from their list. Where the banner shows a fixed version, patching is likely to take a host out of their pool. It does not remove access already gained, so listed hosts should still be hunted back to 17 October 2026.

How far back should we hunt for exploitation?

To 17 October 2026, the date of the earliest known exploitation attempt. Review web server, WAF, and proxy logs over extended windows rather than looking for spikes, because the operators’ scanning is low-volume and paced.

What should we do if we cannot patch immediately?

Isolate unpatchable internet-facing PHP, Apache mod_php first, and apply the per-CVE temporary controls from the advisory. Monitor or block the suspected source addresses. Treat these steps as buying time, not as a fix.

Do the two CVEs need different interim controls?

Yes. Disabling session upload progress mitigates CVE-2026-109619 but does nothing for CVE-2026-109618, which needs its own control. The advisory lists the interim control for each; the patch covers both.

Are public PHP2Shell proof-of-concept exploits safe to run?

No, not against production systems and not without review. Public proof-of-concept code is exactly what the operators are adapting, and running it can crash workers, destroy evidence, or leave a system in an exploitable state. Validate only in an isolated lab, and never paste exploit code into a ticket or chat.

What should we do if we think a server is already compromised?

Preserve volatile evidence before you patch, since a restart destroys the state associated with CVE-2026-109619. Isolate the host from the network without restarting it, capture memory and logs, then rebuild it from a trusted patched image and rotate every secret the PHP worker could reach.

Sources

  • CYFIRMA First Sight advisory versions 1 to 3 (CYF-EWR-2026-1022-PHP2SHELL-DPRK), 22 to 24 October 2026, and version 4 (CYF-FS-2026-1029-PHP2SHELL-DPRK), 29 October 2026
  • PHP Security Team advisories GHSA-w8hw-w9fx-j79w and GHSA-6wmf-4rv5-p3rp, 21 October 2026
  • VulnCheck exploitation analysis, 22 October 2026
  • In-the-wild exploitation telemetry cited in the advisory: Amazon MadPot, Cloudflare, Hadrian, Patchstack, VulnCheck, ELLIO and Vega; original disclosure: Wiz / Calif / OpenAI / Quarkslab; public exploit and proof-of-concept evidence: Datadog Security Labs, VulnCheck and GitHub; fake proof-of-concept warnings: JFrog and AhnLab ASEC

Media contact: [email protected]
For analysts. This blog stays at the ‘am I affected and what do I do’ level. The advisory holds the details:

Topic Advisory section
Root cause, exploitability and public PoC evidence for both CVEs Exploitation and vulnerability detail
Operators’ planning and tradecraft Adversary conversation intelligence (masked transcripts, v3 and v4); expected attack path (MITRE ATT&CK)
Attribution to the Lazarus ecosystem Links to known adversaries; structured assessment (v1 and v4)
Captured target set Masked /24 ranges by country
Recommended actions and per-CVE temporary controls Recommended actions; temporary controls
Hunting and detection Suspected source infrastructure (v2 to v4); indicators of compromise; detection rules and YARA