GNU cpio уязвим из-за неконтролируемого выделения памяти в функции make_path в src/makepath.c. Функция использует alloca для выделения памяти стека на основе длины argpath, которая получается из имени пути, контролируемого архивом, во время извлечения. Вредоносный архив cpio, содержащий достаточно длинное вложенное имя пути, приводит к неограниченному выделению стека, что приводит к переполнению стека и сбою процесса cpio.
Злоумышленник, который может предоставить созданный архив cpio жертве, которая его извлекает, может вызвать отказ в обслуживании. Эта проблема была исправлена в коммите 3cd514031371d8aeeaf2048aa10103e02831aaa9.
Показать оригинальное описание (EN)
GNU cpio is vulnerable to an uncontrolled memory allocation in the make_path function at src/makepath.c. The function uses alloca to allocate stack memory based on the length of argpath, which is derived from an archive-controlled pathname during extraction. A malicious cpio archive containing a sufficiently long nested pathname causes an unbounded stack allocation, resulting in a stack overflow and crash of the cpio process. An attacker who can supply a crafted cpio archive to a victim who extracts it can cause a denial of service. This issue has been fixed in commit 3cd514031371d8aeeaf2048aa10103e02831aaa9
Характеристики атаки
Последствия
Строка CVSS v4.0