Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
The probability is the direct output of the EPSS model, and conveys an overall sense of the threat of exploitation in the wild. The percentile measures the EPSS probability relative to all known EPSS scores. Note: This data is updated daily, relying on the latest available EPSS model version. Check out the EPSS documentation for more details.
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applicationsUpgrade djangorestframework to version 3.18.2 or higher.
djangorestframework is a powerful and flexible toolkit for building Web APIs.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via JSONParser (and FormParser/MultiPartParser) in rest_framework/parsers.py, which passes the client-supplied charset from the Content-Type header directly to codecs.getreader() without validating that it is a text encoding. Because codecs.getreader() does not consult CodecInfo._is_text_encoding, a client can supply a byte-transform codec such as bz2_codec, causing the request body to be decompressed after Django's DATA_UPLOAD_MAX_MEMORY_SIZE check has already been applied against the compressed wire bytes. A 108-byte compressed payload can expand to over 50 million characters and approximately 97 MiB of peak RSS, exhausting server memory. Additionally, supplying certain byte-transform charsets with an invalid body raises uncaught OSError, TypeError, or LookupError exceptions, crashing the worker process with an unauthenticated HTTP 500 response.