🇰🇷 한글 설명
DeepDiff 5.0.0~8.6.1 버전의 pickle unpickler가 생성자 인자를 검증하지 않아, 신뢰할 수 없는 pickle 데이터로부터 40바이트 페이로드만으로 10GB 이상의 메모리를 할당하도록 유도 가능합니다. 이를 통해 애플리케이션 메모리 고갈로 인한 서비스 거부(DoS) 공격이 가능합니다.
💡 쉬운 설명
DeepDiff 도구가 악의적인 파일을 처리하면 컴퓨터의 메모리를 급격히 소비하여 다운시킵니다. 아주 작은 파일 하나로도 이 피해를 낼 수 있습니다.
🇺🇸 원문 (English)
DeepDiff is a project focused on Deep Difference and search of any Python data. From version 5.0.0 to before version 8.6.2, the pickle unpickler _RestrictedUnpickler validates which classes can be loaded but does not limit their constructor arguments. A few of the types in SAFE_TO_IMPORT have constructors that allocate memory proportional to their input (builtins.bytes, builtins.list, builtins.range). A 40-byte pickle payload can force 10+ GB of memory, which crashes applications that load delta objects or call pickle_load with untrusted data. This issue has been patched in version 8.6.2.
📍 영향받는 시스템
DeepDiff 5.0.0 ~ 8.6.1 (Python 라이브러리)
⚔️ 공격 벡터
신뢰할 수 없는 pickle 데이터를 pickle_load() 또는 delta 객체 로드 시 처리
🛡️ 대응 방법
DeepDiff를 8.6.2 이상으로 업그레이드 (pip install --upgrade deepdiff>=8.6.2)
🔧 검증 코드
버전이 8.6.2 이상이면 안전하고, 8.6.1 이하면 즉시 업그레이드 필요합니다.
pip show deepdiff | grep Version | awk '{print $2}'