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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-71206-PoC — PoC: Shiori JWT CheckToken이 계정 상태를 재검증하지 않음 (CVE-2026-71206, 높음 8.2) | Kitploit
도구/GitHubGitHub/nel-droid/cve-2026-71206-poc
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityAuthentication
GitHubnel-droid/cve-2026-71206-poc

CVE-2026-71206-PoC

PoC: Shiori JWT CheckToken이 계정 상태를 재검증하지 않음 (CVE-2026-71206, 높음 8.2)

저장소 보기
524일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-71206 — Shiori: JWT CheckToken이 계정 상태를 다시 검증하지 않음

Product: go-shiori/shiori File: internal/domains/auth.go CWE: CWE-613 — 불충분한 세션 만료 CVSS 3.1: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L — 8.2 (높음) CNA: Turan Security · CVE 레코드

설명

Shiori의 CheckToken 함수(internal/domains/auth.go)는 JWT의 HMAC 서명만 검증하고 포함된 claims.Account 객체를 수정하지 않은 채 반환합니다. 즉, 각 요청 시 데이터베이스에서 계정을 다시 가져오지 않습니다. 코드베이스 어디에도 세션 저장소나 토큰 폐기 메커니즘이 존재하지 않습니다.

영향

JWT가 한 번 발급되면 이후 계정에 어떤 일이 발생하든 수명이 다할 때까지 완전히 유효합니다. 관리자가 사용자를 삭제하거나 권한을 강등하거나, 침해가 의심된 후 사용자 비밀번호가 교체된 경우, 해당 계정에 변경 전에 발급된 모든 JWT는 토큰에 포함된 원래 클레임(역할, 계정 ID 등)으로 계속 인증에 성공합니다. 이를 무효화할 서버 측 상태가 존재하지 않습니다.

재현

  1. 사용자로 인증하고 발급된 JWT를 캡처합니다(예: POST /api/v1/auth/login).
  2. 관리자로 계정을 삭제하거나 사용자 역할을 강등합니다.
  3. 인증이 필요한 모든 엔드포인트에 원래 JWT를 재전송합니다:
    root@kitploit:~
    GET /api/bookmarks
    Authorization: Bearer <original JWT>
    
  4. 이 요청은 오래된 클레임으로 성공합니다. CheckToken이 서명만 확인하고 현재 DB 상태는 전혀 확인하지 않기 때문에 삭제/강등된 계정이 여전히 접근 권한을 갖습니다.

근본 원인

CheckToken은 JWT 페이로드를 계정 상태의 신뢰 소스로 간주합니다. JWT를 사용 시마다 데이터베이스와 대조해 다시 검증(또는 폐기 목록과 대조)해야 하는 Bearer 자격 증명으로 취급하는 대신 말입니다.

수정 권장 사항

포함된 클레임을 그대로 신뢰하는 대신, 모든 인증 요청에서 계정을 ID로 다시 가져오거나(또는 최소한 계정 삭제, 권한 강등, 비밀번호 변경 시 무효화되는 토큰 ID(jti)를 키로 하는 폐기/세션 저장소와 대조하여) 검증해야 합니다.

도구 다운로드