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

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

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

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

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

Категории

Все категории
Loading categories
details-for-CVE-2022-46505 — MatrixSSL ошибка возобновления сессии | Kitploit
Инструменты/GitHubGitHub/smalltown123/details-for-cve-2022-46505
Анализ уязвимостейЭксплуатацияКриптографияАнализ Бинарных ФайловОбучение и Образование
GitHubsmalltown123/details-for-cve-2022-46505

details-for-CVE-2022-46505

MatrixSSL ошибка возобновления сессии

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

Популярное

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

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

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

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

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

details-for-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 представляют собой порядковый номер little-endian в диапазоне от 0 до 31.

Untitled

Matrixssl определяет, является ли сеанс возобновляемым, сопоставляя длину полученного идентификатора сеанса с четырехбайтовым быстрым индексом.

Однако, когда список хранения инициализируется, MasterSecret состоит из нулей.

Следовательно, вредоносный клиент может отправить однобайтовый SessionID для возобновления сеанса с нулевым MasterSecret. Когда сервер получает однобайтовый sessionid, следующие байты по умолчанию равны 0. Таким образом, он может быть проверен и проиндексирован в списке, и MasterSecret, соответствующий этому порядковому номеру в списке, может все еще быть 0. Если это происходит, мы можем вычислить ключ и расшифровать данные связи TLS.

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

Untitled

Untitled

Добавление вывода консоли для отладки:

Untitled

Результат тестирования:

Untitled

Untitled

Используйте нулевой MasterSecret для расшифровки!

Untitled

Скачать инструмент