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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-4444-JWT-Algorithm-Confusion-via-kid-Injection — POC для CVE-2026-4444, демонстрирующий подмену алгоритма JWT через внедрение недоверенного значения kid, включая уязвимый сервер на Node.js и эксплойт на Python для подделки токенов и повышения привилегий. | Kitploit
Инструменты/GitHubGitHub/george0papasotiriou/cve-2026-4444-jwt-algorithm-confusion-via-kid-injection
Аутентификация и авторизацияЭксплуатацияЭксплуатация веб-приложенийКриптографияОбучение и ОбразованиеБезопасность APIЛаборатории и Практика
GitHubgeorge0papasotiriou/cve-2026-4444-jwt-algorithm-confusion-via-kid-injection

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

CVE-2026-4444-JWT-Algorithm-Confusion-via-kid-Injection

POC для CVE-2026-4444, демонстрирующий подмену алгоритма JWT через внедрение недоверенного значения kid, включая уязвимый сервер на Node.js и эксплойт на Python для подделки токенов и повышения привилегий.

Репозиторий
18 дней назадЕщё не проверено

CVE-2026-4444 – Подмена алгоритма JWT через инъекцию kid

Программный код (Node.js сервер + Python эксплойт)

root@kitploit:~
// jwt_server.js - Vulnerable JWT verification server
const express = require('express');
const jwt = require('jsonwebtoken');
const jwksClient = require('jwks-rsa');
const axios = require('axios');

const app = express();
app.use(express.json());

// Normally fetches public key from a JWKS endpoint, but vulnerable kid handling
async function getPublicKey(kid) {
    // Attacker can inject a kid that points to their own URL
    if (kid.startsWith('http://') || kid.startsWith('https://')) {
        // Fetch the key from attacker-controlled URL (INSECURE!)
        const response = await axios.get(kid);
        return response.data.publicKey; // expects PEM
    }
    // Otherwise use local JWKS (simulated)
    return `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCYZM5rPY4
...
-----END PUBLIC KEY-----`;
}

app.post('/api/verify', async (req, res) => {
    const token = req.body.token;
    const decoded = jwt.decode(token, { complete: true });
    const kid = decoded.header.kid;
    try {
        const publicKey = await getPublicKey(kid);
        const payload = jwt.verify(token, publicKey, { algorithms: ['RS256','HS256'] });
        res.json({ status: 'authenticated', user: payload.sub });
    } catch (e) {
        res.status(401).json({ error: e.message });
    }
});

app.listen(3000, () => console.log('JWT server on :3000'));

CVE-2026-4444 – Подмена алгоритма JWT через инъекцию kid

Severity: Critical

Обзор

Сервис проверки JWT слепо доверяет заголовку kid для поиска публичного ключа, что позволяет атакующему указать URL, ведущий на его собственный ключ. Это приводит к полной подделке токенов и повышению привилегий.

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

  • Тип: Подмена алгоритма JWT / SSRF
  • Воздействие: Несанкционированный доступ, выдача себя за администратора.
  • Корневая причина: Сервер получает публичный ключ из управляемого пользователем URI kid, не проверяя, что он принадлежит доверенному источнику.

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

  1. Запустите уязвимый сервер:
    root@kitploit:~
    node jwt_server.js
    
  2. Запустите эксплойт (он также запускает поддельный ключевой сервер):
    root@kitploit:~
    python exploit_jwt_kid.py
    
Скачать инструмент