October 2026 Security Alert: eMudhra Certificate Compromise, Node.js Vulnerabilities and PHP2Shell
RELEASED DATE: 24 October 2026
14 Minutes Read
[A cybersecurity thumbnail covering the October 2026 security disclosures involving eMudhra certificate trust, Node.js TLS and DNS vulnerabilities, Brotli decompression, and critical PHP2Shell vulnerabilities, with a focus on affected applications and security patches.]
A series of security disclosures between October 17 and October 21, 2026, has put several widely used parts of internet infrastructure under scrutiny. The incidents involve the trust system behind HTTPS connections, multiple vulnerabilities in Node.js, and two critical flaws in the PHP programming language that can allow attackers to execute code on vulnerable servers.
These are three different security problems, but they share an important characteristic: the risk is not limited to one website, hosting company, or application framework. Developers running applications on virtual private servers, cloud platforms, shared hosting, containers, or their own infrastructure may need to take action.
The PHP vulnerabilities are particularly urgent for operators of internet-facing applications, while the eMudhra incident raises a separate question about which certificate authorities software continues to trust. Node.js users face both issues involving certificate validation and additional runtime vulnerabilities, including a flaw that can potentially lead to remote code execution.
As of October 24, security teams and website owners should check their runtimes, update affected software, and make sure their deployments use current certificate trust stores. Simply having an HTTPS-enabled website or an application that works normally does not establish that its underlying software is safe.
eMudhra Certificate Compromise: Why HTTPS Trust Is Being Reconsidered
HTTPS is designed to protect communications between a client and a server. It encrypts traffic and uses digital certificates to help verify that the server is the one it claims to be.
That verification depends on a chain of trust. A browser or application checks a website's certificate against certificates issued by recognised certificate authorities. Intermediate certificate authorities sit between trusted root authorities and the certificates used by individual websites.
The system depends on the private keys belonging to those authorities remaining secure and being generated correctly. If an attacker can use a compromised intermediate certificate authority key, the attacker may be able to create certificates that appear legitimate to clients that still trust the affected authority.
That is the underlying concern behind the eMudhra incident.
On October 17, 2026, a security researcher reported that the private keys associated with eight eMudhra intermediate certificate authorities had been generated with insufficient cryptographic randomness. The affected keys could be reconstructed, making it possible to impersonate websites or services to clients that had not yet blocked the affected certificates.
The eight intermediates were subsequently revoked. Browser vendors and certificate ecosystem operators moved to block the affected certificates and remove trust in the relevant certificate hierarchy.
There is an important distinction between the potential impact of the weakness and what has actually been confirmed. eMudhra stated that the affected intermediate authorities had not issued end-entity certificates, including the one that had been used in production. The company also reported no compromise of its infrastructure and no data breach. Google likewise reported that no TLS certificates chaining to the six affected TLS intermediates had appeared in Certificate Transparency logs before its blocking action.
Those findings do not make the incident irrelevant. They explain why it is more accurate to describe this as a serious certificate-security incident with potential impersonation risks rather than to claim that a confirmed wave of fraudulent websites or stolen customer data has resulted from it.
Why developers should care about a certificate authority incident
Browser protection is only one part of the internet's certificate ecosystem.
Applications make HTTPS requests to payment gateways, authentication services, APIs, package registries, databases exposed through secure endpoints, and other external services. These applications may rely on the operating system's certificate store, a runtime's bundled certificates, or a separate certificate bundle installed by a library.
If an application continues to trust a certificate authority that has been distrusted elsewhere, its behaviour may differ from that of an updated browser.
For example, a backend service might send a request to an external API and verify the remote server's certificate using an outdated trust store. If the connection is intercepted and the validation mechanism accepts a fraudulent certificate, the application could communicate with an impersonated endpoint. Depending on the service and the data exchanged, the consequences could include exposure of authentication tokens, API credentials, or sensitive requests.
The affected certificate authorities have been revoked, and browser vendors have implemented protective measures. The remaining concern for administrators is whether their own software, operating systems, containers, and bundled certificate stores have received the necessary updates.
Google and Mozilla have already implemented certificate-blocking measures. However, not every application receives browser-style revocation updates. Some tools use independent trust stores and need separate maintenance.
The October 27 deadline for some website certificates
Website owners also need to check the certificate installed on their own domains.
Google has announced that removal of the emSign ECC Root CA - G3 certificate from the Chrome Root Store is expected to reach devices relying on that store on October 27, 2026, Pacific time. The change is intended to provide additional protection for applications that do not receive the same intermediate-certificate blocking updates.
This may affect legitimate certificates that chain to that particular root, even if a website has not been compromised. A certificate can be cryptographically valid and still stop being trusted by a browser after its issuing hierarchy is removed from the browser's trust store.
Website operators using a certificate that chains to emSign ECC Root CA - G3 should arrange a replacement from an unaffected, trusted certificate hierarchy before the change takes effect. Renewing a certificate without checking its issuing chain may not solve the problem if the replacement remains under the same root.
Check the certificate chain rather than looking only at its expiry date or the name of the company that issued it. Also confirm that the replacement certificate has actually been installed on the live website.
Node.js Security Release: Several Vulnerabilities Fixed on October 21
The Node.js project published security updates on October 21, 2026, for its 22.x, 24.x, and 26.x release lines.
The release was not limited to the eMudhra certificate issue. It also addressed vulnerabilities in DNS resolution, TLS hostname verification, and Brotli decompression, alongside updates to several dependencies.
This matters because Node.js is used for much more than conventional websites. It powers APIs, backend services, command-line tools, automation scripts, bots, build pipelines, and applications that communicate with external services. A project can be affected even when it uses a framework such as Express, Next.js, NestJS, or another library built on Node.js.
Framework-level updates alone are not sufficient when the vulnerability exists in the Node.js runtime itself.
A TLS hostname-verification weakness
TLS certificate validation should confirm that the certificate belongs to the exact hostname or IP address to which the application connected.
The October 21 release fixed high-severity hostname-verification problems involving unusual representations of IP addresses. These included non-canonical IPv4 addresses with leading zeroes and addresses written using fullwidth characters.
Under specific circumstances, Node.js could interpret the hostname differently during certificate verification than it did during connection establishment. That could cause a certificate associated with a different address to be accepted.
This is especially relevant to applications that make security decisions based on hostname allowlists, restrict which external services they may contact, or validate endpoints before making outbound requests.
The issue does not mean every Node.js HTTPS request is automatically vulnerable. Exploitation depends on how the application handles hostnames and connections. Nevertheless, certificate verification is a fundamental security control, and applications should use the patched runtime rather than attempt to work around the weakness in their own code.
DNS validation can also be bypassed in certain cases
Another high-severity issue, CVE-2026-105482, involves Node.js DNS resolution functions.
Under particular conditions, hostnames containing a null byte could be silently truncated by functions such as dns.resolve*() and dns.reverse(). This could produce a mismatch between the hostname an application validates and the hostname actually resolved.
Consider a service that checks whether a destination belongs to an approved domain before making a connection. If the application validates one representation but the DNS resolver processes a truncated version, that check may not protect the application as intended.
The risk is most relevant to software that processes user-controlled hostnames, performs DNS lookups, or implements its own network access restrictions. The security release corrects the issue in the affected Node.js release lines.
Brotli decompression flaw could lead to remote code execution
The Node.js security release also fixed CVE-2026-111497, a high-severity vulnerability in the bundled Brotli decoder.
Brotli is a compression format used to reduce the size of data transmitted over the internet. Applications can decompress Brotli data using Node.js's node:zlib functionality.
The vulnerability involved malformed compressed input causing an out-of-bounds write in an internal decoder buffer. When an application processes attacker-controlled Brotli data through the affected code, memory corruption can lead to a crash, disclosure of process memory, or potentially remote code execution.
Remote code execution is particularly serious because it may allow an attacker to execute commands within the compromised process. The extent of the damage would depend on the application's permissions, isolation, exposed secrets, and surrounding infrastructure.
Applications that accept uploads, process externally supplied compressed content, or decompress untrusted data deserve particular attention. However, the correct response is to update the runtime across affected services rather than rely on assumptions about whether a particular endpoint is currently exposed.
Which Node.js versions should you install?
For the October 21 security release, the published patched versions are:
Node.js release line | Patched version |
|---|---|
Node.js 22.x |
|
Node.js 24.x |
|
Node.js 26.x |
|
Use the listed version or a later patched release in the same major version. The official Node.js security release announcement contains the technical details.
These versions also include updated certificate-related dependencies intended to address the eMudhra incident.
A project using an older release line should not assume that changing to the latest patch number available for that old line is enough. Node.js versions before 22.x are end-of-life and are not covered by this security release. Operators running them should move to a supported release line and test application compatibility before deployment.
To check the version installed in a terminal, run:
node --version
That command reports the Node.js version in the current environment. It does not guarantee that a production server, container, background worker, or hosting platform is using the same version.
Check the version used by the actual deployment, including the build environment where relevant. Update the runtime configuration or Docker image, install the patched version, and redeploy each affected service.
PHP2Shell: Two Critical Vulnerabilities Affecting PHP Applications
On October 21, the PHP project released security fixes for two critical vulnerabilities tracked as CVE-2026-109618 and CVE-2026-109619. The pair has been referred to as PHP2Shell.
Both issues affect the PHP runtime itself. They are not restricted to a particular website builder, content management system, or application framework.
The vulnerabilities can allow unauthenticated remote code execution or exposure of sensitive information from PHP process memory. The published severity rating for each vulnerability is 9.2 out of 10 under CVSS version 4.0.
An unauthenticated vulnerability is especially concerning for internet-facing services because an attacker may not need a valid account to attempt exploitation. PHP's security team has published the fixes and strongly recommends updating affected installations.
What is wrong with the PHP runtime?
The two vulnerabilities involve internal memory handling during request processing and error conditions.
CVE-2026-109618 concerns memory corruption associated with out-of-memory error handling. Under vulnerable conditions, PHP may encounter a partially initialised internal data structure and subsequently handle it incorrectly during cleanup.
CVE-2026-109619 concerns stale internal state that can remain accessible after the memory backing it has been freed. A later operation may use that state before the runtime has reset it appropriately.
These are runtime-level problems, which is why simply updating a WordPress plugin, Laravel package, or Composer dependency does not patch PHP itself.
The consequences can be significant. Remote code execution can allow an attacker to run code in the context of the affected PHP process, potentially accessing application files, database credentials, environment variables, or other secrets available to that process. Memory disclosure can also expose sensitive information that should not be available to an external requester.
How much access an attacker would obtain depends on the server configuration, process privileges, isolation and exposed application functionality. A successful attack should not automatically be equated with complete control of the underlying host, but it can still provide a serious foothold.
PHP's official security announcement provides the technical details and patched releases.
Is WordPress affected?
WordPress websites are potentially affected when they run a vulnerable PHP installation. The same applies to sites built with Drupal, Joomla, Laravel, and other software running on PHP.
Updating WordPress core, changing a theme, or installing a security plugin is not a replacement for updating the PHP runtime. A website may have fully updated application code while continuing to execute an affected version of PHP.
The same distinction applies to hosting control panels. The PHP version selected for a domain may differ from the version returned by the command-line interpreter. Some environments also run separate PHP-FPM pools, containers, or runtime instances.
Administrators should verify the version actually serving web requests rather than rely solely on a terminal command or a control panel's default setting.
Patched PHP versions
The security fixes released on October 21 are available in the following versions:
PHP branch | Patched version |
|---|---|
PHP 8.5 |
|
PHP 8.4 |
|
PHP 8.3 |
|
PHP 8.2 |
|
Install the appropriate patched release for your branch, or a later patched version. Linux distributions and commercial support vendors may backport security fixes to packages that retain an older upstream version number, so verify the applicable vendor security advisory before deciding that a package remains vulnerable solely because of its displayed version.
PHP 8.1 and earlier versions are outside regular upstream support. Although some distributions and vendors provide backported fixes, administrators without such coverage should plan to move to a supported branch.
There is another deadline to consider: PHP 8.2 is scheduled to reach end of life on December 31, 2026. Installing 8.2.35 addresses these particular vulnerabilities, but it does not remove the need to plan an upgrade before that support period ends.
For sites using a hosting provider, check whether the provider has already made a fixed runtime available and whether the site's configured version has been changed. A notice that the host has updated its platform does not necessarily mean every customer's application has moved to a patched version.
Are temporary PHP workarounds enough?
The published guidance includes configuration-based measures that can reduce exposure to particular attack paths when immediate patching is impossible. These are limited mitigations, not equivalent replacements for the official PHP fixes.
The appropriate configuration depends on the vulnerable code path, server architecture and application requirements. Disabling individual features may block one demonstrated exploit path without eliminating the underlying vulnerability.
For internet-facing PHP applications, the priority should remain installing the patched runtime, restarting or redeploying the relevant workers, and confirming that the live application actually uses the fixed version.
How to Check and Secure Your Application
The three disclosures affect different layers of software. A single package update or server rebuild will not necessarily resolve every issue, especially where applications bundle their own certificate stores or run multiple runtimes.
The following checks apply whether an application is deployed on a VPS, cloud service, container platform, shared hosting account, or privately managed server.
1. Identify every exposed service and runtime
Start with an inventory of the software running in production. Include public websites and APIs, private services that make outbound HTTPS requests, background workers, scheduled jobs, container images, and build pipelines.
Check both the language used by the application and the tools used to build or operate it. A Python backend, for example, may still use Node.js during its build process. A service that does not execute Node.js application code at runtime may nevertheless need an update if its build tools use an affected version.
For PHP, identify the runtime used by the web server, not only the command-line installation.
2. Update the certificate trust store
Update the operating system's trusted certificate package and rebuild or restart the affected workloads as appropriate.
For Docker-based applications, refreshing the host operating system's certificate store does not automatically refresh the store inside an existing container. The container image may include an older operating system, a separately installed CA package, or a custom certificate bundle.
Python applications deserve an additional check. Libraries such as Requests and HTTPX commonly rely on the Certifi package, which supplies its own CA bundle. Updating the operating system alone may not update a library that uses its own certificates. The updated deployment should resolve to an appropriate, current version of the certificate bundle; Render's guidance for this incident specifies Certifi 2026.10.19 or later.
Other languages and libraries may use different trust mechanisms. Consult the documentation for the HTTP client and runtime your application actually uses.
Do not disable certificate verification to make failed requests work again. Options such as NODE_TLS_REJECT_UNAUTHORIZED=0, Python's verify=False, or curl -k suppress important security checks and can expose traffic to interception. They are not valid fixes for a certificate authority incident.
3. Rebuild and redeploy Node.js applications
Update the Node.js version selected by your hosting environment, version manager, or Dockerfile.
If the application uses a version specified through .nvmrc, .node-version, package.json, or another runtime configuration file, make sure that configuration actually selects the patched release. The presence of a version number in a project file does not prove that the production environment honours it.
Rebuild the application with the updated runtime and deploy the resulting artifact or container image. Repeat the process for every affected service, including background workers and scheduled tasks that may be deployed separately from the public website.
After deployment, verify the runtime version and test both the application's normal functions and its outbound HTTPS connections.
4. Patch PHP at the runtime level
Upgrade PHP to a fixed release, using the relevant package manager, hosting control panel, container image or supported vendor package.
If PHP is installed through a Docker image, update the image or the PHP packages installed within it and rebuild the image. If the application uses a prebuilt image, make sure the replacement image is pushed and that the running service is actually redeployed.
Restart the relevant PHP-FPM workers or web server processes when required so that old processes do not continue using the vulnerable binary. Check the runtime handling web requests after the deployment.
A dependency update through Composer alone will not replace an outdated PHP interpreter. Likewise, updating the version used by a command-line job does not necessarily change the runtime attached to the website.
5. Check your website's own TLS certificate
If you operate a public website, inspect the complete certificate chain. Find out whether the installed certificate chains to emSign ECC Root CA - G3.
If it does, arrange an alternative certificate chain from an unaffected trusted hierarchy ahead of the announced Chrome Root Store change. Confirm that the new chain is served by the live website and test it with the relevant browsers and clients.
Do not assume a website is unaffected simply because its certificate has not expired or its padlock icon is visible. Trust-store changes can invalidate a previously accepted certificate chain.
Also avoid replacing certificates blindly. The objective is to obtain a certificate with a trusted issuing chain, not simply another certificate with a fresh expiry date.
6. Review logs and protect secrets if exposure is suspected
Applying a security update prevents future exploitation through the patched vulnerability; it does not undo an intrusion that may already have occurred.
After updating, review web server logs, application logs, authentication records, deployment history and other available telemetry for suspicious requests, unexpected processes, unfamiliar scheduled jobs, or unauthorised changes.
Prioritise services that remained exposed to the PHP vulnerabilities or used vulnerable Node.js versions while accepting untrusted traffic. If there is evidence of exploitation, investigate the incident and rotate potentially exposed credentials, API tokens and database passwords. Review access permissions and deployment credentials as well.
The absence of an obvious error message is not sufficient to establish that a server has not been compromised. Equally, the publication of these vulnerabilities does not mean every application running the affected software has been attacked.
Why Updating the Application's Code May Not Be Enough
These incidents highlight a common problem in application security: developers frequently think of a website as a single product, even though its security depends on several independently maintained components.
The application code is only one layer. The programming language runtime, third-party libraries, operating system, certificate store, container image and hosting configuration can each introduce a separate dependency on upstream security updates.
A website can have the latest framework release while running an outdated PHP interpreter. A service can use current application dependencies but rely on an old CA bundle. A Docker image can continue to ship vulnerable software even after the underlying host has been updated.
That is why patching needs to be followed by verification. Administrators should establish which version is running, confirm that the new build has reached production, restart the processes that need restarting, and test the relevant security-sensitive functions.
Teams should also maintain an inventory of software versions and establish a repeatable way to rebuild and redeploy affected services. Without that inventory, it is easy to patch the public API while overlooking a background worker, staging application, scheduled task or forgotten container.
What Website Owners and Developers Should Do Now
The October 2026 disclosures do not establish that every website using HTTPS, Node.js or PHP has been compromised. They do establish that several widely used components have required urgent security updates, and that some certificate trust decisions are changing.
For PHP operators, install the fixed runtime rather than relying on framework updates or partial workarounds. For Node.js applications, move to the patched 22.x, 24.x or 26.x releases and redeploy affected services. For all applications that make HTTPS requests, verify that the trust store used by the actual client has received the necessary certificate updates.
Website owners should separately check whether their own certificate chains through the root scheduled for removal from Chrome's trust store on October 27, 2026.
These are related security developments, but they are not one vulnerability and cannot be resolved with one universal update. The safest response is to identify the affected layer, apply the appropriate fix, and verify it in the environment that serves real traffic.
Security updates are only effective once the patched software is actually running. For applications exposed to the public internet, that verification should happen as part of the patching process—not days after the deployment has been assumed complete.
Authors
Want To Read Similar Posts
RELEASED DATE: 17 October 2026
READ TIME: 7 Minutes Read
Tesla’s New Flying Car: Roadster 2, Features, Price, Launch Date and What Makes It Different
Explore Tesla's new flying car, the next-generation Roadster, its features, thruster technology, expected price, performance and launch date.
RELEASED DATE: 10 October 2026
READ TIME: 5 Minutes Read
US Suspends 8 Tech Firms From PERM: Full List and Impact
The US has suspended PERM processing for eight tech firms, including Microsoft, TCS and Infosys. Here's the full list and impact on green card applicants.
RELEASED DATE: 3 October 2026
READ TIME: 6 Minutes Read
What Documents Are Required to Sell a Property in Dubai?
Learn which documents are required to sell a property in Dubai, including title deeds, NOCs, mortgage papers, and legal requirements for sellers.
RELEASED DATE: 29 September 2026
READ TIME: 4 Minutes Read
Yo Yo Honey Singh Introduces Casa Tupka Tequila With New Music Release
Yo Yo Honey Singh launches Casa Tupka, a premium tequila brand made in Mexico, alongside his new music release Casa Tupka Anthemo.
RELEASED DATE: 27 September 2026
READ TIME: 10 Minutes Read
Vi’s Free International Roaming in 170+ Countries: What Changes for Customers and the Company
Vi has launched free international roaming in 170+ countries with selected plans. Here’s what changes for customers, Vi and Vodafone Idea shares.
RELEASED DATE: 25 September 2026
READ TIME: 10 Minutes Read
Google Gemini Hacks: How AI Security Tests Exposed Real-World Risks
Google Gemini security incidents explained, including AI-driven hacks, prompt injection, agent risks, Langflow RCE, and key lessons for businesses.
