Skip to content

GHSA-vcvr-r3jv-pc5j

Next.js: Remote Code Execution in next/og ImageResponse

Critical npm
Severity
0.0 / 10
Critical · CVSS 4.0
Exploit chance (EPSS)
1.08%
Chance of exploitation in the next 30 days. Higher than 65.17% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-1395 Dependency on Vulnerable Third-Party Component
Fix
16.3.6
Upgrade next to this version or later

Description

Impact

The Node.js ImageResponse implementation from next/og is affected by an upstream vulnerability. This can lead to remote code execution.

Affected applications pass attacker-controlled values into SVG content, attributes, or styles during image generation:

import { ImageResponse } from 'next/og'

export async function GET(request: Request) {
  const value = new URL(request.url).searchParams.get('value') ?? ''

  return new ImageResponse(
    <svg width="1200" height="630">
      <title>{value}</title>
    </svg>
  )
}

Applications using the Edge ImageResponse implementation, or applications that do not pass attacker-controlled values into SVG content, attributes, or styles, are not affected.

Workaround

If upgrading is not immediately possible, do not pass attacker-controlled values into SVG content, attributes, or styles rendered by the Node.js ImageResponse implementation from next/og.

Affected versions

npm

PackageVulnerableFixed in
next
>= 16.2.0, < 16.3.6
16.3.6

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

next npm → 16.3.6

npm
npm install next@16.3.6
yarn
yarn add next@16.3.6
pnpm
pnpm add next@16.3.6

Severity breakdown

CVSS 4.0 0.0

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Attack vector
Network
Attack complexity
Low
Attack requirements
Present
Privileges required
None
User interaction
None
Confidentiality (vulnerable system)
High
Integrity (vulnerable system)
High
Availability (vulnerable system)
High
Confidentiality (subsequent systems)
High
Integrity (subsequent systems)
High
Availability (subsequent systems)
High

Weakness

CWE-1395: Dependency on Vulnerable Third-Party Component

The product has a dependency on a third-party component that contains one or more known vulnerabilities.

How to prevent it
  • Requirements, Policy: In some industries such as healthcare [REF-1320] [REF-1322] or technologies such as the cloud [REF-1321], it might be unclear about who is responsible for applying patches for third-party vulnerabilities: the vendor, the operator/customer, or a separate service. Clarifying roles and responsibilities can be important to minimize confusion or unnecessary delay when third-party vulnerabilities are disclosed.
  • Requirements: Require a Bill of Materials for all components and sub-components of the product. For software, require a Software Bill of Materials (SBOM) [REF-1247] [REF-1311].
  • Architecture and Design, Implementation, Integration, Manufacturing: Maintain a Bill of Materials for all components and sub-components of the product. For software, maintain a Software Bill of Materials (SBOM). According to [REF-1247], "An SBOM is a formal, machine-readable inventory of software components and dependencies, information about those components, and their hierarchical relationships."
  • Operation, Patching and Maintenance: Actively monitor when a third-party component vendor announces vulnerability patches; fix the third-party component as soon as possible; and make it easy for operators/customers to obtain and apply the patch.
  • Operation, Patching and Maintenance: Continuously monitor changes in each of the product's components, especially when the changes indicate new vulnerabilities, end-of-life (EOL) plans, etc.

References

Timeline

  1. Published
  2. Last updated by the source
AdvisorySeverityWhy it's related
GHSA-wx4j-mvgx-mqwp
Satori-generated SVG has improper escaping
Medium Linked by the source
GHSA-673q-mjm6-r5xr
Next.js: Unauthenticated Remote Code Execution in `use cache` functions returning typed arrays
Critical Also affects next
GHSA-2464-fhr4-w9xw
Next.js: Unauthenticated Remote Code Execution in Image Optimization API when SVG files are used
Critical Also affects next
GHSA-p3m5-59mp-jv5r
Next.js: Denial of Service in App Router using Server Actions
High Also affects next
GHSA-3w37-wq28-93x7
Next.js: Pending `use cache` fill can leak Draft Mode content into regular responses and persisted pages
Medium Also affects next
GHSA-4jqv-mc3x-m676
Next.js has cache poisoning of SSG and ISR pages in self-hosted applications
Medium Also affects next
GHSA-39w2-rjm5-chcv
Next.js has information disclosure in development server's Model Context Protocol endpoint
Medium Also affects next
GHSA-f87g-xv8r-7p7x
Next.js has information disclosure in App Router metadata image routes via dynamicParams bypass
Medium Also affects next
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor