
CVE-2026-29000에 대한 개념 증명 익스플로잇으로, JWE로 래핑된 서명되지 않은 JWT를 통한 pac4j-jwt의 인증 우회로 권한 상승을 가능하게 합니다.
이 도구는 교육 및 윤리적 보안 테스트 목적으로만 사용됩니다. 저는 어떤 형태로든 위협 행위를 지지하거나 지원하지 않습니다. 사용에 따른 책임은 본인에게 있습니다.
CVE-2026-29000은 pac4j-jwt 라이브러리의 치명적인 취약점(CVSS 10.0)입니다. 이 취약점은 중첩된(암호화된) 토큰을 처리할 때 JwtAuthenticator의 잘못된 검증 로직에서 비롯됩니다.
이 결함은 pac4j가 서버의 키를 사용하여 JWE(JSON Web Encryption) 토큰을 올바르게 복호화하지만, 내부 JWT에 대한 서명 검증을 강제하지 않기 때문에 발생합니다. 이를 통해 공격자는 서명되지 않은 JWT({"alg": "none"} 사용)를 유효한 JWE 래퍼 안에 감쌀 수 있습니다. 서버는 JWE를 복호화하고 내부 페이로드를 신뢰하여 접근을 허용합니다.
4.5.9, , 이전의 버전.5.7.96.3.3pac4jROLE_ADMIN 획득).제공된 스크립트 CVE-2026-29000.py는 다음 단계를 자동화합니다:
/api/auth/jwks 엔드포인트를 통해 대상의 공개 RSA 키를 검색합니다.alg: none 및 관리자 권한 클레임을 포함한 서명되지 않은 JWT를 생성합니다.필요한 Python 라이브러리가 설치되어 있는지 확인하세요:
pip install requests jwcrypto
python3 CVE-2026-29000.py <TARGET_URL>
예시:
python3 CVE-2026-29000.py http://vulnerable-app.local:8080
이 취약점을 완화하려면 다음 조치를 취하세요:
pac4j-jwt를 즉시 버전 4.5.9, 5.7.9 또는 6.3.3(이상)으로 업그레이드하세요.JwtAuthenticator 구성이 유효한 서명을 명시적으로 요구하고 none 알고리즘을 허용하지 않도록 하세요.제작자: Cipher1x1