Hoch

Pillow: Speicherzugriff außerhalb der Grenzen in _imagingmorph bei Bildern mit Breite null

  • Veröffentlicht: 20.10.2026
  • Aktualisiert: 20.10.2026 23:29

Zusammenfassung

Eine PPM- oder PGM-Datei kann eine Breite von 0 deklarieren, die von Pillow akzeptiert wird und ein Bild der Größe (0, N) erzeugt. Wird dieses Bild an ImageMorph.MorphOp.apply() übergeben, indiziert der native Morphologie-Code einen Zeilenpuffer bei outrow[width - 1], was bei einer Breite von 0 dem Index outrow[-1] entspricht. Dies führt zum Absturz des Prozesses.

Details

Der PPM-Parser liest Breite und Höhe ohne Prüfung einer unteren Bereichsgrenze aus:

  • src/PIL/PpmImagePlugin.py:119

Die native Funktion apply() schreibt die Zeilenränder, ohne abzusichern, dass die Breite positiv ist:

  • src/_imagingmorph.c:81 setzt outrow[0] = outrow[width - 1] = 0;

match() und get_on_pixels() verwenden dasselbe Muster zur Randindizierung.

PoC

python
from PIL import Image, ImageMorph

# A width-0 image (also producible from a crafted PPM header). apply() indexes
# outrow[width - 1] == outrow[-1] in native code.
im = Image.new("L", (0, 5))
ImageMorph.MorphOp(op_name="dilation4").apply(im)

Ausführung:

bash
$ python 03_poc.py
Segmentation fault (core dumped)

Beobachtet bei einem Build aus den Quelldateien von Commit 3e2ab96.

Unter AddressSanitizer:

==ERROR: AddressSanitizer: SEGV on unknown address (pc ... in apply)
    #0 apply   src/_imagingmorph.c:81
SUMMARY: AddressSanitizer: SEGV src/_imagingmorph.c:81 in apply

Bei einer Breite von 0 trifft der Schreibvorgang an Position outrow[width - 1] auf eine nicht zugeordnete Speicherseite, sodass er sich als SEGV an der Zeile des Randschreibvorgangs und nicht als Redzone-Überlauf manifestiert.

Auswirkungen

Schreibzugriff außerhalb der Grenzen in einer C-Erweiterung. Betroffen ist jede Anwendung, die eine Morphologie-Operation auf einem Bild aus nicht vertrauenswürdiger Quelle ausführt. Die Folge ist ein Absturz und mögliche Speicherkorruption.

Was zu tun ist

Aktualisieren Sie das Paket pillow auf Version 13.0.0 oder höher.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
Python (PyPI) pillow < 13.0.0 13.0.0

Verweise

CVSS-Wert -
CVSS-Vektor
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
Schwäche (CWE)
CWE-787
Plattform
Python (PyPI)
Paket
pillow
Veröffentlicht
20.10.2026
Aktualisiert
20.10.2026 23:29

Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.

OSV / GitHub Advisory Database - GHSA-58r4-6rv3-gfh8 - CC BY 4.0

Schwachstellenhistorie: pillow

Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (81) im Archiv
Einträge insgesamt
81
Erste → letzte
04.2014 10.2026
Ohne Fix
0
In Angriffen ausgenutzt
1

Verteilung nach Schweregrad

  • Kritisch 10
  • Hoch 53
  • Mittel 16
  • Niedrig 1
  • Nicht bewertet 1

Veröffentlichungen pro Jahr

  1. 2017: 1
  2. 2018: 0
  3. 2019: 1
  4. 2020: 10
  5. 2021: 20
  6. 2022: 8
  7. 2023: 3
  8. 2024: 2
  9. 2025: 1
  10. 2026: 23

früher: 12

Schweregrad:
  1. Pillow: Speicherzugriff außerhalb der Grenzen in _imagingmorph bei Bildern mit Breite null dieser Eintrag
    Hoch CVE-2026-112397 < 13.0.0 13.0.0
  2. Hoch · 7.5 CVE-2026-59200 >= 5.1.0, < 12.3.0 12.3.0
  3. Hoch CVE-2026-42311 >= 10.3.0, < 12.2.0 12.2.0
  4. Hoch · 7.5 CVE-2026-40192 >= 10.3.0, < 12.2.0 12.2.0
  5. Hoch CVE-2026-25990 >= 10.3.0, < 12.1.1 12.1.1
  6. Hoch · 7.1 CVE-2025-48379 >= 11.2.0, < 11.3.0 11.3.0
  7. Hoch · 6.7 CVE-2024-28219 < 10.3.0 10.3.0
  8. Kritisch · 8.1 CVE-2023-50447 < 10.2.0 10.2.0
Mehr anzeigen (20) 20 von 63 angezeigt

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.