Der Docker-API-Server von Crawl4AI begrenzt die Felder delay_before_return_html, mean_delay und max_range bei nicht vertrauenswürdigen Crawl-Anfragen nicht. Ein Netzwerkclient, der die API erreichen kann, kann sehr grosse Werte an /crawl oder /crawl/stream senden, wodurch Browser-Seiten belegt und der Rate-Limiter blockiert werden. Dadurch wird der Seitenpool erschöpft und andere Crawls werden blockiert, was ein Risiko für einen Serviceausfall ohne Datenverlust darstellt. Die Standardkonfiguration ist betroffen, da die JWT-Authentifizierung standardmässig deaktiviert ist.
unclecode · Crawl4AI
Crawl4AI startet Chromium mit --ignore-certificate-errors, daher akzeptiert der Browser jedes TLS-Zertifikat. Zusätzlich überschreibt das fest codierte Flag --no-sandbox die Sandbox-Einstellung. Ein Angreifer, der den Datenverkehr abfangen oder das DNS für eine gecrawlte Domain kontrollieren kann, kann dem Crawler gefälschte Inhalte liefern und Cookies sowie Header der Anfrage lesen. Die gecrawlten Inhalte können anschliessend nachgelagerte Systeme wie RAG- oder LLM-Pipelines speisen. Voraussetzung ist eine Man-in-the-Middle- oder DNS-Kontrollposition im Netzwerkpfad des Crawlers.
unclecode · Crawl4AI
Crawl4AI in den Versionen 0.7.0 bis 0.9.3 enthält eine Server-Side Request Forgery (SSRF) in der Link-Preview-Funktion des URL-Seeders. Ein API-Client, der /crawl erreichen kann, kann Link Preview aktivieren und eine von ihm kontrollierte Seite angeben, sodass der Server interne, private, Link-Local- und Cloud-Metadaten-Adressen abruft. Laut Hersteller werden die ausgewerteten Head-Inhalte dieser Antworten an den Aufrufer zurückgegeben, und es ist keine Authentifizierung nötig, wenn die API ohne Authentifizierung betrieben wird, was der Standard ist.
unclecode · Crawl4AI
Crawl4AI ab 0.9.0 vor 0.9.4 enthält eine Schwachstelle in der Prüfung untrusted Konfigurationen des Docker-API-Servers. Ein API-Client ohne Admin-Rechte kann verbotene Konfigurationsobjekte in Dict-Wrappern verpacken, sodass ein LLMConfig Umgebungsreferenzen wie api_token="env:NAME" auflöst und Umgebungsvariablen des Servers über /config/dump zurückgibt. Offengelegt werden können unter anderem API-Schlüssel von LLM-Anbietern und der SECRET_KEY, was die Fälschung eines Admin-JWT ermöglichen kann.
unclecode · Crawl4AI