
CVE-2026-25243을 대상으로 하는 신뢰할 수 있는 원격 코드 실행 익스플로잇으로, jemalloc Redis를 공격합니다. DEBUG, /proc 또는 ROP 없이 단일하게 조작된 RESTORE 명령을 통해 임의 명령을 실행합니다. ASLR 우회를 위한 전체 힙 그루밍 및 임의 읽기 체인을 포함합니다.
단일하게 조작된 RESTORE 하나로 jemalloc Redis에서 동작하는 신뢰할 수 있는 원격 코드 실행 —
DEBUG 명령 없이, /proc 없이, gdb 없이, ROP 없이, ASLR이 켜진 상태에서도 동작합니다. 공격자의 명령을
redis 프로세스 권한으로 실행합니다(기본 이미지에서는 root).
🔒 비공개 저장소 — 승인된 보안 연구 / 사전 공개 조정 전용. 재배포하지 마십시오. 이 버그는 업스트림에서 수정되었습니다(6.2.22 / 7.2.14 / 7.4.9 / 8.2.6 / 8.4.3 / 8.6.3, 커밋
b9dde6fc); 이 도구는 수정 전 경로를 대상으로 합니다.
기법은 엔드투엔드로 입증되었습니다 — 참조 하네스에서 새로 실행했을 때
system("id") → uid=0(root) (ASLR 켜짐, enable-debug-command no)가 실행되었으며, 2026-07-02에 확인되었습니다.
이 단일 파일 재패키징에서는 초기 단계가 작동이 확인되었지만(double-free, overlap,
arb-read → PIE와 모두 올바르게 복구됨), 최종 누출 —
를 통한 — 은 하며, 포함된 상수가
의 groom(반복 )으로 깔끔하게 이전되지 않았습니다. (WRITEUP.md §7)한 후에 의존하십시오. 참조 실행 코드는
개발 하네스 /입니다. 그 외의 모든 것은 검증되었습니다.
systemOFF_BLOBROBJblob_baseexploit.pyblob_read_shortOFF_BLOBROBJ를 다시 보정pwn.pypwnd.pyexploit.py — 독립형 PoC(표준 라이브러리만 사용). 상단의 PROFILE 딕셔너리에서 오프셋을 빌드하십시오.WRITEUP.md — 전체 기술 분석(버그, groom, DEBUG 없는 arb-read, 결정성, 마무리).python3 exploit.py --host <target> --port 6379 --cmd 'id' --tries 40
# redis 프로세스 권한으로 system("<cmd>")를 실행합니다. 대역외로 확인하거나 --cmd로 리버스 셸을 사용하십시오.
Redis 8.6.2 (8a8f1a3bb), jemalloc-5.3.0, x86-64, glibc bookworm, ASLR=2,
enable-debug-command no에서 검증됨. 다른 빌드에서는 PROFILE 오프셋을 다시 보정하십시오 —
WRITEUP.md §7 참조.
EVAL→clo → arb-read PIE (clo+33) → arb-read system (free@GOT) + blob_base (blob_robj)
→ 16MB blob에 가짜 dictType{hashFunction=system} 배치 → h2->dict->type 위조 → HGET h2 "<cmd>"
== system("<cmd>").