Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
details-for-CVE-2022-46505 — MatrixSSL session resume bug | Kitploit
工具/GitHubGitHub/smalltown123/details-for-cve-2022-46505
漏洞分析漏洞利用密码学二进制分析学习与教育
GitHubsmalltown123/details-for-cve-2022-46505

details-for-CVE-2022-46505

MatrixSSL session resume bug

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
433年前尚未审核
分享

CVE-2022-46505 详情

MatrixSSL 会话恢复漏洞

1. 漏洞描述

MatrixSSL 4.5.1-open 及更早版本中存在一个问题,导致无法安全检查 SessionID 字段,从而导致滥用全零 MasterSecret,进而可以解密机密数据。

2. 受影响版本

MatrixSSL 4.5.1-open 及更早版本

3. 漏洞类型

TLS 恢复会话解密

4. 漏洞详情

MatrixSSL 服务器通过一个列表来存储协商的会话信息。

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;

SessionID 字段的前四个字节是一个小端序序列号,范围从 0 到 31。

Untitled

MatrixSSL 通过将接收到的会话 ID 的长度与四字节快速索引进行匹配,来判断会话是否为恢复会话。

然而,当存储列表初始化时,MasterSecret 全为零。

因此,恶意客户端可以发送一个字节的 SessionID 来尝试使用全零 MasterSecret 进行会话恢复。当服务器接收到一个字节的 sessionid 时,后续字节默认为 0。因此,它可以被验证并索引到列表中,而列表中对应序列号的 MasterSecret 可能仍为 0。如果发生这种情况,我们就能计算出密钥并解密 TLS 通信数据。

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

Untitled

Untitled

添加用于调试的控制台输出:

Untitled

测试结果:

Untitled

Untitled

使用全零 MasterSecret 进行解密!

Untitled

下载工具