Tetrak
GitHub ↗
Security · Pillow

Arrow export leaks heap memory when PILLOW_ALIGNMENT is above 1

Pillow: Arrow export leaks stale heap memory when PILLOW_ALIGNMENT > 1

Advisory
CVE-2026-114501
Library
Pillow, pillow on PyPI
Published
Severity
not scored upstream
Affected
< 12.3.0
Fixed in
12.3.0
Reaches you
through another call

What triggers it

Exporting an image to Arrow with PILLOW_ALIGNMENT set above 1.

What sillybos does

Not reached by opening a file

Opening or reading a file never reaches this flaw, so a check before decoding has nothing to refuse. Listed so that nobody expects it to.

A memory leak in the Arrow export, a call the program makes on an image it already holds, under a build-time alignment setting; no file carries the trigger, and the effect is lost memory, not a file's doing.

Proposed from the advisory's text on 2026-11-01, as part of folding the backfill into the record; confirmed by a person on 2026-11-03. Re-read on 2026-11-03: no file carries the trigger.

How to protect yourself

In general. Upgrade to Pillow 12.3.0.

Specifically. Not a pre-decode matter: the flaw is in a call that opening a file never makes.

The general advice applies to every row here.

Sources