Ir al contenido principal
A cracked bronze shell with warm light shining through

SPECIAL REPORT · PHP2SHELL · CVE-2026-109618 / 109619

AI found a 20-year-old flaw in PHP's core in a matter of days

About 70% of websites run on PHP. On 2026-10-21, PHP issued emergency patches for two CVSS 9.2 vulnerabilities. They let an unauthenticated attacker run code on a server, and almost every release since 5.4 was affected before the patches. This page explains what you need to know and do now, and why the next incident will move even faster.

Book a free consultation
Patched versions
8.5.12 · 8.4.27 · 8.3.36 · 8.2.35
CVSS
9.2 (v4.0) · 9.8 (v3.1)
Disclosure
2026-10-21 22:00 (Taiwan time)
Last updated
2026-10-22

THE 30-SECOND BRIEF

Five things to know first

What happened

Two memory-safety flaws were found in PHP core. CVE-2026-109618 affects cleanup during an out-of-memory condition. CVE-2026-109619 involves global state left behind after a request ends. Both allow unauthenticated remote code execution. The second can also leak passwords, tokens, and keys from other requests.

Official PHP advisory

Who is affected

Any internet-facing PHP service may be exposed, including PHP-FPM, Apache mod_php (the highest risk), php-cgi, FrankenPHP, and LiteSpeed. WordPress, Drupal, Joomla, and Magento were demonstration targets. Even Hello World is affected. Devices and admin panels with embedded PHP are also in scope.

NCSC-NL affected products list

How serious it is

The vulnerabilities score 9.2 under CVSS 4.0 and 9.8 under CVSS 3.1. Wiz called them some of the most severe vulnerabilities in PHP's history. CISA in the US, the UK's NCSC, Australia's ACSC, and Taiwan's Administration for Cyber Security (Ministry of Digital Affairs) issued alerts within a day.

NVD

How to fix it

Update to 8.5.12, 8.4.27, 8.3.36, or 8.2.35. Then restart Apache, PHP-FPM, and long-running workers. Versions 7.4, 8.0, and 8.1 are no longer supported and received only a minimal source backport, so you must rely on your distribution or LTS vendor. Updating WordPress or its plugins will not help because the flaw is in the runtime underneath.

The PHP Foundation

What is happening now

The identifiers leaked the day before the patches, and proof-of-concept material is circulating. Cloudflare saw attacks before public disclosure and watched attackers mutate payloads in real time to bypass rules. Government websites in the Netherlands, Finland, and France went offline before patches were available. CISA had not added the flaws to its Known Exploited Vulnerabilities Catalog in the 10/21 release.

Cloudflare

TIMELINE

A 20-year-old flaw that AI found in days

The first twenty-two years moved at the pace of human researchers. The final three months moved at agent speed.

  1. 2004

    First PHP memory-limit remote vulnerability

    Stefan Esser found the first remote vulnerability in PHP's memory-limit handling. The root of this class of issue was already present.

  2. 2020

    Bug #78876 reported

    A related issue was reported again, but no one could prove it was exploitable.

  3. 2024

    An external audit found the issue but could not prove exploitation

    PHP's first external audit in years, funded by the Sovereign Tech Agency, coordinated by OSTIF, and conducted by Quarkslab, found a related out-of-memory issue. No one could prove it was exploitable, and the patch took several months. The PHP Foundation later called this a structural failure.

  4. Early 2026

    AI scanning begins

    PHP partnered with Alpha-Omega to scan the codebase using Anthropic's Claude Mythos. OpenAI's Daybreak Red later joined to validate reports.

  5. 2026-07-30

    Calif joins Patch the Planet

    OpenAI invited security research firm Calif to join Patch the Planet, with PHP selected as a high-impact target.

  6. 2026-08-01

    First paths found within days

    With help from GPT-5.6 Sol, Calif researcher Ryan Austin found several paths to remote code execution only days into the audit. The team had not expected a major finding because every lab had already audited the target with AI.

  7. 2026-08-11

    Two teams report the same root cause on the same day

    Calif reported the first vulnerability to PHP. OpenAI independently reported the same root cause. From that day, remediation became the top priority for every member of The PHP Foundation's security team.

  8. 2026-08-19

    Wiz finds it independently

    Wiz Research found the first vulnerability using Wiz Atlas, Gemini 4 Argon, and GPT-5.6 Sol. Within two days, the team confirmed unauthenticated remote code execution on Drupal and WordPress, then reported it to the PHP security team on 8/24.

  9. 2026-09-18

    OpenAI adds more attack vectors

    OpenAI reported more attack vectors. PHP confirmed all reports on 9/21 and began coordinating the patches.

  10. 2026-10-20

    Identifiers leak early

    At about 15:00 UTC, both CVE identifiers appeared on Hacker News with an incorrect date and an incorrect 10.0 score. PHP issued an advance notice at 19:30 UTC and moved the release from 10/22 to 10/21. Calif accidentally published a short proof-of-concept video that evening. It was deleted, but copies had already spread.

  11. 2026-10-21 03:02 UTC

    Cloudflare rules go live

    About 9 hours before public disclosure, Cloudflare automatically enabled protection for every plan, including its free plan. It also saw attackers mutate payloads in an attempt to bypass the protection.

  12. 2026-10-21 07:41 UTC

    Embargo broken early

    Chainguard released patched images more than 6 hours early, allowing attackers to study the binary differences and infer the fix.

  13. 2026-10-21 14:00 UTC

    Patches released

    At 22:00 Taiwan time, PHP released four patched versions and disclosed the vulnerabilities. The UK's NCSC, CISA in the US, CERT-EU, Australia's ACSC, Singapore's CSA, and Japan's IPA issued alerts the same day.

  14. 2026-10-22

    Taiwan's cyber authority urges immediate updates

    Taiwan's Administration for Cyber Security (Ministry of Digital Affairs) urged government agencies, schools, and businesses to confirm their versions and update promptly. It also issued notifications through its security alert system, N-ISAC, and TWCERT/CC.

THE SHIFT

Why human-speed defense can no longer keep up

The researchers who found the vulnerabilities described the change in their own words.

“Frontier AI models substantially reduced that barrier, turning a longstanding flaw into an exploit.”
Wiz Research
“Frontier models were critical to making this process practical, enabling us to develop and adapt working exploits across multiple applications in hours.”
Wiz Research
“Tools now find bugs faster than ever, for defenders and attackers alike, and the number of reports will keep growing.”
The PHP Foundation, which has published 15 CVEs since 1 July
“To our knowledge, frontier AI found these vulnerabilities before attackers did. We expect similar findings to increase sharply in the coming months.”
OpenAI
“We observed how attackers were mutating the attack payload to try to bypass our protections.”
Cloudflare

The cost of discovery has collapsed

A professional audit found the same issue in 2024 but could not prove exploitation. In 2026, one researcher working with a model found several paths within days. Complexity no longer protects flaws that once seemed too difficult to exploit.

Exploits now move in hours

Wiz used models to adapt working exploits across applications in hours. Cloudflare saw attackers mutate payloads in real time. Defenders must write, validate, and deploy rules at the same pace.

Minutes separate disclosure from attack

Sansec estimated that widespread attacks would begin within 15 minutes of disclosure. Attacks had already started before the announcement. Quarterly penetration tests and monthly patch windows cannot handle this timeline.

Defenders found these flaws first. They may not find the next ones first. Vulnerabilities discovered at agent speed require defenses that move at agent speed.

ACT NOW

Six actions your business should take now

Follow this sequence, based on guidance from PHP, CISA in the US, the UK's NCSC, and Taiwan's Administration for Cyber Security (Ministry of Digital Affairs).

  1. 01

    Inventory every PHP runtime

    Look beyond websites. Include container images, CI environments, devices and admin panels with embedded PHP, and sites managed by hosting providers. Prioritize internet-facing systems. Compare your inventory with the affected products list maintained by NCSC-NL.

  2. 02

    Update to a patched version, then restart

    Install 8.5.12, 8.4.27, 8.3.36, or 8.2.35. If you use distribution packages, install your vendor's update. Restart Apache, PHP-FPM, and every long-running worker afterward. Otherwise, old processes will keep running.

  3. 03

    Apply interim mitigations if you cannot update immediately

    PHP's mitigations are partial and may affect functionality. Adjust memory_limit and enforce memory limits with cgroup, lower post_max_size and max_input_nesting_level, disable session.upload_progress, set display_errors to 0, reduce PHP-FPM's pm.max_requests so workers recycle more often, and restrict worker permissions with SELinux or AppArmor.

  4. 04

    Enable your WAF, and still install the patch

    Cloudflare automatically enabled rules for every plan. Customers on paid plans should confirm that blocking mode is active. A WAF provides partial protection and cannot replace the update.

  5. 05

    Check for compromise

    Look for unusually large or malformed PHPSESSID cookies, unusual multipart requests followed by memory errors or repeated 500 responses, and unexplained worker crashes or restarts. An absence of these signs does not prove the system is safe. Check exposed, unpatched systems for backdoors before updating them.

  6. 06

    Take the system offline if you cannot secure it

    The UK's NCSC and CISA in the US both advise considering taking systems offline when you cannot patch or mitigate them, especially if they still run 8.1 or older.

Check my PHP version first

There are two ways to check. Both compare version numbers. Neither verifies the patch itself.

If you have server access: check the version

php -v

Act if the reported version is below the applicable patched version listed above, or is 8.1 or older. If you use distribution packages, also confirm whether the vendor backported the patch.

If you only have a URL: OpenAI's php2shell-checker

git clone https://github.com/openai/php2shell-checker
cd php2shell-checker
node phpcheck.js "https://example.com"

The tool only reads the PHP version from response headers. It does not follow redirects or inspect page content. It returns OK, VULNERABLE, or UNKNOWN.

  • UNKNOWN does not mean patched. Hidden headers, modified version strings, or a distribution backport can all make the result inaccurate.
  • Run the tool only against websites you own or are authorized to test.
  • The application version, such as the WordPress version, is separate from the PHP version. Check both.
View php2shell-checker on GitHub

TENTEN'S APPROACH · AI AGENT ACTIVE DEFENSE

Agents defending against agents

Attackers already use frontier models to find vulnerabilities, write exploits, and mutate payloads. Annual penetration tests and manual patch schedules cannot keep pace. Tenten puts agents inside your environment to run a continuous cycle. A person makes every decision.

  1. 01 · INVENTORY

    Inventory agent

    Continuously identify hosts, containers, devices, dependencies, and runtime versions, including hosted sites and devices with embedded PHP. Without an inventory, the next three steps rely on guesswork.

  2. 02 · DETECT

    Detection agent

    Use tools on par with the attacker's to research vulnerabilities across your stack. Monitor notices from PHP, distributions, CERTs, and vendors at the same time. The aim is to know where you are exposed before an advisory appears.

  3. 03 · VALIDATE

    Validation agent

    Reproduce the issue in an isolated sandbox, confirm whether it can be exploited, prioritize it by actual exposure, and prepare patch and mitigation plans. This keeps the team focused on vulnerabilities that attackers can reach.

  4. 04 · RESPOND

    Response agent

    Deploy patches, update WAF rules, recycle workers, monitor signs of compromise, and retain evidence from every step. Only minutes may separate disclosure from attack, so this stage must be automated.

A person signs off on every decision

The PHP Foundation is explicit: AI helps validate and classify reports, but every decision is made by a human. Tenten applies the same rule. Your owner and our engineers decide whether to take a service offline, patch it, roll it back, or notify others. The agent assembles the evidence and carries out the approved action.

A copper lattice surrounding a bronze core

How this differs from annual penetration testing

Qualitative comparison. Actual cadence and coverage depend on your environment and the agreed scope.
DimensionAnnual penetration testAI agent active defense
CadenceOnce or twice a year. The environment has changed by the time the report arrives.Runs continuously. You know where exposure exists when an advisory appears.
CoverageSamples systems within the agreed scope.Uses a complete inventory, including containers, devices, and hosted sites.
Discovery to patchReporting, scheduling, and patching take weeks.Validation, prioritization, and deployment take hours.
Response after disclosureWaits for someone to start work and read their email.An agent applies mitigation first, then a person decides the next action.
Where knowledge staysA PDF report.Your inventory, rules, and runbook stay ready for the next response.

PRIMARY SOURCES

Primary sources worth reading

Each link was opened and checked. Entries include the publisher, date, and why the source is useful.

Official sources

Discovery teams

Government and CERT advisories

Security vendors

Media coverage

Every link was verified on 2026-10-22. This page summarizes public information and is not an official advisory. Follow PHP's official guidance for versions and mitigations.

FAQ

Frequently asked questions

My WordPress site uses PHP managed by my hosting provider. What should I do?

Ask whether the provider has updated PHP to 8.5.12, 8.4.27, 8.3.36, or 8.2.35, and when it restarted the service. Most providers show the PHP version in their control panel. If it is 8.1 or older, request an upgrade or change plans. Updating WordPress core and plugins does not fix this vulnerability.

Will updating WordPress, Drupal, or plugins help?

No. The vulnerability is in the PHP runtime, not the application. The research team found that even Hello World is affected.

Does a WAF or CDN make me safe?

No. Cloudflare, Imperva, Akamai, and others have deployed rules, but attackers began mutating payloads before disclosure to bypass protections. PHP and CISA both say a WAF provides only partial protection and cannot replace the update.

What if I still run PHP 7.4, 8.0, or 8.1?

All three branches are unsupported. The PHP Security Team published a minimal source backport for organizations that compile PHP themselves or lack an LTS vendor. If you use distribution packages, check whether your vendor backported the fix. CISA advises considering taking unpatchable systems on 8.1 or older offline and planning an upgrade.

How can I tell whether the system was compromised?

The research team lists several signs: unusually large or malformed PHPSESSID cookies, unusual multipart requests followed by memory errors or repeated 500 responses, and unexplained worker crashes or restarts. An absence of these signs does not prove the system is safe. The UK's NCSC advises checking exposed systems for backdoors before updating them.

What does 'agents defending against agents' mean?

Attackers already use frontier models to find vulnerabilities in days, write exploits in hours, and launch attacks within minutes. Defenders need comparable tools for continuous inventory, detection, validation, and response instead of waiting for an annual penetration test. Tenten builds this cycle inside your environment, while people retain every decision.

Did OpenAI discover these vulnerabilities?

This was a coordinated disclosure. Calif found the flaw with GPT-5.6 Sol through OpenAI's Patch the Planet program. OpenAI independently reported the same root cause. Wiz Research also found it independently using Wiz Atlas, Gemini 4 Argon, and GPT-5.6 Sol. The PHP Security Team produced the patches and released them on 2026-10-21.

FREE CONSULTATION

Is your business dealing with any of these gaps?

You may not know how many PHP systems you have, whether your hosting provider has updated them, whether your WAF rules are enough, or how AI agent active defense would work in your environment. Share your contact details to arrange a free 30-minute online consultation.

  • Priorities for your PHP exposure inventory: internet-facing systems, hosted sites, and embedded devices
  • Recommended patching and mitigation priorities
  • A sample AI agent active defense workflow for your environment

START HERE

Deje sus datos de contacto

Indique su nombre y email de trabajo. El tipo de problema es opcional. Conoceremos el contexto por email; aquí no hace falta una especificación ni información confidencial.

  • Evaluar un proceso real
  • Un equipo experimentado revisa la consulta
  • Explicar si la IA no es adecuada
inquiry@tenten.co

El formulario aún se está cargando. También puede escribirnos directamente: inquiry@tenten.co

Revisar el alcance antes de decidir

Al enviar, aceptas que podamos contactarte conforme a nuestra política de privacidad, solo respecto a esta consulta. Política de privacidad

Your current information is enough for the consultation. You do not need to give us access to any system in advance.

Use the contact page

About this page

Tenten AI compiled this page from public sources. It is not an official advisory and contains no exploit details. Follow official PHP guidance and your country's CERT for versions, mitigations, and response priorities. Contact us if you find an error or omission. Last updated 2026-10-22.