🇰🇷 한글 설명
Django REST framework 3.17.2 미만 버전에서 request.data 파싱 시 Django의 DATA_UPLOAD_MAX_MEMORY_SIZE 보호 기능을 우회하는 취약점이 발견되었습니다. 이로 인해 application/json 또는 application/x-www-form-urlencoded 본문의 크기 제한이 적용되지 않아 과도한 메모리와 CPU 자원을 소모할 수 있습니다.
💡 쉬운 설명
웹 서버에 너무 큰 데이터를 보내서 서버의 메모리와 CPU를 한꺼번에 써버리게 만드는 공격입니다. 이로 인해 서버가 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
Django REST framework is a toolkit for building Web APIs. Prior to 3.17.2, Django REST Framework's request.data parsing in rest_framework/request.py Request._parse() passes the underlying HttpRequest stream to JSONParser and FormParser for application/json and application/x-www-form-urlencoded bodies, bypassing Django's DATA_UPLOAD_MAX_MEMORY_SIZE protection and allowing oversized request bodies to consume additional memory and CPU. This issue is fixed in version 3.17.2.
📍 영향받는 시스템
Django REST framework 3.17.2 미만 모든 버전
⚔️ 공격 벡터
조작된 대용량 JSON 또는 Form 데이터를 API 엔드포인트로 전송
🛡️ 대응 방법
Django REST framework를 3.17.2 버전 이상으로 업데이트
🔧 검증 코드
출력된 Version 값이 3.17.2보다 낮은지 확인
pip show djangorestframework | grep Version