🇰🇷 한글 설명
Python용 웹 크롤링 프레임워크인 Scrapy의 RefererMiddleware에서 발생하는 취약점입니다. 1.4.0부터 2.14.2 버전까지 Referrer-Policy 응답 헤더 값이 Python 임포트 경로와 유사할 경우 이를 클래스로 인식하여 실행하는 문제가 있습니다. 공격자가 sys.exit와 같은 호출 가능한 객체를 전달하면 크롤러를 강제로 종료시킬 수 있습니다.
💡 쉬운 설명
웹사이트가 특수한 명령어를 보내면 크롤링 프로그램이 그 명령어를 실행해버리는 문제입니다. 이로 인해 크롤링 작업이 갑자기 중단되거나 프로그램이 꺼질 수 있습니다.
🇺🇸 원문 (English)
Scrapy is a high-level web crawling and scraping framework for Python. From 1.4.0 until 2.14.2, RefererMiddleware in scrapy/spidermiddlewares/referer.py treated a Referrer-Policy response-header value that resembled a Python import path as a referrer policy class, imported the referenced object, and called it. A malicious website could supply a callable such as sys.exit and terminate a crawler processing the response. This issue is fixed in version 2.14.2.
📍 영향받는 시스템
Scrapy 1.4.0 ~ 2.14.2
⚔️ 공격 벡터
악의적인 웹사이트가 조작된 Referrer-Policy 응답 헤더를 제공하여 크롤러를 종료시킴
🛡️ 대응 방법
Scrapy를 2.14.2 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전이 2.14.2 미만이면 취약한 상태입니다.
pip show scrapy | grep Version