PHP2Shell, eMudhra and Node2Shell: 3 security failures explained

Saurabh Chaudhary
Head of Marketing
18 min read
PHP2Shell, eMudhra and Node2Shell: 3 security failures explained

Three major security stories broke this week, exposing weaknesses in some of the technologies that keep the modern internet running.

PHP faced two critical vulnerabilities in its runtime. An Indian certificate authority found itself in a rather embarrassing situation after researchers discovered cryptographic private keys that could be guessed almost instantly. And Node.js had to patch a memory-corruption vulnerability after researchers demonstrated how malicious compressed data could potentially lead to remote code execution.

The common thread was uncomfortable for technology leaders: some of the most serious security problems can exist several layers below the applications their teams actually build.

There was another interesting development. AI-assisted security research played a role in discovering vulnerabilities that conventional processes had failed to catch. That raises important questions about how quickly security teams will need to find, assess and fix vulnerabilities as these tools improve.

And somewhere in the middle of this chaos, a researcher suggested using a remote-code-execution vulnerability to automatically patch vulnerable servers.

Because apparently, the internet has reached the point where hacking everything might sound like a reasonable maintenance strategy.

PHP2Shell: Two critical vulnerabilities hiding inside the language powering much of the web

PHP is one of the most widely deployed server-side programming languages in the world. It powers WordPress, Drupal, Joomla, MediaWiki and countless custom applications that businesses have been maintaining for years.

According to Wiz Research, PHP underpins roughly 70% of websites, making vulnerabilities in its core engine particularly consequential. That figure describes PHP's broad presence across the web; it does not mean that 70% of websites were immediately exploitable.

On October 21, researchers from Wiz, OpenAI, Calif and other organizations disclosed two critical PHP vulnerabilities, CVE-2026-109618 and CVE-2026-109619. Both received CVSS 4.0 severity scores of 9.2 out of 10.

Collectively known as PHP2Shell, the vulnerabilities involve memory-safety problems in the PHP runtime itself. Depending on the affected configuration and exploitation path, they could allow attackers to execute code remotely or expose sensitive information from server memory.

A company might have invested heavily in application security, implemented authentication correctly and subjected its code to regular testing, yet still face exposure through a vulnerability in the runtime underneath it.

Wiz researchers demonstrated unauthenticated remote-code-execution chains against Drupal on August 20 and WordPress on August 21. They reported the vulnerabilities to the PHP security team on August 24, giving maintainers time to investigate and prepare fixes before the planned public disclosure.

What makes this case particularly interesting is how long the underlying weaknesses had been present.

According to Wiz, the vulnerabilities stemmed from architectural decisions dating back more than a decade. The flaws had survived years of software development, security research and widespread production use. Their exploitation required sufficiently complex techniques that they had remained difficult to discover and demonstrate.

That changed when researchers brought frontier AI models into the investigation.

Wiz reported using its Atlas platform alongside Google's Gemini 4 Argon and OpenAI's GPT-5.6 Sol. These systems helped researchers investigate the code, develop exploitation techniques and validate findings that would otherwise have required substantial manual effort.

This is a remarkable development for vulnerability research.

Of course, the same improvement in research capability creates an uncomfortable possibility.

The attackers and the defenders have the same tools, and the 17-year-old operating under the username DarkOverlord74 may soon have considerably better research assistance than his predecessors.

Attackers were probing PHP2Shell before the public disclosure

The timeline became even more concerning when evidence emerged that someone had already been attempting to exploit the vulnerabilities before the coordinated disclosure.

The PHP security team had been preparing patches, but technical details began leaking online on October 20. The public release was accelerated, and patched versions became available on October 21.

Amazon Threat Intelligence subsequently reported detecting an exploitation attempt on October 17, four days before the public announcement.

The attempt was captured by Amazon's monitoring infrastructure while the vulnerabilities were still under embargo. Additional attempts were observed around the disclosure period, with broader scanning activity following the release of technical information.

This is the situation security teams dread.

A critical vulnerability has been discovered in a widely used runtime. Technical details are circulating, attackers are already probing systems, and organizations need to determine which of their applications are exposed.

Updating the runtime sounds simple until someone opens the infrastructure inventory.

A company might have dozens of PHP applications spread across containers, virtual machines, managed hosting platforms and legacy environments. Some can be upgraded immediately. Others depend on extensions or frameworks that have not been tested against the latest release.

Then there is inevitably that one application generating $40 million a year that nobody wants to touch because the original developer retired in 2018.

Security teams need to identify affected versions, assess exposure, test compatibility, deploy patches and investigate suspicious activity. All while making sure their response doesn't bring production down.

The PHP project released fixed versions 8.2.35, 8.3.36, 8.4.27 and 8.5.12 on October 21. Cloudflare and other security vendors also introduced protective measures to help mitigate exploitation while organizations upgraded.

The larger concern is how much time defenders have to complete that process.

If AI-assisted research accelerates vulnerability discovery, and technical details can circulate before patches are widely deployed, the interval between disclosure and attempted exploitation may become increasingly difficult to manage.

That puts a premium on something considerably less glamorous than finding the vulnerability in the first place: knowing exactly what software your organization runs and being able to update it quickly.

The internet briefly considered hacking itself to install patches

One of the more entertaining reactions to PHP2Shell came from security researcher Marc Köhlbrugge, who posted a question on X on October 21:

“if this PHP vulnerability allows remote code execution, doesn't that mean we can use the vulnerability to auto-patch all vulnerable servers?”

It sounds ridiculous at first. Use a vulnerability that allows unauthorized code execution to install the update that removes the vulnerability.

But the idea has a surprisingly interesting history.

Security researchers have explored the concept of benevolent worms, sometimes called helpful worms, for years. The basic idea is that self-propagating software could identify vulnerable machines and install fixes rather than stealing data or deploying malware.

There is an obvious appeal. If a worm can spread through vulnerable systems faster than administrators can patch them manually, perhaps it could help contain an outbreak.

The problem is that unauthorized access remains unauthorized access, regardless of whether the software's author believes they are helping.

An automatically spreading patching program could break applications, interfere with critical infrastructure, destroy evidence needed for an investigation or create new vulnerabilities. And the owner of the affected machine may have very good reasons for not installing a particular update immediately.

There is, however, a fascinating real-world example of authorities using controlled access to remove malware from infected systems.

In August 2023, the FBI announced the disruption of QakBot, a notorious malware operation that had infected hundreds of thousands of computers worldwide and helped facilitate ransomware attacks.

The operation was called Duck Hunt.

Investigators gained control of parts of the botnet's infrastructure and, under court authorization, redirected infected computers to infrastructure controlled by law enforcement. They then delivered an uninstaller designed to remove the QakBot malware from affected machines.

It was an extraordinary intervention, but the legal authorization, specific malware target and controlled operation were essential differences from an uncontrolled worm roaming the internet.

The lesson is that remote remediation can be technically possible, and in narrowly authorized circumstances it can be effective. Turning that idea into a self-propagating patching campaign across machines you don't own is another matter entirely.

So please, don't attempt to save the internet by hacking everybody else's servers.

Especially if your entire change-management process consists of typing sudo and hoping for the best.

eMudhra: When the private key protecting internet trust is literally the number four

While PHP's maintainers were dealing with critical runtime vulnerabilities, another security incident was unfolding in a completely different part of the internet.

This one involved eMudhra, an Indian digital trust company whose certificate-authority operations came under intense scrutiny after researchers discovered eight intermediate certificates with extraordinarily weak cryptographic private keys.

To understand why this caused such a commotion, it helps to understand how website certificates work.

When you visit your bank's website, your browser needs to establish that it is communicating with the legitimate server. An attacker should not be able to create a convincing imitation of the website, intercept your connection and pretend to be your bank.

Digital certificates are one of the mechanisms that help browsers establish that trust.

Certificate Authorities, or CAs, issue and sign certificates using cryptographic keys. Browsers maintain lists of trusted authorities, and certificates can be validated through a chain of signatures leading back to a trusted root.

The security of that arrangement depends heavily on protecting the private keys used to sign certificates.

If an attacker obtains the private key of a trusted intermediate certificate authority, they may be able to issue fraudulent certificates that appear legitimate to systems that still trust that authority.

Which brings us to eMudhra.

On October 17, researchers alerted browser vendors to weaknesses involving eight of the company's intermediate certificates.

The affected certificates used P-384 elliptic-curve cryptography, a system in which private keys should be selected from an astronomically large range of possible values.

The approximate search space is 2^384, a number with 116 decimal digits.

For context, attempting to guess a properly generated key by brute force is computationally infeasible with existing technology.

So what were the eight private keys?

4, 56, 66, 115, 155, 156, 230 and 237.

Yes. Four.

Not a 384-digit number beginning with four. Not a sophisticated cryptographic sequence containing the number four.

Just the integer 4.

Security researcher Scott Helme independently recovered the affected keys from the public certificates. Because every value was smaller than 256, recovering them required testing only a tiny number of possibilities.

I have seen luggage locks with more elaborate security.

And the problem wasn't confined to a single certificate. Six affected intermediate authorities were intended for TLS certificate issuance, while two were associated with code signing.

TLS certificates help establish trust in websites, while code-signing certificates help establish the authenticity of software.

An attacker possessing one of these intermediate private keys could potentially forge signatures that appeared to originate from the affected authority, subject to the restrictions and trust decisions enforced by the verifying software.

This is why the discovery immediately attracted the attention of browser vendors.

Google and Mozilla moved rapidly to distrust the affected certificates, with Apple and Microsoft also taking protective action. The speed of that response helped limit the period during which the weak certificates could be trusted by updated systems.

But there was a much more uncomfortable question.

How did eight cryptographic keys this weak make it into a trusted certificate-authority system?

The cryptographic key-generation ceremony that went horribly wrong

According to eMudhra, the affected certificates originated from a key-generation ceremony held on April 30, 2025.

And yes, key-generation ceremony is the actual terminology.

For highly sensitive cryptographic infrastructure, generating keys is often a controlled process involving dedicated hardware, documented procedures, multiple authorized participants and audit records.

The objective is to ensure that the keys are generated securely, handled correctly and protected throughout their lifecycle.

eMudhra said its ceremony used FIPS 140-2 Level 3 Hardware Security Modules, specialized devices designed to protect sensitive cryptographic operations.

However, the company explained that a flaw during a cryptographic wrap/unwrap operation produced a second set of weak keys alongside the original strong keys. The weak keys were subsequently used in the published certificate-authority hierarchy.

The precise root cause remained under investigation when eMudhra issued its October 21 statement.

To everyone’s bewilderment, eMudhra said its certificate-authority infrastructure had undergone independent audits for two consecutive years.

Two years of audits, and eight private keys small enough to fit into a single byte had remained undetected.

To be precise, the affected certificates had been trusted since mid-2025, so the public evidence does not establish that these particular weak keys survived two full years in production. Nevertheless, the company's disclosure raises serious questions about what the audits validated and whether anyone independently checked the cryptographic strength of the published keys.

A certificate can be structurally valid while still being catastrophically insecure. Its fields may be correctly formatted, its public key may satisfy the expected mathematical requirements, and its signatures may pass routine checks.

If nobody verifies that the underlying private key was generated with adequate randomness, the entire process can look perfectly respectable while containing an enormous weakness.

This is exactly the kind of failure that makes security professionals nervous about relying exclusively on compliance checklists.

eMudhra's response, and the commercial consequences

On October 22, eMudhra announced that it would voluntarily withdraw from the global SSL/TLS certificate business.

The company maintained that its infrastructure had not been compromised, no data had been breached and no end-entity certificates had been issued by the affected intermediate authorities.

It also emphasized that its Indian digital-signature and eSign operations were separate and remained unaffected.

Those are important qualifications. The discovery of recoverable private keys established a serious weakness in the trust infrastructure, but it did not establish that attackers had successfully exploited those keys to compromise users.

eMudhra attributed its decision to leave the global TLS business to several factors, including rising compliance costs, data-sovereignty requirements, competition from free certificate providers and the commercial importance of the business relative to its other operations.

According to the company, global SSL/TLS certificates accounted for approximately 1% of its revenue.

The market reaction was considerably larger.

Reuters reported that eMudhra's shares had fallen approximately 40% over two trading sessions following the disclosure, illustrating how a security failure in a relatively small business segment can have consequences far beyond that segment's direct revenue contribution.

For technology executives, this is a useful reminder that security failures can become questions of corporate credibility almost immediately.

A company can spend years building a reputation for reliability and trust, only to find that a failure in one foundational process forces customers, partners, regulators and investors to reconsider their assumptions.

The technical failure may involve eight private keys. The business consequences can extend across the entire organization.

Node2Shell: A memory-corruption vulnerability hiding inside compressed data

As PHP and eMudhra were generating headlines, Node.js joined the festivities.

On October 21, the Node.js project released security updates addressing multiple vulnerabilities across its supported 22.x, 24.x and 26.x release lines.

Among the most serious was CVE-2026-111497, a high-severity vulnerability involving an out-of-bounds memory write in the Brotli decoder bundled with Node.js.

The issue was reported by OpenAI Codex Security researchers Khai Tran and Sylvie Mayer, according to the official Node.js advisory.

There they are again.

The robots.

Brotli is a compression algorithm commonly used to reduce the size of data transferred between applications and services.

When a server receives compressed information, the software needs to decompress it before processing the contents. That operation can involve native code that reads and writes directly to memory.

In a correctly functioning decoder, those operations remain within the allocated memory boundaries.

But an out-of-bounds write occurs when software writes information outside the memory region it is supposed to use.

Depending on the circumstances, this can corrupt adjacent memory, crash a process or create conditions that an attacker may exploit to execute code.

The dangerous part is that the attacker may not need direct access to the server's operating system. They may only need to supply malicious compressed data to an application that passes it through the vulnerable decoder.

Imperva demonstrated remote code execution on an official Node.js build

The vulnerability became particularly interesting when researchers at Imperva published their Node2Shell proof of concept.

Imperva demonstrated that specially crafted Brotli data could cause an application to execute attacker-supplied code on the official Node.js 24.22.0 Linux arm64 image.

The researchers tested applications using Express and body-parser, demonstrating that the vulnerability could be reached through ordinary application components that process compressed HTTP data.

Their proof of concept did not require a specially modified Node.js binary or a debugger attached to the production process.

There was an important limitation, however.

The exploitation did not succeed on every attempt. Imperva reported that code execution required multiple tries in its particular Linux arm64 setup, and the demonstration did not establish identical exploitability across every architecture, Node.js version or application configuration.

When the researchers repeated their test against the patched Node.js 24.22.1 release, the malicious data was rejected and the code did not execute.

The affected supported release lines were updated to Node.js 22.23.4, 24.22.1 and 26.12.1.

For engineering teams, the practical implication was straightforward. Applications processing untrusted Brotli-compressed data needed particular attention, and organizations running affected Node.js versions needed to update.

But the broader lesson extends well beyond Node.js.

A developer building an API might never write a single line of code that directly manipulates the Brotli decoder's memory. Their application framework or HTTP middleware handles decompression automatically.

The developer simply expects the runtime to process incoming data correctly.

When the underlying decoder has a vulnerability, that assumption becomes part of the application's attack surface.

What these three incidents tell us about the next generation of cybersecurity

The most revealing aspect of this week is how different the three vulnerabilities were.

PHP2Shell involved memory-safety weaknesses in a widely deployed programming-language runtime. The eMudhra incident involved catastrophically weak cryptographic keys in certificate-authority infrastructure. Node2Shell involved memory corruption in a compression decoder used by server applications.

The underlying engineering failures were different, the exploitation conditions were different, and the organizations responsible for responding to them faced different operational challenges.

Yet all three incidents exposed the same uncomfortable reality.

Modern applications depend on an enormous collection of software and trust relationships that their developers do not directly control.

A typical enterprise application might rely on a language runtime, third-party libraries, a web framework, an operating system, container images, cloud services, cryptographic libraries, certificate authorities and externally maintained APIs.

Each dependency is another component whose security affects the application.

A company can employ excellent engineers, maintain strict code-review standards and invest heavily in application security. Those practices reduce risk, but they cannot eliminate vulnerabilities in the software and infrastructure the company depends on.

And when a foundational component fails, the responsibility for protecting the business ultimately lands with the teams operating the affected systems.

This is why software supply-chain visibility, dependency management and vulnerability response deserve executive attention.

An organization needs to know which versions of critical software are running, where they are deployed, which applications depend on them and how quickly they can be updated.

That sounds elementary until a critical vulnerability is announced on a Wednesday and the infrastructure team discovers that nobody has an accurate inventory of the production environment.

The security team may understand the vulnerability perfectly. The engineering team may have a patch available. But if the organization cannot identify the affected workloads or safely deploy the fix, that knowledge provides limited protection.

The ability to respond quickly depends on decisions made long before the vulnerability becomes public.

It depends on whether the company has maintained its dependencies, standardized its deployment environments, automated testing, documented ownership and developed a reliable process for emergency changes.

The companies that have invested in those capabilities will generally have more options when something goes wrong.

AI is changing vulnerability discovery. Enterprise security needs to keep up.

There is another important development running through these stories.

AI-assisted security research is becoming increasingly capable of investigating complex codebases and helping researchers identify vulnerabilities.

In PHP2Shell, Wiz explicitly described how frontier models helped researchers discover and validate flaws that had existed for years.

In Node2Shell, OpenAI Codex Security researchers were credited with reporting the vulnerability.

Those examples are encouraging for defenders. AI tools can help researchers examine large amounts of code, explore unusual execution paths and investigate weaknesses that might otherwise remain undiscovered.

But the same capabilities could lower the barrier to exploitation for malicious actors.

It would be premature to conclude that AI has already made every vulnerability easy to discover or that attackers can automatically exploit anything they find. Complex exploitation still depends on technical constraints, target environments and the ability to turn a vulnerability into a reliable attack.

What we can reasonably conclude is that AI is becoming another powerful tool in vulnerability research.

And as that capability improves, organizations may need to reassess the assumptions behind their security operations.

How quickly can they identify vulnerable components? How much of their dependency inventory is accurate? Can they test and deploy critical updates without disrupting the business? Are their monitoring systems capable of detecting exploitation attempts before public advisories arrive?

Those questions have existed for years. The possibility of faster vulnerability discovery makes them more urgent.

For CTOs, CISOs, VPs of Engineering and infrastructure leaders, this creates an interesting set of responsibilities.

The strongest security posture will depend on the coordination between application engineering, infrastructure, platform, identity and security teams.

It will also depend on executives being willing to invest in work that rarely generates exciting product announcements.

Nobody celebrates a well-maintained dependency inventory. Automated patch testing seldom makes the quarterly shareholder presentation. And a reliable certificate-management process is unlikely to impress anyone until the day it prevents a major outage.

But these are precisely the capabilities that determine how well an organization responds when foundational technology fails.

The next major security incident is already somewhere in your dependency tree

The three incidents from October 2026 are reminders of how much modern computing relies on shared foundations.

The PHP vulnerabilities had been hiding in the runtime for years. The eMudhra keys passed through a formal cryptographic process and remained undiscovered until an independent researcher examined them. The Node.js vulnerability sat inside a compression component that applications could invoke through ordinary middleware.

Each weakness had its own technical explanation. Each required a different response.

And each created problems for organizations that had no role in introducing the original vulnerability.

For technology leaders, the practical priority is to make those dependencies visible, keep them maintained and build the operational capacity to respond when something goes wrong.

That means knowing what your company runs, understanding which components are critical, maintaining tested upgrade paths and ensuring that security findings can move quickly from investigation to remediation.

It also means recognizing that AI-assisted security research could change the pace at which new vulnerabilities are discovered and disclosed.

The next decade of cybersecurity will involve more sophisticated detection, more automation and potentially much faster vulnerability research. Defenders have an opportunity to use those capabilities to find and fix weaknesses before attackers exploit them.

But the fundamentals will remain important.

Keep your runtimes updated. Know which libraries and certificates your applications depend on. Test your recovery procedures. And make sure the people responsible for production systems have the tools and authority to act when an urgent security problem emerges.

And, for the love of God, if your company is generating cryptographic private keys, please make sure the random-number generator is actually generating random numbers.

The internet has had enough excitement for one week.

TL;DR: PATCH YOUR DAMN WEBSITES!!!

Saurabh Chaudhary

Written by

Head of Marketing, Wolf Mentoring

More posts by Saurabh→

Want us to run your search for you?

Book a free market audit call. We’ll review your positioning, assess your market and show you what it takes to land interviews.

Book a Free Market Audit →