Skip to content

Commit 38cfd89

Browse files
authored
Merge pull request #1783 from HackTricks-wiki/research_update_src_network-services-pentesting_pentesting-web_nextjs_20260120_020841
Research Update Enhanced src/network-services-pentesting/pen...
2 parents 836ec21 + d59e20e commit 38cfd89

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

  • src/network-services-pentesting/pentesting-web

src/network-services-pentesting/pentesting-web/nextjs.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1432,6 +1432,20 @@ python3 scanner.py -u https://target.tld --path /app/api/submit --safe-check
14321432
python3 scanner.py -l hosts.txt -t 20 --waf-bypass -o vulnerable.json
14331433
```
14341434

1435+
### Other recent App Router issues (late 2025)
1436+
1437+
1. **RSC DoS & source disclosure (CVE-2025-55184 / CVE-2025-67779 / CVE-2025-55183)** – malformed Flight payloads can spin the RSC resolver into an infinite loop (pre-auth DoS) or force serialization of compiled Server Function code for other actions. App Router builds ≥13.3 are affected until patched; 15.0.x–16.0.x need the specific patch lines from the upstream advisory. Reuse the normal Server Action path but stream a `text/x-component` body with abusive `$` references. Behind a CDN the hung connection is kept open by cache timeouts, making the DoS cheap.
1438+
- **Triage tip:** Unpatched targets return `500` with `E{"digest"` after malformed Flight payloads; patched builds return `400/200`. Test any endpoint already streaming Flight chunks (look for `Next-Action` headers or `text/x-component` responses) and replay with a modified payload.
1439+
1440+
2. **RSC cache poisoning (CVE-2025-49005, App Router 15.3.0–15.3.2)** – missing `Vary` let an `Accept: text/x-component` response get cached and served to browsers expecting HTML. A single priming request can replace the page with raw RSC payloads. PoC flow:
1441+
```bash
1442+
# Prime CDN with an RSC response
1443+
curl -k -H "Accept: text/x-component" "https://target/app/dashboard" > /dev/null
1444+
# Immediately fetch without Accept (victim view)
1445+
curl -k "https://target/app/dashboard" | head
1446+
```
1447+
If the second response returns JSON Flight data instead of HTML, the route is poisonable. Purge cache after testing.
1448+
14351449
## References
14361450

14371451
- [Pentesting Next.js Server Actions — A Burp Extension for Hash-to-Function Mapping](https://www.adversis.io/blogs/pentesting-next-js-server-actions)
@@ -1440,5 +1454,7 @@ python3 scanner.py -l hosts.txt -t 20 --waf-bypass -o vulnerable.json
14401454
- [CVE-2025-55182 & CVE-2025-66478 React2Shell – All You Need to Know](https://jfrog.com/blog/2025-55182-and-2025-66478-react2shell-all-you-need-to-know/)
14411455
- [0xdf – HTB Previous (Next.js middleware bypass, static export recon, NextAuth config leak)](https://0xdf.gitlab.io/2026/01/10/htb-previous.html)
14421456
- [assetnote/react2shell-scanner](https://github.com/assetnote/react2shell-scanner)
1457+
- [Next.js Security Update: December 11, 2025 (CVE-2025-55183/55184/67779)](https://nextjs.org/blog/security-update-2025-12-11)
1458+
- [GHSA-r2fc-ccr8-96c4 / CVE-2025-49005: App Router cache poisoning](https://github.com/advisories/GHSA-r2fc-ccr8-96c4)
14431459

14441460
{{#include ../../banners/hacktricks-training.md}}

0 commit comments

Comments
 (0)