
이 저장소는 Apache HTTP Server 2.4.66 `mod_http2`의 Double Free 취약점(CVE-2026-23918)을 시연하는 PoC(Proof of Concept)를 포함하고 있습니다.
이 저장소는 Apache HTTP Server 2.4.66 mod_http2의 Double Free 취약점(CVE-2026-23918)을 입증하는 PoC(Proof of Concept)를 포함하고 있습니다.
이 취약점은 초기 RST_STREAM 프레임 처리 중 발생하는 경쟁 조건(race condition)에서 비롯됩니다. 세션 핸들러와 백엔드 워커가 모두 스트림의 메모리 풀을 해제하려 시도하는 타이밍 윈도우에 초점을 맞추었으며, 이로 인해 APR 할당기에서 이중 해제(double free)가 발생합니다.
크래시 트리거: 로컬에서 경쟁 조건을 성공적으로 유발했습니다. Apache 자식 프로세스가 세그멘테이션 오류(11)로 종료됩니다.
DoS 상태: 현재 단계에서 PoC는 할당기의 자유 목록(free list)을 손상시켜 신뢰할 수 있는 서비스 거부(Denial of Service)를 달성합니다.
크래시에서 코드 실행으로 발전시키기 위해서는 다음 영역에 대한 추가 작업이 필요합니다:
힙 그루밍(Heap Grooming): 손상된 청크가 예측 가능한 구조와 겹치도록 힙을 안정화합니다.
제어 흐름(Control Flow): apr_pool_cleanup_register 또는 유사한 함수 포인터를 덮어써 실행 흐름을 리디렉션합니다.
ROP 체인: 명령 포인터를 제어한 후 NX/ASLR을 우회하기 위한 체인을 구축합니다.
Dockerfile: HTTP/2가 활성화된 취약한 2.4.66 인스턴스를 설정합니다.
poc.py: 빠른 프레임 시퀀싱을 통해 경쟁 조건을 유발하도록 설계된 스크립트입니다.