🇰🇷 한글 설명
Crawl4AI 버전 0.8.0 이전에는 Docker API 배포에서 로컬 파일 포함 취약성이 있습니다. /execute_js, /screenshot, /pdf, /html 엔드포인트에서 file:// URL을 허용하여 인증되지 않은 원격 공격자가 서버 파일 시스템에서 임의의 파일을 읽을 수 있습니다. 공격자는 /etc/passwd, /etc/shadow, 애플리케이션 구성 파일 및 환경 변수를 /proc/self/environ을 통해 액세스하여 자격 증명, API 키 및 내부 애플리케이션 구조를 노출할 수 있습니다.
💡 쉬운 설명
Crawl4AI의 구버전에는 보안 취약점이 있어 공격자가 중요한 파일을 읽을 수 있습니다. 이는 중요한 정보가 노출될 수 있습니다.
🇺🇸 원문 (English)
Crawl4AI versions prior to 0.8.0 contain a local file inclusion vulnerability in the Docker API deployment. The /execute_js, /screenshot, /pdf, and /html endpoints accept file:// URLs, allowing unauthenticated remote attackers to read arbitrary files from the server filesystem. An attacker can access sensitive files such as /etc/passwd, /etc/shadow, application configuration files, and environment variables via /proc/self/environ, potentially exposing credentials, API keys, and internal application structure.
📍 영향받는 시스템
Crawl4AI 버전 0.8.0 이전
⚔️ 공격 벡터
원격 공격자가 file:// URL을 사용하여 임의의 파일을 읽을 수 있습니다.
🛡️ 대응 방법
Crawl4AI를 버전 0.8.0 이상으로 업그레이드하세요.
🔧 검증 코드
로컬 시스템에서 Crawl4AI가 실행 중인지 확인하고, Python requests 라이브러리가 설치되어 있는지 확인하세요. 이후 Python 코드를 실행하여 결과를 확인하세요.
import requests
response = requests.get('http://localhost:8080/execute_js', params={'file': 'file:///etc/passwd'})
if response.status_code == 200 and 'root:' in response.text:
print({"result": "취약", "reason": "파일을 읽을 수 있습니다."})
else:
print({"result": "양호", "reason": "파일을 읽을 수 없습니다."})