Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/george0papasotiriou/cve-2026-4444-jwt-algorithm-confusion-via-kid-injection
Autenticazione e AutorizzazioneExploitSfruttamento di Applicazioni WebCrittografiaApprendimento e FormazioneSicurezza delle APILab e Pratica
GitHubgeorge0papasotiriou/cve-2026-4444-jwt-algorithm-confusion-via-kid-injection

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

PoC per CVE-2026-4444 che dimostra la confusione dell'algoritmo JWT tramite iniezione di kid non attendibile, che include un server Node.js vulnerabile e un exploit Python per la falsificazione di token e l'escalation dei privilegi.

Vedi Repository
41 mese faNon ancora revisionato

CVE-2026-4444 – Confusione dell'algoritmo JWT tramite iniezione di kid

Codice del programma (Server Node.js + exploit 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 – Confusione dell'algoritmo JWT tramite iniezione di kid

Severity: Critical

Panoramica

Un servizio di verifica JWT si fida ciecamente dell'header kid per individuare la chiave pubblica, consentendo a un attaccante di fornire un URL che punta alla propria chiave. Ciò porta alla completa falsificazione dei token e all'escalation dei privilegi.

Dettagli della vulnerabilità

  • Tipo: Confusione dell'algoritmo JWT / SSRF
  • Impatto: Accesso non autorizzato, impersonificazione dell'amministratore.
  • Causa principale: Il server recupera una chiave pubblica da un URI kid controllato dall'utente senza verificare che appartenga a un'origine attendibile.

Dimostrazione dell'exploit

  1. Avvia il server vulnerabile:
    root@kitploit:~
    node jwt_server.js
    
  2. Esegui l'exploit (che avvia anche un server di chiavi fittizio):
    root@kitploit:~
    python exploit_jwt_kid.py
    
Scarica lo strumento