🔍 CVE-2026-114136

7.5
CVSS Score
HIGH
2026-10-21
2026-10-30 20:16
✅ 완료

🇰🇷 한글 설명

Django REST framework의 JSONParser.parse 과정에서 클라이언트가 제공한 Content-Type charset 값을 검증 없이 사용하여 발생하는 취약점입니다. 공격자가 압축된 JSON 요청을 보내면 Django의 메모리 제한을 우회하여 서버의 메모리를 과도하게 점유할 수 있습니다.

💡 쉬운 설명

작은 크기의 압축된 데이터를 보내 서버가 이를 해제하는 과정에서 엄청난 양의 메모리를 쓰게 만들어 서버를 마비시키는 공격입니다. 마치 작은 상자를 보냈는데 상자를 열자마자 거대한 풍선이 터져 나와 방을 가득 채우는 것과 같습니다.

🇺🇸 원문 (English)

Django REST framework is a toolkit for building Web APIs. From 3.6.4 until 3.18.2, JSONParser.parse in rest_framework/parsers.py uses the client-supplied Content-Type charset value with codecs.getreader, which accepts byte-transform codecs such as bz2_codec rather than only text encodings. A remote unauthenticated client can therefore cause a compressed JSON request body to be expanded after Django has enforced DATA_UPLOAD_MAX_MEMORY_SIZE against only the wire bytes, allowing a very small request to consume substantial per-worker memory. The default parser set is sufficient, and any reachable endpoint that accepts a JSON body is affected. This issue is fixed in version 3.18.2.

📍 영향받는 시스템

Django REST framework 3.6.4 ~ 3.18.2

⚔️ 공격 벡터

인증되지 않은 원격 공격자가 압축된(bz2 등) JSON 페이로드를 포함한 HTTP 요청을 전송

🛡️ 대응 방법

Django REST framework를 3.18.2 버전 이상으로 업데이트

🔧 검증 코드

출력된 Version이 3.18.2보다 낮으면 취약한 상태입니다.

Shell / Script
pip show djangorestframework | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Spring Data REST