
# Коллекция PoC по безопасности Next.js v16.2.4 (CVE-2026-23870, CVE-2026-44575, CVE-2026-44579, CVE-2026-44574, CVE-2026-44578, CVE-2026-44573, CVE-2026-44581, CVE-2026-44580, CVE-2026-44577, CVE-2026-44576, CVE-2026-44582, CVE-2026-44572)
В этом репозитории собраны материалы proof-of-concept, восстановленные методом обратной разработки, для проблем безопасности, исправленных в Next.js v16.2.5. В корне репозитория находится анализ окна релиза, а в poc/ — по одному комплекту PoC на каждый бюллетень.
Эта коллекция была восстановлена с помощью Neo by ProjectDiscovery. Публичное рабочее пространство: https://neo.projectdiscovery.io/share/d250e203-4313-4be3-b108-837c2f8ea693
Все описанные здесь проблемы публично раскрыты и исправлены. Материал предназначен для оборонительных исследований, регрессионного тестирования и работ по обнаружению.
SUMMARY.md — анализ диффа коммитов для v16.2.4..v16.2.5, включая коммиты, связанные с безопасностью, которые привели к созданию этой коллекции.poc/README.md — полная матрица бюллетеней, разбивка по критичности, примечания по моделям хостинга и подробная методология создания PoC.poc/<advisory>/ — по одному каталогу на каждый GHSA/CVE, обычно содержащему:
README.md — описание проблемы и цепочка эксплуатацииvulnerable-code.md — релевантные фрагменты исходного кода до исправленияpatch.diff — исправление от разработчиков или ближайший публичный материал по патчуexploit.py и exploit.sh — исполняемые примитивы эксплойтовexpected-output.txt — эталонное поведениеvulnerable-app/ — минимальное приложение Next.js или заглушка-сервис для воспроизведенияЭтот репозиторий охватывает 12 бюллетеней, исправленных в окне релиза v16.2.4..v16.2.5:
| Каталог | Бюллетень | Критичность | Направленность |
|---|---|---|---|
poc/CVE-2026-23870_GHSA-8h8q-6873-q5fj/ | CVE-2026-23870 / GHSA-8h8q-6873-q5fj | Высокая | Отказ в обслуживании через поток серверных действий React |
poc/CVE-2026-44575_GHSA-267c-6grr-h53f/ | CVE-2026-44575 / GHSA-267c-6grr-h53f | Высокая | Обход middleware при предварительной выборке App Router |
poc/CVE-2026-44579_GHSA-mg66-mrh9-m8jx/ | CVE-2026-44579 / GHSA-mg66-mrh9-m8jx | Высокая | Истощение соединений через next-resume |
poc/CVE-2026-44574_GHSA-492v-c6pp-mqqv/ | CVE-2026-44574 / GHSA-492v-c6pp-mqqv | Высокая | Несоответствие динамических маршрутов и middleware |
poc/CVE-2026-44578_GHSA-c4j6-fc7j-m34r/ | CVE-2026-44578 / GHSA-c4j6-fc7j-m34r | Высокая | SSRF через апгрейд WebSocket, только self-hosted |
poc/CVE-2026-44573_GHSA-36qx-fr4f-26g5/ | CVE-2026-44573 / GHSA-36qx-fr4f-26g5 | Высокая | Обход i18n data-route в Pages Router |
poc/CVE-2026-44581_GHSA-ffhc-5mcf-pf4q/ | CVE-2026-44581 / GHSA-ffhc-5mcf-pf4q | Умеренная | Крайний случай разбора nonce в CSP |
poc/CVE-2026-44580_GHSA-gx5p-jg67-6x7h/ | CVE-2026-44580 / GHSA-gx5p-jg67-6x7h |
Подробная информация о критичности, CVSS, соответствии CWE и применимости к хостингу находится в poc/README.md.
SUMMARY.md для анализа окна релиза.poc/README.md для полной таблицы бюллетеней и обзора поверхности атак.README.md.Запуск одного PoC:
TARGET=http://localhost:3000 ./poc/CVE-2026-44574_GHSA-492v-c6pp-mqqv/exploit.sh
Запуск всей коллекции:
TARGET=http://localhost:3000 ./poc/run-all.sh
Большинство эксплойтов предполагают уязвимую цель Next.js v16.2.4. В некоторых каталогах вместо этого поставляется небольшая заглушка-сервис в vulnerable-app/, когда воспроизведение ошибки на полной установке Next.js потребовало бы слишком много усилий по настройке.
next@>=16.2.5, чтобы получить исправления от разработчиков.| Умеренная |
XSS через next/script beforeInteractive |
poc/CVE-2026-44577_GHSA-h64f-5h5j-jqjh/ | CVE-2026-44577 / GHSA-h64f-5h5j-jqjh | Умеренная | Бомба декомпрессии в оптимизаторе изображений, только self-hosted |
poc/CVE-2026-44576_GHSA-wfc6-r584-vfw7/ | CVE-2026-44576 / GHSA-wfc6-r584-vfw7 | Умеренная | Путаница кэша RSC и HTML |
poc/CVE-2026-44582_GHSA-vfv6-92ff-j949/ | CVE-2026-44582 / GHSA-vfv6-92ff-j949 | Низкая | Слабый хэш сброса кэша _rsc |
poc/CVE-2026-44572_GHSA-3g8h-86w9-wvmq/ | CVE-2026-44572 / GHSA-3g8h-86w9-wvmq | Низкая | Отравление кэша через редирект x-nextjs-data |