Saltar al contenido
DUPIN
ALERTAS · EN VIVO
Contacto

VULNERABILIDADDetectada 21 OCT · 18:57

CVE-2026-114136 Denegación de servicio en JSONParser de Django REST framework

Desde 3.6.4 hasta 3.18.2, JSONParser.parse en rest_framework/parsers.py usa el charset del Content-Type enviado por el cliente con codecs.getreader, que acepta codecs de transformación de bytes como bz2_codec. Un cliente remoto no autenticado puede hacer que un cuerpo JSON comprimido se expanda después de que Django aplicó DATA_UPLOAD_MAX_MEMORY_SIZE solo a los bytes en tránsito, consumiendo memoria por worker con una petición muy pequeña. Afecta a cualquier endpoint alcanzable que acepte un cuerpo JSON. Corrige…

7.5ALTA

CVSS 3.1

  • Probabilidad de explotación0,3 %
  • Explotada activamenteNo confirmada
  • Exploit públicoNo conocido

Afectados

  • encode django-rest-framework

    >= 3.6.4, < 3.18.2

Qué hacer

  1. Verificá si usás django-rest-framework y en qué versión.
  2. Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
  3. Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.

Calculadora CVSS

CVSS 3.1 · 7.5 ALTA

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

  • Vector de ataqueRed
  • Complejidad del ataqueBaja
  • Privilegios requeridosNinguno
  • Interacción del usuarioNinguna
  • AlcanceSin cambio
  • ConfidencialidadNinguna
  • IntegridadNinguna
  • DisponibilidadAlta

Descripción original

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.

Referencias (3)

Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.