
Rust 기반 익스플로잇 생성기로, CVE-2026-29000(JWE에 중첩된 alg:none JWT를 통한 pac4j-jwt 인증 우회)을 대상으로 하며, 승인된 테스트를 위한 JWKS 검색 및 토큰 위조를 자동화합니다.
이 저장소는 pac4j-jwt의 인증 우회 취약점인 CVE-2026-29000을 악용하기 위한 전문 Rust 구현체를 포함합니다. 이 취약점은 암호화된 JWE 컨테이너 내부에 PlainJWT(alg: none)가 중첩되어 있을 때 "서명 검증 건너뛰기"에서 발생합니다.
자동 JWKS 검색: 대상의 공개 RSA 키를 /api/auth/jwks 엔드포인트에서 직접 가져옵니다.
비보안 JWS 구성: 관리자 권한(ROLE_ADMIN)을 포함한 None 알고리즘 JWT를 생성합니다.
JWE 래퍼: RSA-OAEP-256 및 A128GCM을 사용하여 악성 내부 토큰을 캡슐화하여 초기 경계 필터를 우회합니다.
비동기 실행: 효율적인 네트워킹을 위해 tokio와 reqwest를 사용합니다.
Rust/Cargo 설치.
대상에 대한 네트워크 접근 (기본값: http://principal.htb:8080).
설치 저장소를 클론합니다:
git clone https://github.com/0xW1LD/CVE-2026-29000.git
cd CVE-2026-29000
위조된 JWE를 출력하려면 익스플로잇 생성기를 실행합니다:
cargo run
이 익스플로잇은 라이브러리가 외부 JWE를 복호화하지만, 헤더에 alg: none이 지정된 경우 내부 JWS의 서명을 재귀적으로 검증하지 못하는 논리적 결함을 대상으로 합니다.
내부 레이어: 관리자 주체를 포함한 alg: None의 JWT.
외부 레이어: 내부 JWT는 서버 자체의 공개 키로 암호화됩니다.
결과: 서버는 토큰을 복호화하고, 올바르게 암호화되었음을 확인한 후 서명을 확인하지 않고 내부 페이로드를 신뢰합니다.
이 도구는 교육 목적 및 승인된 보안 테스트(CTF/랩 환경) 전용입니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다.