Crawl4AI w wersjach przed 0.8.0 zawiera krytyczną podatność RCE w interfejsie API wdrożenia Docker. Nieuwiernytelniony atakujący może wykonać dowolny kod systemowy poprzez endpoint /crawl, co prowadzi do pełnego przejęcia serwera.
▸ Pokaż oryginał (EN)
Crawl4AI versions prior to 0.8.0 contain a remote code execution vulnerability in the Docker API deployment. The /crawl endpoint accepts a hooks parameter containing Python code that is executed using exec(). The __import__ builtin was included in the allowed builtins, allowing unauthenticated remote attackers to import arbitrary modules and execute system commands. Successful exploitation allows full server compromise, including arbitrary command execution, file read and write access, sensitive data exfiltration, and lateral movement within internal networks.
Endpoint /crawl akceptuje parametr hooks zawierający kod Python, który jest następnie wykonywany za pomocą funkcji exec(). W dozwolonych wbudowanych funkcjach (builtins) znajdował się __import__, co umożliwiało dynamiczne importowanie dowolnych modułów Pythona. Dzięki temu nieuwiernytelniony atakujący mógł zaimportować moduły systemowe (np. os, subprocess) i wykonać za ich pomocą dowolne polecenia na serwerze. Atak nie wymaga żadnego uwierzytelnienia ani interakcji ze strony użytkownika.
Pomyślna eksploatacja pozwala atakującemu na pełne przejęcie serwera, w tym dowolne wykonywanie poleceń systemowych, odczyt i zapis plików, eksfiltrację wrażliwych danych oraz lateral movement w sieciach wewnętrznych.
Należy zaktualizować Crawl4AI do wersji 0.8.0 lub nowszej, w której podatność została usunięta. Szczegóły dotyczące poprawki dostępne są w notatkach wydania v0.8.0 oraz w security advisory GHSA-5882-5rx9-xgxp na GitHub. Do czasu wdrożenia patcha należy rozważyć wyłączenie publicznego dostępu do endpointu /crawl lub zastosowanie reguł firewall ograniczających dostęp wyłącznie do zaufanych adresów IP.
Kidocode Crawl4AI w wersjach wcześniejszych niż 0.8.0, wdrożonych za pomocą Docker API
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/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:XKidocode Crawl4ai
APPKidocode< 0.8.0
Powiązane podatności
RCE w Crawl4AI — ucieczka z sandbox poprzez atrybuty generatorów Python
Crawl4AI: zapis dowolnych plików poza katalogiem przez path traversal i TOCTOU
SSRF w Crawl4AI — ominięcie blokady adresów wewnętrznych przez IPv6-mapped IPv4
Obejście uwierzytelnienia w Crawl4AI przez zakodowany klucz JWT
Path Traversal w Crawl4AI — odczyt dowolnych plików przez file:// URL