caliber — это кроссплатформенный менеджер электронных книг для просмотра, конвертирования, редактирования и каталогизации электронных книг. Версии 9.2.1 и ниже содержат уязвимость Path Traversal, которая позволяет записывать произвольные файлы в любом месте, где у пользователя есть разрешения на запись. В Windows это приводит к удаленному выполнению кода путем записи полезных данных в папку автозагрузки, которые выполняются при следующем входе в систему.
Функция Extract_pictures проверяет только начинается с («Изображения») и не очищает последовательности «..». Собственный ZipFile.extractall() калибра в utils/zipfile.py очищает '..' через _get_targetpath(), но Extract_pictures() обходит это, используя ручной zf.read() + open(). Эта проблема исправлена в версии 9.3.0.
Показать оригинальное описание (EN)
calibre is a cross-platform e-book manager for viewing, converting, editing, and cataloging e-books. Versions 9.2.1 and below contain a Path Traversal vulnerability that allows arbitrary file writes anywhere the user has write permissions. On Windows, this leads to Remote Code Execution by writing a payload to the Startup folder, which executes on next login. Function extract_pictures only checks startswith('Pictures'), and does not sanitize '..' sequences. calibre's own ZipFile.extractall() in utils/zipfile.py does sanitize '..' via _get_targetpath(), but extract_pictures() bypasses this by using manual zf.read() + open(). This issue has been fixed in version 9.3.0.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Calibre-Ebook Calibre
cpe:2.3:a:calibre-ebook:calibre:*:*:*:*:*:*:*:*
|
— |
9.3.0
|