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
details-for-CVE-2022-46505 — Bug nella ripresa della sessione MatrixSSL | Kitploit
Strumenti/GitHubGitHub/smalltown123/details-for-cve-2022-46505
Analisi delle VulnerabilitàExploitCrittografiaAnalisi di BinariApprendimento e Formazione
GitHubsmalltown123/details-for-cve-2022-46505

details-for-CVE-2022-46505

Bug nella ripresa della sessione MatrixSSL

Vedi Repository

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
3 anni faNon ancora revisionato

details-for-CVE-2022-46505

Bug di ripresa della sessione in MatrixSSL

1. Descrizione del bug

Un problema in MatrixSSL 4.5.1-open e versioni precedenti porta al mancato controllo sicuro del campo SessionID, con conseguente uso improprio di un MasterSecret tutto a zero che può decrittare dati segreti.

2. Versione interessata

MatrixSSL 4.5.1-open e versioni precedenti

3. Tipo di vulnerabilità

decrittazione della sessione di ripresa tls

4. Dettagli del bug

Il server matrixssl memorizza le informazioni sulla sessione negoziata tramite una lista.

root@kitploit:~
static sslSessionEntry_t g_sessionTable[SSL_SESSION_TABLE_SIZE]; 
// SSL_SESSION_TABLE_SIZE is 32
root@kitploit:~
typedef struct
{
    unsigned char id[SSL_MAX_SESSION_ID_SIZE]; // 32
    unsigned char masterSecret[SSL_HS_MASTER_SIZE]; // 48
    const sslCipherSpec_t *cipher;
    unsigned char majVer;
    unsigned char minVer;
    short extendedMasterSecret;           /* was the extension used? */
    psTime_t startTime;
    int32 inUse;
    DLListEntry chronList;
} sslSessionEntry_t;

I primi quattro byte del campo SessionID sono un numero di sequenza little-endian che va da 0 a 31.

Untitled

Matrixssl determina se la sessione è una sessione di ripresa confrontando la lunghezza dell'ID di sessione ricevuto con l'indice rapido di quattro byte.

Tuttavia, quando la lista di memorizzazione viene inizializzata, MasterSecret è tutto a zero.

Pertanto, il Client malintenzionato può inviare un SessionID di un byte per la ripresa della sessione con MasterSecret tutto a zero. Quando il server riceve un sessionid di un singolo byte, i byte successivi vengono impostati per impostazione predefinita a 0. Quindi, può essere convalidato e indicizzato nella lista, e il MasterSecret corrispondente a quel numero di sequenza nella lista può essere ancora 0. Se ciò accade, possiamo calcolare la chiave e decrittare i dati di comunicazione TLS.

./matrixssl/matrixssl.c —> int32 matrixResumeSession(ssl_t *ssl)

Untitled

Untitled

Aggiunta dell'output console per il debug :

Untitled

Risultato del test :

Untitled

Untitled

Usare un MasterSecret tutto a zero per decrittare !

Untitled

Scarica lo strumento