chore(deps): update dependency pillow to v12.2.0 [security] #7

Open
renovate-bot wants to merge 1 commit from renovate/pypi-pillow-vulnerability into main
Collaborator

This PR contains the following updates:

Package Change Age Confidence
pillow (changelog) 12.1.112.2.0 age confidence

Pillow has a heap buffer overflow with nested list coordinates

CVE-2026-42309 / GHSA-5xmw-vc9v-4wf2

More information

Details

Passing nested lists as coordinates to APIs that accept coordinates such as ImagePath.Path, ImageDraw.ImageDraw.polygon and ImageDraw.ImageDraw.line could cause a heap buffer overflow, as nested lists were recursively unpacked beyond the allocated buffer. Coordinate lists are now validated to contain exactly two numeric coordinates. This was introduced in Pillow 11.2.1.

Severity

  • CVSS Score: 5.1 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Pillow has an OOB Write with Invalid PSD Tile Extents (Integer Overflow)

CVE-2026-42311 / GHSA-pwv6-vv43-88gr

More information

Details

Impact

Processing a malicious PSD file could lead to memory corruption, potentially resulting in a crash or arbitrary code execution.

Patches

Patched version: 12.2.0

Pillow 12.1.1 addressed CVE-2026-25990 by adding checks for tile extents in PSD image decoding/encoding to prevent an out-of-bounds write. However, the bounds checks computed tile extent sums using types susceptible to integer overflow, meaning a PSD image with carefully chosen tile dimensions could produce values that wrap around and bypass the checks, still triggering an out-of-bounds write in src/decode.c and src/encode.c. The fix avoids adding extents together before comparison.

Workarounds

Use any version but affected versions: >= 10.3.0, < 12.2.0

Resources

Severity

  • CVSS Score: 8.6 / 10 (High)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Pillow has a PDF Parsing Trailer Infinite Loop (DoS)

CVE-2026-42310 / GHSA-r73j-pqj5-w3x7

More information

Details

Impact

An attacker can supply a malicious PDF that causes the process to hang indefinitely, consuming 100% CPU and making the application unresponsive.

Patches

Patched version: 12.2.0.

PdfParser (introduced in Pillow 4.2.0) follows Prev pointers in PDF trailers to read cross-reference sections. If a
trailer's Prev pointer references an offset that has already been processed — either pointing to itself or forming a
longer cycle — the parser enters an infinite loop. Pillow now tracks previously processed trailer offsets and raises an
error if a cycle is detected.

Workarounds

Use any version but the affected versions: >= 4.2.0, < 12.2.0

Resources

Severity

  • CVSS Score: 5.1 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


FITS GZIP decompression bomb in Pillow

BIT-pillow-2026-40192 / CVE-2026-40192 / GHSA-whj4-6x5x-4v2j

More information

Details

Impact

Pillow did not limit the amount of GZIP-compressed data read when decoding a FITS image, making it vulnerable to decompression bomb attacks. A specially crafted FITS file could cause unbounded memory consumption, leading to denial of service (OOM crash or severe performance degradation).

Patches

The amount of data read is now limited to the necessary amount.
Fixed in Pillow 12.2.0 (PR #​9521).

Workarounds

Avoid Pillow >= 10.3.0, < 12.2.0
Only open specific image formats, excluding FITS.

Severity

  • CVSS Score: 8.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Pillow has an integer overflow when processing fonts

CVE-2026-42308 / GHSA-wjx4-4jcj-g98j

More information

Details

If a font advances for each glyph by an exceeding large amount, when Pillow keeps track of the current position, it may lead to an integer overflow. This has been fixed.

Severity

  • CVSS Score: 5.1 / 10 (Medium)
  • Vector String: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

python-pillow/Pillow (pillow)

v12.2.0

Compare Source

https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html

Documentation

Dependencies

Testing

Other changes


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • ""
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `12.1.1` → `12.2.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pillow/12.2.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pillow/12.1.1/12.2.0?slim=true) | --- ### Pillow has a heap buffer overflow with nested list coordinates [CVE-2026-42309](https://nvd.nist.gov/vuln/detail/CVE-2026-42309) / [GHSA-5xmw-vc9v-4wf2](https://github.com/advisories/GHSA-5xmw-vc9v-4wf2) <details> <summary>More information</summary> #### Details Passing nested lists as coordinates to APIs that accept coordinates such as `ImagePath.Path`, `ImageDraw.ImageDraw.polygon` and `ImageDraw.ImageDraw.line` could cause a heap buffer overflow, as nested lists were recursively unpacked beyond the allocated buffer. Coordinate lists are now validated to contain exactly two numeric coordinates. This was introduced in Pillow 11.2.1. #### Severity - CVSS Score: 5.1 / 10 (Medium) - Vector String: `CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N` #### References - [https://github.com/python-pillow/Pillow/security/advisories/GHSA-5xmw-vc9v-4wf2](https://github.com/python-pillow/Pillow/security/advisories/GHSA-5xmw-vc9v-4wf2) - [https://github.com/python-pillow/Pillow](https://github.com/python-pillow/Pillow) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-5xmw-vc9v-4wf2) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### Pillow has an OOB Write with Invalid PSD Tile Extents (Integer Overflow) [CVE-2026-42311](https://nvd.nist.gov/vuln/detail/CVE-2026-42311) / [GHSA-pwv6-vv43-88gr](https://github.com/advisories/GHSA-pwv6-vv43-88gr) <details> <summary>More information</summary> #### Details ##### Impact Processing a malicious PSD file could lead to memory corruption, potentially resulting in a crash or arbitrary code execution. ##### Patches Patched version: 12.2.0 Pillow 12.1.1 addressed CVE-2026-25990 by adding checks for tile extents in PSD image decoding/encoding to prevent an out-of-bounds write. However, the bounds checks computed tile extent sums using types susceptible to integer overflow, meaning a PSD image with carefully chosen tile dimensions could produce values that wrap around and bypass the checks, still triggering an out-of-bounds write in src/decode.c and src/encode.c. The fix avoids adding extents together before comparison. ##### Workarounds Use any version but affected versions: >= 10.3.0, < 12.2.0 ##### Resources - Fix: https://github.com/python-pillow/Pillow/pull/9520 - Original issue: CVE-2026-25990 (Pillow 12.1.1) #### Severity - CVSS Score: 8.6 / 10 (High) - Vector String: `CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N` #### References - [https://github.com/python-pillow/Pillow/security/advisories/GHSA-cfh3-3jmp-rvhc](https://github.com/python-pillow/Pillow/security/advisories/GHSA-cfh3-3jmp-rvhc) - [https://github.com/python-pillow/Pillow/security/advisories/GHSA-pwv6-vv43-88gr](https://github.com/python-pillow/Pillow/security/advisories/GHSA-pwv6-vv43-88gr) - [https://github.com/python-pillow/Pillow/pull/9520](https://github.com/python-pillow/Pillow/pull/9520) - [https://github.com/python-pillow/Pillow](https://github.com/python-pillow/Pillow) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-pwv6-vv43-88gr) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### Pillow has a PDF Parsing Trailer Infinite Loop (DoS) [CVE-2026-42310](https://nvd.nist.gov/vuln/detail/CVE-2026-42310) / [GHSA-r73j-pqj5-w3x7](https://github.com/advisories/GHSA-r73j-pqj5-w3x7) <details> <summary>More information</summary> #### Details ##### Impact An attacker can supply a malicious PDF that causes the process to hang indefinitely, consuming 100% CPU and making the application unresponsive. ##### Patches Patched version: 12.2.0. PdfParser (introduced in Pillow 4.2.0) follows Prev pointers in PDF trailers to read cross-reference sections. If a trailer's Prev pointer references an offset that has already been processed — either pointing to itself or forming a longer cycle — the parser enters an infinite loop. Pillow now tracks previously processed trailer offsets and raises an error if a cycle is detected. ##### Workarounds Use any version but the affected versions: >= 4.2.0, < 12.2.0 ##### Resources - Fix: https://github.com/python-pillow/Pillow/pull/9519 #### Severity - CVSS Score: 5.1 / 10 (Medium) - Vector String: `CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N` #### References - [https://github.com/python-pillow/Pillow/security/advisories/GHSA-r73j-pqj5-w3x7](https://github.com/python-pillow/Pillow/security/advisories/GHSA-r73j-pqj5-w3x7) - [https://github.com/python-pillow/Pillow/pull/9519](https://github.com/python-pillow/Pillow/pull/9519) - [https://github.com/python-pillow/Pillow](https://github.com/python-pillow/Pillow) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-r73j-pqj5-w3x7) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### FITS GZIP decompression bomb in Pillow BIT-pillow-2026-40192 / [CVE-2026-40192](https://nvd.nist.gov/vuln/detail/CVE-2026-40192) / [GHSA-whj4-6x5x-4v2j](https://github.com/advisories/GHSA-whj4-6x5x-4v2j) <details> <summary>More information</summary> #### Details ##### Impact Pillow did not limit the amount of GZIP-compressed data read when decoding a FITS image, making it vulnerable to decompression bomb attacks. A specially crafted FITS file could cause unbounded memory consumption, leading to denial of service (OOM crash or severe performance degradation). ##### Patches The amount of data read is now limited to the necessary amount. Fixed in Pillow 12.2.0 (PR #&#8203;9521). ##### Workarounds Avoid Pillow >= 10.3.0, < 12.2.0 Only open [specific image formats](https://pillow.readthedocs.io/en/stable/releasenotes/8.0.0.html#image-open-add-formats-parameter), excluding FITS. #### Severity - CVSS Score: 8.7 / 10 (High) - Vector String: `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N` #### References - [https://github.com/python-pillow/Pillow/security/advisories/GHSA-whj4-6x5x-4v2j](https://github.com/python-pillow/Pillow/security/advisories/GHSA-whj4-6x5x-4v2j) - [https://nvd.nist.gov/vuln/detail/CVE-2026-40192](https://nvd.nist.gov/vuln/detail/CVE-2026-40192) - [https://github.com/python-pillow/Pillow/pull/9521](https://github.com/python-pillow/Pillow/pull/9521) - [https://github.com/python-pillow/Pillow/commit/3cb854e8b2bab43f40e342e665f9340d861aa628](https://github.com/python-pillow/Pillow/commit/3cb854e8b2bab43f40e342e665f9340d861aa628) - [https://github.com/python-pillow/Pillow](https://github.com/python-pillow/Pillow) - [https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html#prevent-fits-decompression-bomb](https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html#prevent-fits-decompression-bomb) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-whj4-6x5x-4v2j) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### Pillow has an integer overflow when processing fonts [CVE-2026-42308](https://nvd.nist.gov/vuln/detail/CVE-2026-42308) / [GHSA-wjx4-4jcj-g98j](https://github.com/advisories/GHSA-wjx4-4jcj-g98j) <details> <summary>More information</summary> #### Details If a font advances for each glyph by an exceeding large amount, when Pillow keeps track of the current position, it may lead to an integer overflow. This has been fixed. #### Severity - CVSS Score: 5.1 / 10 (Medium) - Vector String: `CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N` #### References - [https://github.com/python-pillow/Pillow/security/advisories/GHSA-wjx4-4jcj-g98j](https://github.com/python-pillow/Pillow/security/advisories/GHSA-wjx4-4jcj-g98j) - [https://github.com/python-pillow/Pillow](https://github.com/python-pillow/Pillow) This data is provided by [OSV](https://osv.dev/vulnerability/GHSA-wjx4-4jcj-g98j) and the [GitHub Advisory Database](https://github.com/github/advisory-database) ([CC-BY 4.0](https://github.com/github/advisory-database/blob/main/LICENSE.md)). </details> --- ### Release Notes <details> <summary>python-pillow/Pillow (pillow)</summary> ### [`v12.2.0`](https://github.com/python-pillow/Pillow/releases/tag/12.2.0) [Compare Source](https://github.com/python-pillow/Pillow/compare/12.1.1...12.2.0) <https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html> #### Documentation - Update 12.2.0 release notes [#&#8203;9522](https://github.com/python-pillow/Pillow/issues/9522) \[[@&#8203;hugovk](https://github.com/hugovk)] - Add loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm [#&#8203;9482](https://github.com/python-pillow/Pillow/issues/9482) \[[@&#8203;bitplane](https://github.com/bitplane)] - Update Python versions [#&#8203;9515](https://github.com/python-pillow/Pillow/issues/9515) \[[@&#8203;radarhere](https://github.com/radarhere)] - Jeffrey A. Clark -> Jeffrey 'Alex' Clark [#&#8203;9513](https://github.com/python-pillow/Pillow/issues/9513) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Add release notes for [#&#8203;9394](https://github.com/python-pillow/Pillow/issues/9394), [#&#8203;9419](https://github.com/python-pillow/Pillow/issues/9419) and [#&#8203;9456](https://github.com/python-pillow/Pillow/issues/9456) [#&#8203;9467](https://github.com/python-pillow/Pillow/issues/9467) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add Amiga Workbench .info loader to 3rd party plugins list [#&#8203;9459](https://github.com/python-pillow/Pillow/issues/9459) \[[@&#8203;bitplane](https://github.com/bitplane)] - Merge PFM documentation into PPM [#&#8203;9434](https://github.com/python-pillow/Pillow/issues/9434) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update macOS tested Pillow versions [#&#8203;9431](https://github.com/python-pillow/Pillow/issues/9431) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix CVE number [#&#8203;9430](https://github.com/python-pillow/Pillow/issues/9430) \[[@&#8203;hugovk](https://github.com/hugovk)] #### Dependencies - Update xz to 5.8.3 [#&#8203;9523](https://github.com/python-pillow/Pillow/issues/9523) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update libjpeg-turbo to 3.1.4.1 [#&#8203;9507](https://github.com/python-pillow/Pillow/issues/9507) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update libpng to 1.6.56 [#&#8203;9499](https://github.com/python-pillow/Pillow/issues/9499) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update freetype to 2.14.3 [#&#8203;9485](https://github.com/python-pillow/Pillow/issues/9485) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated libavif to 1.4.1 [#&#8203;9479](https://github.com/python-pillow/Pillow/issues/9479) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated harfbuzz to 13.2.1 [#&#8203;9461](https://github.com/python-pillow/Pillow/issues/9461) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update Ghostscript to 10.7.0 [#&#8203;9469](https://github.com/python-pillow/Pillow/issues/9469) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update harfbuzz to 13.0.1 [#&#8203;9453](https://github.com/python-pillow/Pillow/issues/9453) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update libavif to 1.4.0 [#&#8203;9460](https://github.com/python-pillow/Pillow/issues/9460) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update freetype to 2.14.2 [#&#8203;9449](https://github.com/python-pillow/Pillow/issues/9449) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update actions/download-artifact action to v8 [#&#8203;9451](https://github.com/python-pillow/Pillow/issues/9451) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated libpng to 1.6.55 [#&#8203;9425](https://github.com/python-pillow/Pillow/issues/9425) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Testing - Cleanup .spider extension in the same test where it is added [#&#8203;9517](https://github.com/python-pillow/Pillow/issues/9517) \[[@&#8203;radarhere](https://github.com/radarhere)] - Run tests in parallel via tox for 3.5x speedup [#&#8203;9516](https://github.com/python-pillow/Pillow/issues/9516) \[[@&#8203;hugovk](https://github.com/hugovk)] - Enable colour in CI logs [#&#8203;9486](https://github.com/python-pillow/Pillow/issues/9486) \[[@&#8203;hugovk](https://github.com/hugovk)] - Update Ghostscript to 10.7.0 [#&#8203;9469](https://github.com/python-pillow/Pillow/issues/9469) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify TGA test code [#&#8203;9477](https://github.com/python-pillow/Pillow/issues/9477) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update tests to check for ValueError when encoding an empty image [#&#8203;9464](https://github.com/python-pillow/Pillow/issues/9464) \[[@&#8203;radarhere](https://github.com/radarhere)] - Upgrade CI from `macos-15-intel` to `macos-26-intel` [#&#8203;9454](https://github.com/python-pillow/Pillow/issues/9454) \[[@&#8203;hugovk](https://github.com/hugovk)] - Add check-case-conflict hook [#&#8203;9446](https://github.com/python-pillow/Pillow/issues/9446) \[[@&#8203;radarhere](https://github.com/radarhere)] - Specify platform when pulling docker image [#&#8203;9440](https://github.com/python-pillow/Pillow/issues/9440) \[[@&#8203;radarhere](https://github.com/radarhere)] - GHA: Cache libavif and webp builds for Ubuntu [#&#8203;9437](https://github.com/python-pillow/Pillow/issues/9437) \[[@&#8203;hugovk](https://github.com/hugovk)] - Update macOS tested Pillow versions [#&#8203;9431](https://github.com/python-pillow/Pillow/issues/9431) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Other changes - Check calloc return value [#&#8203;9527](https://github.com/python-pillow/Pillow/issues/9527) \[[@&#8203;radarhere](https://github.com/radarhere)] - Check all allocs in the Arrow tree [#&#8203;9488](https://github.com/python-pillow/Pillow/issues/9488) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Reject non-numeric elements inside list coords [#&#8203;9526](https://github.com/python-pillow/Pillow/issues/9526) \[[@&#8203;hugovk](https://github.com/hugovk)] - Move variable declaration inside define [#&#8203;9525](https://github.com/python-pillow/Pillow/issues/9525) \[[@&#8203;radarhere](https://github.com/radarhere)] - Resize tall images vertically first [#&#8203;9524](https://github.com/python-pillow/Pillow/issues/9524) \[[@&#8203;radarhere](https://github.com/radarhere)] - Avoid overflow by not adding extents together [#&#8203;9520](https://github.com/python-pillow/Pillow/issues/9520) \[[@&#8203;hugovk](https://github.com/hugovk)] - Use long for glyph position [#&#8203;9518](https://github.com/python-pillow/Pillow/issues/9518) \[[@&#8203;hugovk](https://github.com/hugovk)] - Raise an error if the trailer chain loops back on itself [#&#8203;9519](https://github.com/python-pillow/Pillow/issues/9519) \[[@&#8203;hugovk](https://github.com/hugovk)] - Only read as much data from gzip-decompressed data as necessary [#&#8203;9521](https://github.com/python-pillow/Pillow/issues/9521) \[[@&#8203;hugovk](https://github.com/hugovk)] - Allow None extents in C setimage() [#&#8203;9504](https://github.com/python-pillow/Pillow/issues/9504) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use critical sections to protect FontObject [#&#8203;9498](https://github.com/python-pillow/Pillow/issues/9498) \[[@&#8203;colesbury](https://github.com/colesbury)] - Add ImageText.Text.wrap() to wrap text [#&#8203;9286](https://github.com/python-pillow/Pillow/issues/9286) \[[@&#8203;radarhere](https://github.com/radarhere)] - Always call StubHandler open() when opening StubImageFile [#&#8203;9412](https://github.com/python-pillow/Pillow/issues/9412) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved BCn overflow check [#&#8203;9043](https://github.com/python-pillow/Pillow/issues/9043) \[[@&#8203;radarhere](https://github.com/radarhere)] - Image will never be None [#&#8203;9512](https://github.com/python-pillow/Pillow/issues/9512) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise EOFError when seeking too far in PSD [#&#8203;9388](https://github.com/python-pillow/Pillow/issues/9388) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise error if ImageGrab subprocess gives non-zero returncode [#&#8203;9321](https://github.com/python-pillow/Pillow/issues/9321) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow for different palette entry sizes when correcting BMP pixel data offset [#&#8203;9472](https://github.com/python-pillow/Pillow/issues/9472) \[[@&#8203;radarhere](https://github.com/radarhere)] - Ignore unspecified extra samples for TIFF separate planar configuration [#&#8203;9514](https://github.com/python-pillow/Pillow/issues/9514) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add PERF to lint and fix findings [#&#8203;9510](https://github.com/python-pillow/Pillow/issues/9510) \[[@&#8203;hugovk](https://github.com/hugovk)] - Switch iOS back to macos-15-intel [#&#8203;9509](https://github.com/python-pillow/Pillow/issues/9509) \[[@&#8203;radarhere](https://github.com/radarhere)] - Catch struct.error [#&#8203;9505](https://github.com/python-pillow/Pillow/issues/9505) \[[@&#8203;radarhere](https://github.com/radarhere)] - Check PyCapsule\_GetPointer and PyBytes\_FromStringAndSize return values [#&#8203;9508](https://github.com/python-pillow/Pillow/issues/9508) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix missing null dereference checks [#&#8203;9489](https://github.com/python-pillow/Pillow/issues/9489) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - CI: Retry failed downloads [#&#8203;9506](https://github.com/python-pillow/Pillow/issues/9506) \[[@&#8203;hugovk](https://github.com/hugovk)] - Use PyModule\_AddObjectRef [#&#8203;9503](https://github.com/python-pillow/Pillow/issues/9503) \[[@&#8203;radarhere](https://github.com/radarhere)] - Release reference to encoder on error [#&#8203;9500](https://github.com/python-pillow/Pillow/issues/9500) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed AVIF and WEBP dealloc [#&#8203;9501](https://github.com/python-pillow/Pillow/issues/9501) \[[@&#8203;radarhere](https://github.com/radarhere)] - Check PyType\_Ready return values [#&#8203;9502](https://github.com/python-pillow/Pillow/issues/9502) \[[@&#8203;radarhere](https://github.com/radarhere)] - Check if PyObject\_CallMethod result is NULL [#&#8203;9494](https://github.com/python-pillow/Pillow/issues/9494) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not use palette from grayscale or bilevel colorspace when reading JPEG2000 images [#&#8203;9468](https://github.com/python-pillow/Pillow/issues/9468) \[[@&#8203;radarhere](https://github.com/radarhere)] - If TGA v2 extension area specifies no alpha, fill alpha channel [#&#8203;9478](https://github.com/python-pillow/Pillow/issues/9478) \[[@&#8203;radarhere](https://github.com/radarhere)] - Set image pixels individually on 32-bit Windows [#&#8203;9492](https://github.com/python-pillow/Pillow/issues/9492) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add error messages before returning NULL when encoding [#&#8203;9493](https://github.com/python-pillow/Pillow/issues/9493) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix `_getxy` refcount leaks [#&#8203;9487](https://github.com/python-pillow/Pillow/issues/9487) \[[@&#8203;hugovk](https://github.com/hugovk)] - Fix invalid test font [#&#8203;9483](https://github.com/python-pillow/Pillow/issues/9483) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add Exif tag "FrameRate" [#&#8203;9470](https://github.com/python-pillow/Pillow/issues/9470) \[[@&#8203;zhiyuanouyang](https://github.com/zhiyuanouyang)] - Support reading JPEG2000 images with CMYK palettes [#&#8203;9456](https://github.com/python-pillow/Pillow/issues/9456) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify `setimage()` by always passing extents [#&#8203;9395](https://github.com/python-pillow/Pillow/issues/9395) \[[@&#8203;radarhere](https://github.com/radarhere)] - If bitmap buffer is empty, do not render anything [#&#8203;8324](https://github.com/python-pillow/Pillow/issues/8324) \[[@&#8203;radarhere](https://github.com/radarhere)] - Change to ValueError when encoding an empty image [#&#8203;9394](https://github.com/python-pillow/Pillow/issues/9394) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add FontFile.to\_imagefont() [#&#8203;9419](https://github.com/python-pillow/Pillow/issues/9419) \[[@&#8203;fjhenigman](https://github.com/fjhenigman)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;9450](https://github.com/python-pillow/Pillow/issues/9450) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Use walrus operator [#&#8203;9448](https://github.com/python-pillow/Pillow/issues/9448) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only close file handle in ImagePalette.save() if it was opened internally [#&#8203;9444](https://github.com/python-pillow/Pillow/issues/9444) \[[@&#8203;bysiber](https://github.com/bysiber)] - Fix `self.decode` typo [#&#8203;9445](https://github.com/python-pillow/Pillow/issues/9445) \[[@&#8203;bysiber](https://github.com/bysiber)] - Fix BMP RLE delta escape reading from wrong file position [#&#8203;9443](https://github.com/python-pillow/Pillow/issues/9443) \[[@&#8203;bysiber](https://github.com/bysiber)] - Correct error check when encoding AVIF images [#&#8203;9442](https://github.com/python-pillow/Pillow/issues/9442) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix unexpected error when saving zero dimension images [#&#8203;9391](https://github.com/python-pillow/Pillow/issues/9391) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use uppercase format ID for PALM [#&#8203;9435](https://github.com/python-pillow/Pillow/issues/9435) \[[@&#8203;radarhere](https://github.com/radarhere)] </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTEuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE2My4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovate-bot added 1 commit 2026-04-14 02:02:20 +02:00
chore(deps): update dependency pillow to v12.2.0 [security]
All checks were successful
Continuous Integration / Lint, Check & Test (push) Successful in 2m11s
Continuous Integration / Build Package (push) Successful in 50s
bd031ea0a4
renovate-bot scheduled this pull request to auto merge when all checks succeed 2026-04-14 02:02:20 +02:00
Some checks are pending
Continuous Integration / Lint, Check & Test (push) Successful in 2m11s
Continuous Integration / Build Package (push) Successful in 50s
Build Package
Required
Lint, Check & Test
Required
Some required checks are missing.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/pypi-pillow-vulnerability:renovate/pypi-pillow-vulnerability
git checkout renovate/pypi-pillow-vulnerability
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: kfickel/hokusai#7
No description provided.