Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
details-for-CVE-2022-46505 — MatrixSSL-Session-Resume-Bug | Kitploit
Tools/GitHubGitHub/smalltown123/details-for-cve-2022-46505
SchwachstellenanalyseExploitationKryptographieBinäranalyseLernen & Bildung
GitHubsmalltown123/details-for-cve-2022-46505

details-for-CVE-2022-46505

MatrixSSL-Session-Resume-Bug

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
vor 3 JahrenNoch nicht geprüft

details-for-CVE-2022-46505

MatrixSSL-Fehler bei der Sitzungswiederaufnahme

1. Beschreibung des Fehlers

Ein Problem in MatrixSSL 4.5.1-open und früheren Versionen führt zu einer fehlenden sicheren Überprüfung des SessionID-Felds, was den Missbrauch eines aus Nullen bestehenden MasterSecret ermöglicht, mit dem geheime Daten entschlüsselt werden können.

2. Betroffene Version

MatrixSSL 4.5.1-open und frühere

3. Schwachstellenart

TLS-Sitzungswiederaufnahme-Entschlüsselung

4. Fehlerdetails

Der MatrixSSL-Server speichert ausgehandelte Sitzungsinformationen in einer Liste.

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;

Die ersten vier Bytes des SessionID-Felds sind eine Little-Endian-Sequenznummer im Bereich von 0 bis 31.

Untitled

MatrixSSL bestimmt, ob eine Sitzung wiederaufgenommen wird, indem es die Länge der empfangenen Session-ID mit dem Vier-Byte-Schnellindex abgleicht.

Wenn die Speicherliste initialisiert wird, besteht MasterSecret jedoch aus lauter Nullen.

Daher kann ein bösartiger Client eine Ein-Byte-SessionID senden, um eine Sitzungswiederaufnahme mit einem MasterSecret aus lauter Nullen zu erreichen. Wenn der Server eine ein Byte große Session-ID empfängt, werden die nachfolgenden Bytes standardmäßig auf 0 gesetzt. Daher kann sie validiert und in der Liste indiziert werden, und das dieser Sequenznummer in der Liste entsprechende MasterSecret kann noch immer 0 sein. Wenn dies geschieht, können wir den Schlüssel berechnen und die TLS-Kommunikationsdaten entschlüsseln.

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

Untitled

Untitled

Konsolenausgabe zum Debuggen hinzufügen :

Untitled

Testergebnis :

Untitled

Untitled

Mit einem MasterSecret aus lauter Nullen entschlüsseln !

Untitled

Tool herunterladen