Skip to content
CVE-2022-24481

CVE-2022-24481

Sploitus • September 8, 2026

##

Этот PoC реверс-инжинирингован из эксплойта (SHA1:fec933b0c46366a1fb272bfaf82a8262597a8d75) и многие антивирусные движки определили его как CVE-2022-24521. После анализа я обнаружил, что это, возможно, эксплойт для CVE-2022-24481, поскольку CVE-2022-24521 не является уязвимостью путаницы типов. Ошибка вызвана некорректностью указателя CLFS_CONTAINER_CONTEXT.pContainer, который будет вызван в функции CClfsContainer::Close, поэтому если он был изменён ранее, это приведёт к выполнению произвольного кода. Но как изменить этот указатель? Анализ первопричины эксплойта (fec933b0c46366a1fb272bfaf82a8262597a8d75) выглядит следующим образом:

1. Эксплойт модифицирует CLFS_BASE_RECORD_HEADER.rgClients на смещение CLFS_CONTAINER_CONTEXT.

2. В функции CClfsLogFcbPhysical::Initialize из CLFS_BASE_RECORD_HEADER.rgClients (смещение CLFS_CONTAINER_CONTEXT) считывается некоторое значение в память.

3. CClfsBaseFilePersisted::LoadContainerQ генерирует указатель на класс Container и заполняет CLFS_CONTAINER_CONTEXT.pContainer.

4. В функции CClfsRequest::Cleanup значение из шага 2 записывается в контекст клиента, который в памяти совпадает с контекстом контейнера.

5. В функции CClfsRequest::Close выполняется разбор CLFS_CONTAINER_CONTEXT и вызов pContainer (триггер).