Crawl4AI przed wersją 0.8.7 zawiera podatność typu SSRF w endpointach /crawl, /crawl/stream, /md oraz /llm, pozwalającą nieuwierzytelnionym atakującym na wysyłanie żądań do wewnętrznych usług sieci. Mechanizm blokowania adresów wewnętrznych można ominąć, stosując adresy IPv4 zapisane w formacie IPv6-mapped, co umożliwia dostęp do serwisów wewnętrznych oraz punktów końcowych metadanych chmurowych.
▸ Pokaż oryginał (EN)
Crawl4AI before 0.8.7 contains a server-side request forgery vulnerability in the /crawl, /crawl/stream, /md, and /llm endpoints that fetch arbitrary user-supplied URLs without validation. Unauthenticated attackers can bypass the internal-address blocklist using IPv6-mapped IPv4 addresses to reach internal services and cloud metadata endpoints.
Wymienione endpointy pobierają dowolne adresy URL podane przez użytkownika bez odpowiedniej walidacji. Aplikacja implementuje bloklistę adresów wewnętrznych, jednak nie obsługuje poprawnie adresów IPv4 zapisanych w notacji IPv6-mapped (np. ::ffff:169.254.169.254). Atakujący może w ten sposób obejść zabezpieczenia i zmusić serwer do wykonania żądania HTTP do wewnętrznej infrastruktury, w tym do punktów końcowych metadanych środowisk chmurowych (np. AWS IMDSv1). Podatność jest dostępna bez uwierzytelnienia, co znacząco zwiększa jej ryzyko.
Atakujący może uzyskać nieautoryzowany dostęp do wewnętrznych usług sieciowych oraz poufnych metadanych środowiska chmurowego (np. kluczy API, tokenów IAM), co może prowadzić do dalszego kompromitacji infrastruktury.
Należy zaktualizować Crawl4AI do wersji 0.8.7 lub nowszej. Szczegóły poprawki dostępne są w repozytorium projektu oraz w security advisory GHSA-365w-hqf6-vxfg.
Crawl4AI w wersjach przed 0.8.7
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/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.7
Powiązane podatności
Crawl4AI: zapis dowolnych plików poza katalogiem przez path traversal i TOCTOU
RCE w Crawl4AI — ucieczka z sandbox poprzez atrybuty generatorów Python
Obejście uwierzytelnienia w Crawl4AI przez zakodowany klucz JWT
RCE w Crawl4AI — wykonanie kodu przez endpoint /crawl bez uwierzytelnienia
Path Traversal w Crawl4AI — odczyt dowolnych plików przez file:// URL