Calibre w wersjach 9.2.1 i wcześniejszych zawiera podatność typu path traversal w funkcji obsługi plików ZIP, która pozwala na zapis dowolnych plików w lokalizacjach dostępnych dla użytkownika. W systemie Windows prowadzi to do Remote Code Execution poprzez umieszczenie payload'u w folderze Startup, który zostaje wykonany przy następnym logowaniu.
▸ Pokaż oryginał (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.
Funkcja extract_pictures() weryfikuje jedynie, czy ścieżka w archiwum ZIP zaczyna się od ciągu 'Pictures', lecz nie neutralizuje sekwencji '..' (path traversal). Wbudowana metoda ZipFile.extractall() w pliku utils/zipfile.py posiada odpowiednią sanityzację poprzez funkcję _get_targetpath(), jednak extract_pictures() całkowicie ją omija — stosując bezpośrednie wywołania zf.read() oraz open(). Atakujący może przygotować złośliwy plik e-book z archiwum ZIP zawierającym spreparowane ścieżki i nakłonić użytkownika do jego otwarcia. Na systemie Windows zapis payload'u do folderu Startup skutkuje jego automatycznym uruchomieniem przy następnym logowaniu użytkownika.
Atakujący może zapisać dowolne pliki w lokalizacjach, do których użytkownik posiada uprawnienia zapisu, a w systemie Windows uzyskać w ten sposób zdalne wykonanie kodu (RCE) w kontekście zalogowanego użytkownika.
Należy zaktualizować Calibre do wersji 9.3.0, w której problem został naprawiony. Poprawka dostępna jest w oficjalnym repozytorium projektu (commit e1b5f9b45a5e8fa96c136963ad9a1d35e6adac62).
Calibre w wersjach 9.2.1 i wcześniejszych na wszystkich obsługiwanych platformach; scenariusz RCE dotyczy w szczególności systemu Windows.
Podatność wymaga interakcji użytkownika (UI:A) — otworzenia złośliwego pliku e-book. Scenariusz RCE jest specyficzny dla systemu Windows ze względu na mechanizm folderu Startup.
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XCalibre Ebook Calibre
APPCalibre-Ebook< 9.3.0
Powiązane podatności
Path Traversal w Calibre — zapis dowolnych plików przez czytnik PDB
Input validation issues were found in Calibre at devices/linux_mount_helper.c which can lead to argument injec...
A untrusted search path issue was found in Calibre at devices/linux_mount_helper.c leading to the ability of u...
calibre is a cross-platform e-book manager for viewing, converting, editing, and cataloging e-books. Prior to ...
calibre is an e-book manager. Prior to 9.2.0, Calibre's CHM reader contains a path traversal vulnerability tha...