Skip to content
OpenAdvisories
Critical RHSA-2026:98120 13 CVEs

Red Hat Security Advisory: python-pillow security update

Published Nov 13, 2026 · Updated Nov 13, 2026

Fixed packages 12

ReleasePackageFixed in
Red Hat · RHEL 8.4 AUS rhel_aus:8.4::appstream python-pillow 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 AUS rhel_aus:8.4::appstream python-pillow-debuginfo 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 AUS rhel_aus:8.4::appstream python-pillow-debugsource 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 AUS rhel_aus:8.4::appstream python3-pillow 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 AUS rhel_aus:8.4::appstream python3-pillow-debuginfo 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 AUS rhel_aus:8.4::appstream python3-pillow-tk-debuginfo 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 EUS Long Life rhel_eus_long_life:8.4::appstream python-pillow 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 EUS Long Life rhel_eus_long_life:8.4::appstream python-pillow-debuginfo 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 EUS Long Life rhel_eus_long_life:8.4::appstream python-pillow-debugsource 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 EUS Long Life rhel_eus_long_life:8.4::appstream python3-pillow 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 EUS Long Life rhel_eus_long_life:8.4::appstream python3-pillow-debuginfo 0:5.1.1-15.el8_4.3
Red Hat · RHEL 8.4 EUS Long Life rhel_eus_long_life:8.4::appstream python3-pillow-tk-debuginfo 0:5.1.1-15.el8_4.3

Vulnerabilities 13

  • Critical 9.2

    Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO

    Pillow is a Python imaging library. From 2.0.0 until 13.0.0, Pillow has a heap buffer overflow and stale-heap disclosure in _tiffWriteProc when saving compressed TIFF data through libtiff to a target without a usable fileno(), such as BytesIO. The callback si…

  • Critical 9.2
    CVE-2026-112398 Public exploit

    Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution

    Pillow is a Python imaging library. Prior to 13.0.0, Pillow's FlashPix JPEG-tile decoder can write decoded scanlines beyond the allocated tile buffer. FlashPix (FPX) JPEG decoding selects raw mode LA with two bytes per pixel, while an unrecognized JPEG mode c…

  • Critical 9.2
    CVE-2026-112900 Public exploit

    Pillow: Argument Injection in Ghostscript call, potentially leading into RCE

    Pillow is a Python imaging library. From 2.6.0 until 13.0.0, Pillow is vulnerable to argument injection when invoking Ghostscript for EPS input. EpsImagePlugin.Ghostscript passes a caller-controlled input filename after -f without converting it to a safe abso…

  • High 8.7

    Pillow: Out-of-bounds access in _imagingmorph on a zero-width image

    Pillow is a Python imaging library. Prior to 13.0.0, Pillow's ImageMorph.MorphOp.apply() can access memory before a row buffer for a zero-width image. PPM and PGM input can create an image with width zero, and the native morphology routine indexes outrow[widt…

  • High 8.7

    Pillow: Double free in ImagingScaleAffine on calloc failure via Image.transform

    Pillow is a Python imaging library. Prior to 13.0.0, Pillow can double free image memory when ImagingScaleAffine encounters a selective allocation failure. The affected fast path handles Transform.EXTENT or pure scale-and-translate Transform.AFFINE operations…

  • High 8.7

    Pillow: NULL pointer dereference in Image.merge via an unvalidated band 0

    Pillow is a Python imaging library. From 12.0.0 until 13.0.0, Pillow's Image.merge() can dereference a null image8 plane. Validation skips the first input band, allowing a 32-bit integer or floating-point image backed by image32 storage to be merged as a narr…

  • High 8.7

    Pillow: Infinite loop in PdfParser.rewrite_pages on page tree Parent cycle

    Pillow is a Python imaging library. From 5.1.0 until 13.0.0, Pillow can enter an infinite loop while rewriting PDF pages. PdfParser.rewrite_pages() follows Parent relationships without detecting a cycle in the page tree. An attacker can supply a cyclic PDF to…

  • High 8.7

    Pillow: MSP RLE decoder expands a tiny file into unbounded memory

    Pillow is a Python imaging library. From 4.1.0 until 13.0.0, Pillow's MSP RLE decoder can expand a small file into an unbounded in-memory buffer. The decoder writes run-length output to BytesIO without limiting expansion to the declared image size. An attacke…

  • High 8.7

    Pillow: Quadratic-time DoS in PDF save_all (PdfParser.next_object_id)

    Pillow is a Python imaging library. From 5.1.0 until 13.0.0, Pillow takes quadratic time to reserve PDF object identifiers when saving many frames with save_all enabled. PdfParser.next_object_id() repeatedly rebuilds and scans all previously reserved identifi…

  • High 8.7

    Pillow: Unbounded recursion parsing a PDF page tree or trailer chain (incomplete fix for CVE-2026-42310)

    Pillow is a Python imaging library. From 5.1.0 until 13.0.0, Pillow can exhaust resources while parsing an existing PDF during an append operation. PdfParser follows page-tree child references without cycle or duplication tracking and follows previous-trailer…

  • High 8.2

    Pillow: NULL dereference in ImagingExpand via rank filters on zero-size images

    Pillow is a Python imaging library. Prior to 13.0.0, Pillow's rank-based filters can dereference invalid image storage for a zero-size image. ImagingExpand() allocates a non-empty output and then faults while replicating edges by reading the first pixel from …

  • High 8.2

    Pillow PDF append accepts malformed shared page-tree DAG causing resource exhaustion

    Pillow is a Python imaging library. From 5.1.0 until 13.0.0, PdfParser.linearize_page_tree() in src/PIL/PdfParser.py treats a PDF /Pages graph as a tree without tracking duplicate indirect references. When Image.save(..., format="PDF", append=True) processes …

  • Medium 6.3

    Pillow: PdfParser can recurse without limit in get_value() and linearize_page_tree()

    Pillow is a Python imaging library. From 5.1.0 until 13.0.0, Pillow's PdfParser.get_value() can recurse without a limit while reading nested PDF objects. The parser follows attacker-controlled arrays and dictionaries when an existing PDF is opened for append.…

References

  • article
    https://access.redhat.com/security/updates/classification/#critical
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555846
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555851
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555859
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555866
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555867
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555868
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555873
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555875
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555879
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2555889
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2556322
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2558576
  • report
    https://bugzilla.redhat.com/show_bug.cgi?id=2559393
  • advisory
    https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_98120.json
  • report
    https://access.redhat.com/security/cve/CVE-2026-96640
  • advisory
    https://www.cve.org/CVERecord?id=CVE-2026-96640
  • advisory
    https://nvd.nist.gov/vuln/detail/CVE-2026-96640
  • article
    https://github.com/python-pillow/Pillow/commit/6f0e7ee1f9c2fe227906f8a4b926e6622b702bc7
  • article
    https://github.com/python-pillow/Pillow/pull/10093
  • article
    https://github.com/python-pillow/Pillow/releases/tag/13.0.0
  • article
    https://github.com/python-pillow/Pillow/security/advisories/GHSA-mrfp-p49p-3hf2
  • report
    https://access.redhat.com/security/cve/CVE-2026-112391
  • advisory
    https://www.cve.org/CVERecord?id=CVE-2026-112391
  • advisory
    https://nvd.nist.gov/vuln/detail/CVE-2026-112391
  • article
    https://github.com/python-pillow/Pillow/commit/94cb11c44ff7345414da17ebfea1598a529ad9cd
  • article
    https://github.com/python-pillow/Pillow/security/advisories/GHSA-254f-3936-288h
  • report
    https://access.redhat.com/security/cve/CVE-2026-112392
  • advisory
    https://www.cve.org/CVERecord?id=CVE-2026-112392
  • advisory
    https://nvd.nist.gov/vuln/detail/CVE-2026-112392
  • article
    https://github.com/python-pillow/Pillow/commit/443e3130a8c11594fd0e296afad497e11e678961
  • article
    https://github.com/python-pillow/Pillow/security/advisories/GHSA-27h8-gf7j-v5hc
  • report
    https://access.redhat.com/security/cve/CVE-2026-112393
  • advisory
    https://www.cve.org/CVERecord?id=CVE-2026-112393
  • advisory
    https://nvd.nist.gov/vuln/detail/CVE-2026-112393
  • article
    https://github.com/python-pillow/Pillow/commit/11582e5ffbdceb973d5ee593f3105af5a9852b40
  • article
    https://github.com/python-pillow/Pillow/security/advisories/GHSA-332p-7hrc-92wf
  • report
    https://access.redhat.com/security/cve/CVE-2026-112397
  • advisory
    https://www.cve.org/CVERecord?id=CVE-2026-112397