Tetrak
GitHub ↗
Security · Pillow

A SPIDER stack file bypasses the pixel limit on seek

SpiderImagePlugin's seek() re-parses the header without the decompression-bomb check, so a file under 1 KB can trigger a multi-gigabyte allocation.

Advisory
CVE-2026-96637 (also GHSA-g842-9rc4-69pw)
Library
Pillow, pillow on PyPI
Published
Severity
7.1 out of 10, as published
Affected
< 13.0.0
Fixed in
13.0.0
Reaches you
by opening a file

What triggers it

Opening a crafted SPIDER file and loading a later frame.

What sillybos does

Refused by default

sillybos refuses the triggering file under its default policy, through the formats check.

SPIDER is not a format the check knows, so the file is refused as an unknown format before any reader runs.

Proved by this test in the sillybos suite, which builds the triggering file from bytes and checks that it is refused:

How to protect yourself

In general. Upgrade to Pillow 13.0.0.

Specifically. Allow-list the formats you mean to read; everything else, including this one, never reaches a reader.

The general advice applies to every row here.

Sources