All posts
SecurityAI ArchitectureOperations

PHP and Node.js vulnerabilities: secure your web projects

12 min readThomas Stermole
Three forest-green technical modules with a replaceable lime-green cartridge in front of the central module.

Research current as of 28 October 2026.

When assessing the recent PHP and Node.js advisories, start with the runtime in production. An up-to-date CMS or framework is not sufficient evidence. This article covers the affected layers, the role of AI and practical checks for web projects.

What to check now

Record the software actually running, compare it with the vendor advisories and check every running instance after updating. Signs of an attack also require an investigation. For larger outages, independently protected backups and a tested recovery procedure matter.

I assess web and AI applications as complete systems: code, runtimes, data, permissions and operations need to work together. The checklists below are my technical recommendations. The application example is fictional; no customer system was tested for this article.

Which security advisories affect PHP, Node.js and Next.js?

Several core web projects released security fixes in October 2026. A vulnerability, an observed exploitation attempt and a confirmed compromise are distinct findings.

Component / dateProblem and affected usePublished fixes
PHP · 21 October 2026Two critical paths to unauthenticated code execution: CVE-2026-109618 and CVE-2026-109619. The PHP project identifies installations serving web requests as at risk, with particularly high risk for Apache using mod_php. [1]8.5.12 · 8.4.27 · 8.3.36 · 8.2.35
Node.js · 21 October 2026Among other issues, a memory error in the Brotli decoder, CVE-2026-111497, rated High by the project. Relevant when an application decompresses malicious Brotli data; code execution is possible. [3]26.12.1 · 24.22.1 · 22.23.4
Next.js · 14 October 2026Two critical code-execution issues with their respective conditions involving Cache Components or Image Optimization. [4]16.4.1 · 15.5.28

These releases address the listed advisories; they are not a permanent list of safe versions. Check current vendor guidance before a rollout. Distributions and hosting providers may backport fixes into packages with different version numbers.

PHP identifies updating as the complete fix. Updating WordPress does not fix a flaw in PHP core. A Next.js application may need updates to both the framework and the Node.js runtime. [1]

Cisco Talos reported observed exploitation attempts after the PHP disclosure. This does not establish that every targeted system was successfully compromised. [2]

Windows update: On 26 October, PHP released packages 8.5.12-1, 8.4.27-1, 8.3.36-1 and 8.2.35-1 with updated Brotli. The -1 suffix does not change the PHP runtime version. Check the package build as well, particularly when automatic cURL decompression is used. PHP advisory on Windows builds.

npm: malicious code can run during installation

The ChainDrop campaign described in August illustrates another route: compromised npm packages executed malicious code during installation, searched for credentials and could infect further packages using stolen publishing permissions. Developer machines and build environments therefore belong within the security scope. [5]

What role does AI play in these vulnerabilities?

The reports do not establish that AI caused these vulnerabilities. They do document AI's involvement in security research.

The PHP Foundation describes using AI tools in audits and to validate reports. It also reports handling more than 100 submissions since early July that were invalid, duplicates or not reproducible. Every decision and patch still required human work. For the Node.js Brotli issue, the project credits OpenAI Codex Security and the researchers involved. [6] [3]

My assessment: more capable tools increase the work involved in validation, remediation and operations. Findings need to be understood, prioritised, fixed and deployed to production. A fast discovery only protects a service once the fix reaches its operator.

AI can help with code reviews, test cases and interpreting security advisories in your own development work. Check its results against the actual code, reproducible tests and official guidance. A persuasive answer is not evidence of security.

AI agents need limited authority

The integration itself introduces further risks. An agent that reads websites, documents or repository content and then calls tools processes potentially manipulated inputs. In a prompt-injection attack, an attacker tries to make instructions hidden in that content become an action request.

OWASP recommends least privilege, checking untrusted inputs, approvals for consequential actions and firm resource limits, among other controls. [7]

Give a coding agent only the access its task requires. Production data and deployment credentials should not be included by default. Enforce permissions outside the language model. A sentence in a system prompt does not replace this boundary.

My article on secure MCP write access provides a concrete example of server-side permissions and approvals.

Three separate update layers: application, PHP or Node.js runtime, and operating environment; the software actually running is checked at every layer.Technical diagram: an application update does not establish that the runtime build has been patched.

How can you check and secure your own web projects?

Start with one production application. Record who owns each check and what evidence exists. Assign an owner and a date to unresolved items.

CheckConcrete actionCompletion evidence
Active software versionsRecord runtimes, frameworks, images and background processes; compare them with vendor or provider advisories.Every production instance has a documented, attributable software state.
Update and rolloutTest the fix, rebuild images where needed, and redeploy web and background processes.Every running instance uses the intended version; a critical workflow works.
Packages and buildsVersion lockfiles, review changes and installation scripts, and separate build credentials from production credentials.Dependencies are traceable; build jobs receive only the secrets they require.
Accounts and permissionsProtect hosting, domain administration and source control with MFA, preferably phishing-resistant; restrict tokens and database privileges.Compromising an application account does not grant unrestricted access to other projects or backups.
RecoveryRestore an independently protected backup in an isolated environment, including the database and configuration.The application starts with restored data; recovery time and the recovered data's age are recorded.
Alert pathIntroduce a controlled fault in a test and follow delivery and response.A named person receives the notification and can perform the agreed action.

Add application-security checks: enforce permissions on every relevant access, use parameterised database queries, restrict uploads and manage secrets outside source code. A web application firewall can block known attack patterns. The underlying runtime still needs the appropriate security fixes.

Read version information in the correct environment

These commands provide initial version information. Run only the checks relevant to your project, in the appropriate environment:

# PHP build in this command-line environment
php -v

# Node.js runtime used by this process
node --version

# Installed Next.js version in the project directory
npm ls next --depth=0

Output from your laptop is not evidence of the server's state. Command-line PHP may also differ from PHP-FPM. Check the actual web process or running container. Public diagnostic pages exposing complete environment details are not required for this.

npm audit can additionally report known vulnerabilities in project dependencies. npm states that it sends a description of the dependencies to the configured registry. A clean report establishes neither a patched runtime nor the absence of new or previously undetected malicious packages. [10]

What to ask your hosting provider

Which PHP or Node.js build handles requests for this project? Does it include the fixes from the relevant security advisory, including any backports? Are the web processes, background processes and all instances already running that build?

Fictional example: the framework is current, but the container is not

A Next.js application already uses a fixed framework release. Its container still runs Node.js 24.22.0. The Brotli fix discussed here for the 24.x release line is therefore not included. Another package scan of the application does not resolve this runtime issue.

The next step would be to build a new image with an appropriately patched runtime, deploy it and verify the active instances. Then check authentication, an important business workflow and background jobs. Whether this application reaches the vulnerable Brotli path requires a separate assessment. This example illustrates the checks; it does not report a test that was actually performed. [3]

AI monitoring: test alert paths explains how to establish that an alert was delivered.

What if an attack is already suspected?

A patch closes a vulnerability. It does not automatically remove stolen credentials, modified files or access established by an attacker.

  1. Restrict access and preserve evidence. Isolate affected systems as appropriate; retain relevant logs, timestamps and system states under the incident procedure.
  2. Determine the scope. Include the application, developer machines, build systems, published artefacts and accessible accounts.
  3. Replace credentials from a clean environment. Revoke exposed tokens and keys, issue replacements and investigate unauthorised changes.
  4. Recover under control. After a compromise, rebuild from trusted sources, check that backups are suitable and approve resumed operation only after investigation.

For ChainDrop, Microsoft explicitly recommends investigating exposed credentials and rebuilding affected systems and artefacts from trusted sources. [5]

Could the entire internet fail worldwide?

A complete, simultaneous failure of every internet connection worldwide is an extreme scenario. The current PHP and Node.js vulnerabilities do not establish that such a failure will occur.

The internet consists of many independently operated networks. The Internet Society identifies decentralised management and distributed routing as core properties of this architecture. There is no single control centre whose failure would switch off every connection. [8]

My assessment: major regional disruptions or simultaneous failures of many popular services are substantially more plausible planning scenarios. Shared cloud, DNS, CDN or identity services can affect many applications at once while other parts of the internet keep working.

The Cloudflare outage on 18 November 2025 provides an example. According to Cloudflare, an internal change produced a faulty configuration file and significant disruption. The company explicitly ruled out a cyberattack as the cause. [9]

For a business, the failure of a few central services can still feel like a widespread internet outage: its website, login, payments and support may stop working at the same time.

What if important connections remain unavailable?

Plan for individual dependencies to be unavailable for hours or days. The following outcomes are scenarios; which occur depends on your architecture.

ScenarioPossible effectUseful preparation
The site's internet connection failsAccess to cloud applications and external communication is restricted.A second connection using as independent a provider as possible; test failover.
Hosting or a central platform failsThe website, shop or customer portal becomes unavailable.A recovery plan, independent backups and a separately operated status page.
An identity or API provider failsAn otherwise running application may lose authentication or core functions.Approved emergency access, queues and a defined mode with reduced functionality.
A widespread connection disruption continuesOrders, payments and coordination accumulate.Current offline documentation, alternative contact channels and a manual contingency process.

Reconnection starts another critical phase: delayed orders, repeated API calls and local changes need to be reconciled. A recovery plan should also account for duplicates and conflicting data.

Two forest-green stations show active indicators despite a disconnected brass link between them.Conceptual illustration: local operation requires its own data, access and infrastructure.

Set outage targets in business terms

Define the maximum tolerable downtime, or recovery time objective (RTO), and maximum tolerable data loss expressed as time, or recovery point objective (RPO). “Operational again within four hours, with no more than one hour of data loss” would be a fictional target. An exercise must establish whether backups and recovery can meet it.

A second server helps only if failover works and the required data, DNS, authentication and keys are available. A second internet connection likewise needs infrastructure that is as independent as possible. A backup supports recovery; it does not automatically keep the application available during an outage.

What does digital sovereignty mean for security?

Self-hosting can reduce dependencies. It also transfers responsibility for updates, access, monitoring and recovery to the operator. A local AI model remains usable during a connection failure only if data, authentication, processing, power and hardware are also available.

Well-managed hosting with tested backups may suit a small website. A business-critical platform may require separate backup locations, prepared replacement systems and a mode with reduced functionality. The requirements of the actual process determine the choice. My article on digital sovereignty and cloud dependencies explores the trade-offs.

Common questions about securing web projects

Is a WordPress update sufficient for the PHP vulnerabilities listed here?

No. These vulnerabilities are in PHP core. Also check the PHP build the web server actually uses. The vendor or provider advisory is authoritative for that assessment. [1]

Is an application automatically secure because it runs in Docker?

Using Docker does not establish that its software is current. Check the packages inside the image and deploy a newly built image where needed. Running containers do not automatically pick up a Dockerfile change.

Can AI replace security patches or a security review?

AI can support analysis, testing and prioritisation. Whether a fix is active in production and permissions are enforced requires technical checks. An AI response alone does not establish either.

How much outage protection does an SME need?

That depends on the business impact of downtime and data loss. Define RTO and RPO first. Then test whether backups, contingency procedures and recovery achieve those targets.

Assess one project against clear completion criteria

Choose a production application. Document its active security state, test recovery and assess the failure of an important service. This produces concrete actions and responsibilities.

If an AI application is already running or approaching go-live, I can assess its relevant permissions, failure cases and operating boundaries with you in an AI Production Readiness & Reliability Sprint. The scope is bounded to the actual workflow; comprehensive penetration testing is a separate assessment.

Primary sources and research date

Vendor advisories and original analyses, accessed on 28 October 2026. My recommendations and fictional examples are identified as such above.

  1. PHP: security advisory and releases of 21 October 2026
  2. Cisco Talos: Two critical RCEs in PHP core, including the 22 October update
  3. Node.js: security releases of 21 October 2026
  4. Next.js: security update of 14 October 2026
  5. Microsoft Security: ChainDrop supply chain compromise
  6. PHP Foundation: security release, AI-assisted research and processes
  7. OWASP: Agentic AI; OWASP: Prompt Injection
  8. Internet Society: Critical Properties of the Internet
  9. Cloudflare: outage report for 18 November 2025
  10. npm: how the audit command works and its limitations

Image note: the two conceptual illustrations were generated with AI. The labelled layer diagram was constructed from the assessment model described above. The images do not document a real installation.

Next step

Sounds relevant for your company?

In a no-obligation initial call, we clarify within 30 minutes whether and where getting started is worthwhile for you — honestly and without sales pressure.

Request an initial call