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 pillow to version 13.0.0 or higher.
Affected versions of this package are vulnerable to Inefficient Algorithmic Complexity via the next_object_id function in src/PIL/PdfParser.py when saving a multi-frame image as a multi-page PDF using im.save(fp, "PDF", save_all=True). The function computes the next PDF object ID by calling max() over the full set of all previously reserved object IDs on every reservation, causing CPU time to grow proportional to the square of the frame count. An attacker can trigger this quadratic behavior by supplying an image with a large declared frame count, such as an APNG whose acTL chunk declares a high num_frames value, without requiring any actual frame pixel data to be present.
Note: This is only exploitable when the caller saves with save_all=True targeting PDF output; for APNG inputs, the num_frames value from the acTL chunk is used directly and frames need not exist, subject only to the constraint that num_frames is non-zero and below 0x80000000.