Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-29000-Lab — # CVE-2026-29000 데모: pac4j-jwt 라이브러리 수준 PoC 랩 pac4j-jwt의 CVE-2026-29000을 시연하는 라이브러리 수준의 개념 증명 랩으로, Docker를 사용해 취약한 버전과 패치된 버전을 비교하여 위조된 JWT의 수용 및 거부를 보여줍니다. | Kitploit
도구/GitHubGitHub/rootdirective-sec/cve-2026-29000-lab
Vulnerability AnalysisExploitationWeb SecurityAuthentication
GitHubrootdirective-sec/cve-2026-29000-lab

CVE-2026-29000-Lab

# CVE-2026-29000 데모: pac4j-jwt 라이브러리 수준 PoC 랩 pac4j-jwt의 CVE-2026-29000을 시연하는 라이브러리 수준의 개념 증명 랩으로, Docker를 사용해 취약한 버전과 패치된 버전을 비교하여 위조된 JWT의 수용 및 거부를 보여줍니다.

저장소 보기
15개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-29000 — pac4j-jwt 라이브러리 수준 PoC 랩

TL;DR

이 저장소는 pac4j-jwt의 CVE-2026-29000에 대한 라이브러리 수준 PoC를 포함합니다.

취약한 버전과 패치된 버전의 동작을 두 가지 사례로 비교합니다:

  • 기준(Baseline): 정상 토큰이 수락되어야 함
  • 공격(Attack): 위조된 토큰이 취약한 버전에서는 수락되고 패치된 버전에서는 거부되어야 함
버전기준공격결과
6.0.3✅✅취약
6.0.4.1✅✅취약
6.3.3✅❌패치됨

이 PoC는 취약한 버전에서 공격자가 제어하는 subject 및 역할로 인증된 프로필이 생성되는 것을 입증하며, 패치된 버전은 위조된 토큰을 거부합니다.


이 프로젝트가 무엇인가

이것은 웹 애플리케이션 데모가 아닙니다.

JwtAuthenticator를 직접 호출하고 Docker 내부에서 여러 버전의 pac4j-jwt를 비교하는 작은 Java 프로그램입니다.

목표는 세 가지를 입증하는 것입니다:

  1. 정상 토큰이 여전히 작동함
  2. 공격자가 제어하는 위조 클레임이 취약한 버전에서 수락됨
  3. 공격자가 제어하는 위조 클레임이 패치된 버전에서 거부됨

이러한 버전을 선택한 이유

테스트된 버전은 의도적으로 선택되었습니다:

  • 6.0.3 — 공개 기술 문서에서 이 버전에 대한 작동하는 PoC를 보고했기 때문에 포함
  • 6.0.4.1 — 공개 권고 데이터가 이 버전을 영향을 받는 6.x 범위 내에 배치하기 때문에 포함
  • 6.3.3 — 6.x 라인의 수정 릴리스이기 때문에 포함

이를 통해 랩은 세 가지 유용한 기준점을 제공합니다:

  • 공개 PoC 참조 버전
  • 권고로 확인된 영향 버전
  • 패치된 버전

프로젝트 구조

root@kitploit:~
.
├── docker-compose.yml
├── Dockerfile
├── pom.xml
└── src/main/java/lab/Repro.java

파일 역할

  • docker-compose.yml 각 버전에 대한 테스트 매트릭스를 정의합니다.

  • Dockerfile 컨테이너 내부에서 PoC를 빌드하고 실행합니다.

  • pom.xml 종속성을 정의하고 실행 가능한 fat JAR을 빌드합니다.

  • src/main/java/lab/Repro.java 실제 PoC 하네스입니다.


서비스가 의미하는 것

docker-compose.yml 파일은 세 가지 서비스를 정의합니다:

  • v603 = pac4j-jwt 6.0.3 테스트
  • v6041 = pac4j-jwt 6.0.4.1 테스트
  • patched = pac4j-jwt 6.3.3 테스트

따라서 다음 명령은 "특정 버전에 대해 PoC를 한 번 실행"을 의미합니다:

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

--rm은 실행이 끝난 후 임시 컨테이너가 제거됨을 의미합니다.


실행 방법

빌드

root@kitploit:~
docker compose build --no-cache

실행

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

PoC가 수행하는 작업

각 버전에 대해 프로그램은 두 가지 사례를 실행합니다.

1) 기준(Baseline)

정상 토큰을 생성하고 JwtAuthenticator를 통해 검증합니다.

예상 결과:

  • 모든 테스트 버전에서 수락됨

2) 공격(Attack)

공격자가 제어하는 클레임이 포함된 위조 토큰을 생성하고 JwtAuthenticator를 통해 검증합니다.

예상 결과:

  • 취약한 버전 → 위조된 신원 수락
  • 패치된 버전 → 위조된 토큰 거부

출력을 읽는 방법

취약한 버전 출력

다음과 같은 내용이 표시되어야 합니다:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: ACCEPTED
  observed_subject: admin#override
  observed_roles: [ROLE_SUPERUSER, ROLE_ADMIN]

[summary]
  conclusion: VULNERABLE: forged token accepted

의미:

  • 정상 토큰이 작동함
  • 위조된 토큰도 수락됨
  • subject 및 역할이 공격자가 제어하는 값으로 대체됨

패치된 버전 출력

다음과 같은 내용이 표시되어야 합니다:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: REJECTED
  reason: CredentialsException: A non-signed JWT cannot be accepted as signature configurations have been defined

[summary]
  conclusion: PATCHED: forged token rejected

의미:

  • 정상 토큰이 작동함
  • 위조된 토큰이 거부됨
  • 패치된 버전은 더 이상 공격이 사용하는 서명되지 않은 내부 JWT 경로를 수락하지 않음

이 저장소가 일반적인 토큰 스크립트 대신 라이브러리 동작에 초점을 맞추는 이유

이 CVE는 라이브러리 수준 인증 경로에 영향을 미치며, 단일한 보편적 역할 모델을 가진 단일 애플리케이션이 아닙니다.

재사용 가능한 부분은 공격 형태입니다:

  • 공격자가 제어하는 위조 클레임
  • JWE로 암호화
  • JwtAuthenticator에 전달

실제 애플리케이션에서 보편적이지 않은 것:

  • 클레임 이름
  • 역할 이름
  • 권한 부여 매핑
  • 키 자료 / JWKS 설정
  • 애플리케이션별 프로필 처리

이 때문에 이 저장소는 임의의 애플리케이션에 자동으로 작동하는 보편적인 토큰이 있다고 가정하는 대신, 취약한 버전에서 라이브러리가 공격자가 제어하는 위조 클레임을 수락한다는 것을 입증하는 데 초점을 맞춥니다.


스크린샷

  1. docker compose run --rm v603
  2. docker compose run --rm v6041
  3. docker compose run --rm patched

취약한 버전: 6.0.3

example 603 output

취약한 버전: 6.0.4.1

example 6041 output

패치된 버전: 6.3.3

example patched output


참고 자료

  • JwtAuthenticator에 대한 pac4j 보안 권고
  • GitHub Advisory Database: CVE-2026-29000
  • NVD 항목: CVE-2026-29000
  • CodeAnt 기술 문서: 공개 키 인증 우회 PoC

최종 요약

이 프로젝트는 세 가지 핵심 사실을 입증합니다:

  1. 정상 기준 토큰은 모든 테스트 버전에서 수락됨
  2. 공격자가 제어하는 위조 클레임은 6.0.3 및 6.0.4.1에서 수락됨
  3. 공격자가 제어하는 위조 클레임은 6.3.3에서 거부됨

이것이 이 저장소에서 이 CVE에 대한 핵심 취약-대-패치 증거입니다.

취약한 버전에서 위조된 토큰은 단순히 파싱되는 것이 아니라 공격자가 제어하는 subject 및 역할로 인증된 프로필을 생성합니다.

도구 다운로드