🇰🇷 한글 설명
Flask-Caching 1.10.1 이하 버전에서 발생하는 취약점으로, 데이터 직렬화를 위해 사용하는 Pickle 라이브러리의 특성을 악용합니다. 공격자가 캐시 저장소(파일 시스템, Memcached, Redis 등)에 접근할 수 있다면 조작된 페이로드를 주입하여 원격 코드 실행(RCE) 또는 로컬 권한 상승을 유도할 수 있습니다.
💡 쉬운 설명
데이터를 임시 저장하는 '캐시' 공간에 해커가 악성 코드를 몰래 끼워 넣을 수 있는 문제입니다. 이 코드가 실행되면 해커가 서버를 마음대로 조종하거나 권한을 탈취할 수 있습니다.
🇺🇸 원문 (English)
The Flask-Caching extension through 1.10.1 for Flask relies on Pickle for serialization, which may lead to remote code execution or local privilege escalation. If an attacker gains access to cache storage (e.g., filesystem, Memcached, Redis, etc.), they can construct a crafted payload, poison the cache, and execute Python code. NOTE: a third party indicates that exploitation is extremely unlikely unless the machine is already compromised; in other cases, the attacker would be unable to write their payload to the cache and generate the required collision
📍 영향받는 시스템
Flask-Caching extension version <= 1.10.1
⚔️ 공격 벡터
캐시 저장소(Filesystem, Memcached, Redis 등)에 대한 쓰기 권한을 이용한 캐시 포이즈닝(Cache Poisoning)
🛡️ 대응 방법
Flask-Caching 라이브러리를 최신 버전으로 업데이트하거나, Pickle 대신 안전한 직렬화 방식(JSON 등)을 사용하도록 설정 변경
🔧 검증 코드
출력된 버전이 1.10.1 이하인지 확인하여 취약 여부를 판단합니다.
pip show Flask-Caching | grep Version