Next.js's October Security Update: Patch the App You Actually Run

Yves Soete
Yves Soete

4 min read · Oct 19, 2026

Next.js's October 14 update fixes two critical remote-code-execution issues and a denial-of-service issue. Upgrade, rebuild every deployment, and use external scanning to review the application that is actually running.

A dependency update is only useful when the fixed dependency reaches the service handling requests. That sounds obvious until a team discovers an old preview, a worker image built from an earlier lockfile, or a replica that missed the rollout. The latest Next.js security release is a reason to verify the full deployment path.

What the October release addresses

On October 14, 2026, the Next.js team released 16.4.1 and 15.5.28 with security fixes. Its announcement describes unauthenticated code execution involving Cache Components and typed arrays, code execution through image optimization on glibc-based Linux, and a CPU-exhaustion issue involving App Router Server Actions. Read the official Next.js security update.

The image issue involves an upstream library; the announcement identifies sharp 0.35.5 or later as the relevant workaround for that issue. It provides no known workaround for the affected cache behavior and recommends upgrading. Match your deployment to the individual advisories rather than assuming every Next.js application has identical exposure.

The dependency tree is part of the application

An image endpoint is still a server-side parser. A caching helper still handles serialized data. Teams reviewing security should include framework-generated routes and supporting libraries in the same inventory as their handwritten APIs. The absence of a custom upload handler does not make image processing irrelevant.

Keep an inventory of the framework version, resolved runtime packages, base image, and enabled features for each deployment. That makes an advisory actionable: the owner can find affected services and record which fixed build replaced them. Repository declarations are useful, but the installed dependency tree is what the running process uses.

Make the update reach every serving instance

  1. Update to the fixed Next.js release for your supported branch, or a compatible later release containing the fixes. Refresh and review the lockfile.
  2. Build a fresh deployment artifact and verify its resolved dependencies. Account for package overrides that could retain an older transitive dependency.
  3. Test image rendering, cache behavior, and server actions in staging. Include representative error paths and confirm normal requests still succeed.
  4. Replace all affected instances, including previews and secondary environments. Record the deployed image or release identifier and confirm the rollout completed.

Use BlackSight to check the deployed surface

BlackSight's technology scan can identify exposed technologies and match supported version evidence against known CVEs. That can help find an old deployment left in your target inventory. Identification depends on what the site reveals, so retain runtime and package evidence for deployments whose exact versions are not public.

Run web and API scans on the relevant routes after the update, and use headers and SSL scans to check the protections delivered through your proxy or CDN. These checks can uncover supported application and configuration weaknesses alongside the patch work. They do not establish that a hidden native library is fixed or that every code-execution path has been tested.

BlackSight's JavaScript audit examines identifiable libraries loaded by the page. A server-only image-processing dependency may never appear there. Use the deployed dependency inventory for that verification and external scanning for what an outside client can observe.

Schedule follow-up scans so later releases receive the same review, and connect findings to the person responsible for fixing each service. Our runtime and build-time security guide explains how these two kinds of evidence complement each other.

Version 1.0.77