Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-21003-JWT-none-Algorithm-Bypass-via-kid-Header-Omission — Эксплойт, подтверждающий концепцию, для CVE-2026-21003, демонстрирующий обход аутентификации JWT путём опускания заголовка kid и использования алгоритма 'none' для выдачи себя за пользователей. | Kitploit
Инструменты/GitHubGitHub/george0papasotiriou/cve-2026-21003-jwt-none-algorithm-bypass-via-kid-header-omission
Аутентификация и авторизацияАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность APIСостязательная Атака
GitHub

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
george0papasotiriou/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, демонстрирующий обход аутентификации JWT путём опускания заголовка kid и использования алгоритма 'none' для выдачи себя за пользователей.

Репозиторий
171 месяц назадЕщё не проверено

CVE-2026-21003 – Обход алгоритма JWT "none" через пропуск параметра kid в заголовке

Программный код (Node.js)

// 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 – Обход алгоритма JWT "none" через пропуск kid

Severity: Critical

Обзор

Кастомный верификатор JWT не обеспечивает надлежащей проверки наличия алгоритма подписи. Если в заголовке токена отсутствует параметр alg или он явно задан как none, сервер принимает токен без проверки подписи, что позволяет повысить привилегии.

Детали уязвимости

  • Тип: Обход аутентификации
  • Воздействие: Подмена любого пользователя.
  • Корневая причина: Ветвь кода для отсутствующего алгоритма по умолчанию пропускает проверку подписи.

Демонстрация эксплойта

  1. Запустите сервер:
    npm install express jsonwebtoken
    node jwt_verify_server.js
    
  2. Запустите эксплойт:
    pip install pyjwt requests
    python exploit_jwt_none.py
    

В ответе отображается аутентификация от имени admin.

Скачать инструмент