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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-21003-JWT-none-Algorithm-Bypass-via-kid-Header-Omission — CVE-2026-21003에 대한 개념 증명 익스플로잇으로, `kid` 헤더를 생략하고 'none' 알고리즘을 사용하여 JWT 인증 우회를 통해 사용자를 가장하는 방법을 시연합니다. | Kitploit
도구/GitHubGitHub/george0papasotiriou/cve-2026-21003-jwt-none-algorithm-bypass-via-kid-header-omission
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAPI SecurityAdversarial Attack
GitHubgeorge0papasotiriou/cve-2026-21003-jwt-none-algorithm-bypass-via-kid-header-omission

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-21003-JWT-none-Algorithm-Bypass-via-kid-Header-Omission

CVE-2026-21003에 대한 개념 증명 익스플로잇으로, `kid` 헤더를 생략하고 'none' 알고리즘을 사용하여 JWT 인증 우회를 통해 사용자를 가장하는 방법을 시연합니다.

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

CVE-2026-21003 – kid 헤더 생략을 통한 JWT "none" 알고리즘 우회

프로그램 코드 (Node.js)

root@kitploit:~
// jwt_verify_server.js - Vulnerable JWT verification
const jwt = require('jsonwebtoken');
const express = require('express');
const app = express();
app.use(express.json());

const publicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCYZM5rPY4...
-----END PUBLIC KEY-----`;

app.post('/verify', (req, res) => {
    const token = req.body.token;
    // Vulnerability: if no algorithm specified, defaults to HS256? Actually, jsonwebtoken can be tricked.
    // We simulate a custom verifier that accepts "none" if kid is missing.
    const decoded = jwt.decode(token, { complete: true });
    if (!decoded.header.alg || decoded.header.alg === 'none') {
        // Accept token without signature
        res.json({ status: 'authenticated', user: decoded.payload.sub });
    } else {
        jwt.verify(token, publicKey, { algorithms: ['RS256'] }, (err, payload) => {
            if (err) res.status(401).send('Invalid');
            else res.json({ status: 'authenticated', user: payload.sub });
        });
    }
});
app.listen(3000);

CVE-2026-21003 – kid 생략을 통한 JWT "none" 알고리즘 우회

Severity: Critical

개요

사용자 정의 JWT 검증기가 서명 알고리즘의 존재를 제대로 강제하지 않습니다. 토큰의 헤더가 alg 매개변수를 생략하거나 명시적으로 none으로 설정하면, 서버는 서명을 검증하지 않고 토큰을 수락하므로 권한 상승이 가능해집니다.

취약점 세부 정보

  • 유형: 인증 우회
  • 영향: 모든 사용자로의 위장이 가능합니다.
  • 근본 원인: 알고리즘 누락 시 코드 경로가 기본적으로 서명 검증을 건너뛰도록 되어 있습니다.

익스플로잇 데모

  1. 서버를 시작합니다:
    root@kitploit:~
    npm install express jsonwebtoken
    node jwt_verify_server.js
    
  2. 익스플로잇을 실행합니다:
    root@kitploit:~
    pip install pyjwt requests
    python exploit_jwt_none.py
    

응답에는 admin으로 인증된(authenticated) 상태가 표시됩니다.

도구 다운로드