
# CVE-2026-29000 개념 증명 익스플로잇 JWE 컨테이너 내부에 `alg:none`이 포함된 중첩 PlainJWT를 통한 pac4j-jwt의 인증 우회 취약점에 대한 개념 증명 익스플로잇입니다.
이 저장소는 pac4j-jwt(CVE-2026-29000)의 인증 우회 취약점에 대한 개념 증명(POC)을 포함합니다. 이 취약점은 공격자가 JWE(JSON Web Encryption) 컨테이너 내부에 PlainJWT(alg: none 사용)를 중첩하여 서명 검증을 우회할 수 있게 합니다.
이 공격은 서버가 공개 키로 암호화된 JWE를 복호화하고, 내부 JWT가 none 알고리즘을 사용하는 경우 서명을 검증하지 않고 신뢰하려는 특성을 악용합니다.
Python 3과 필수 종속성이 설치되어 있는지 확인하세요:
pip install requests jwcrypto
exp.py를 사용하여 JWKS 엔드포인트에서 대상의 공개 키를 가져오고, ROLE_ADMIN 권한이 포함된 악성 토큰을 생성한 후 JWE로 래핑합니다.
python3 exp.py <TARGET_URL> --user admin --role ROLE_ADMIN
예시:
python3 exp.py http://localhost:8080
위조 토큰을 확보한 후 app.py를 사용하여 보호된 API 엔드포인트와 상호 작용합니다.
python3 app.py <TARGET_URL> <FORGED_TOKEN>
특정 엔드포인트 테스트:
python3 app.py http://localhost:8080 <FORGED_TOKEN> --endpoint /api/users
exp.py: JWKS를 가져오고, PlainJWT를 생성하며, JWE를 위조하는 주요 익스플로잇 스크립트.app.py: 발견된 API 엔드포인트(/api/dashboard, /api/users, /api/settings)에 대해 위조 토큰을 테스트하는 유틸리티 스크립트.이 POC는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다.