lz4_flex — это чистая реализация сжатия/распаковки LZ4 на Rust. В версиях 0.11.5 и ниже, а также 0.12.0 распаковка недопустимых данных LZ4 может привести к утечке конфиденциальной информации из неинициализированной памяти или из предыдущих операций распаковки. Библиотеке не удается должным образом проверить значения смещения во время «операций копирования совпадений» LZ4, что позволяет выполнять чтение за пределами выходного буфера.
Это затрагивает функции блочного API (decompress_into, decompress_into_with_dict и другие, когда безопасное декодирование отключено), в то время как все API-интерфейсы кадров остаются незатронутыми. Последствием этого является потенциальное раскрытие конфиденциальных данных и секретов через специально созданные или искаженные входные данные LZ4. Эта проблема исправлена в версиях 0.11.6 и 0.12.1.
Показать оригинальное описание (EN)
lz4_flex is a pure Rust implementation of LZ4 compression/decompression. In versions 0.11.5 and below, and 0.12.0, decompressing invalid LZ4 data can leak sensitive information from uninitialized memory or from previous decompression operations. The library fails to properly validate offset values during LZ4 "match copy operations," allowing out-of-bounds reads from the output buffer. The block-based API functions (`decompress_into`, `decompress_into_with_dict`, and others when `safe-decode` is disabled) are affected, while all frame APIs are unaffected. The impact is potential exposure of sensitive data and secrets through crafted or malformed LZ4 input. This issue has been fixed in versions 0.11.6 and 0.12.1.
Характеристики атаки
Последствия
Строка CVSS v4.0
Уязвимые продукты 2
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pseitz Lz4_Flex
cpe:2.3:a:pseitz:lz4_flex:*:*:*:*:*:rust:*:*
|
— |
0.11.6
|
|
Pseitz Lz4_Flex
cpe:2.3:a:pseitz:lz4_flex:0.12.0:*:*:*:*:rust:*:*
|
— | — |