ImageSharp 3.1.12: BigTIFF-DoS beim Bild-Upload und EXIF/GPS-Leck in Avataren absichern #241
Labels
No labels
priority/could
priority/must
priority/should
priority/wont
status/blocked
status/claimed
status/done-migrated
type/bug
type/feature
type/infra
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/todo#241
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hintergrund
dotnet buildmeldet NuGet-Audit-Warnungen (NU1902/NU1903) fürSixLabors.ImageSharp3.1.12: GHSA-gwg2-r3hj-4w44, GHSA-wmxv-xphr-5c9g (moderat), GHSA-j3p4-wp97-rph4, GHSA-j9gm-c75j-xc9q, GHSA-jjfr-hcj7-qf5w (hoch). Gefixt erst in 4.1.2 (Lizenzschlüssel nötig), es gibt keinen 3.x-Fix.Analyse (wie Checkly ImageSharp nutzt)
ImageSharp wird nur in
Checkly/Uploads/ImageUploadValidator.cs(Avatar-Upload, KI-Produktfoto-Erkennung) verwendet.Image.Identifyläuft mit der Default-Konfiguration (alle Decoder inkl. TIFF) vor der JPEG/PNG/WebP-Allowlist. Nachgestellt mit 3.1.12: eine 24-Byte-BigTIFF hältIdentify> 8 s (praktisch unbegrenzt, ~2^56 Iterationen) auf einem Thread fest, nicht abbrechbar. Jeder eingeloggte Nutzer kann das über den Avatar-Upload auslösen.IccProfile.Entrieserreichbar, das Checkly nie aufruft.Zusatzbefund (Datenschutz-Bug): Entgegen den Code-Kommentaren bleiben EXIF-Daten (inkl. GPS) beim Re-Encoding erhalten (nachgestellt: EXIF überlebt Load -> Resize -> JPEG/WebP). Avatare sind für andere Listenmitglieder sichtbar; das an den KI-Anbieter geschickte Foto enthält ebenfalls EXIF (verletzt Security-Pre-Review-Punkt 2 von #95).
Entscheidung (Mensch, 2026-10-08)
Option (c): bei 3.1.12 bleiben, Risiko mit Mitigationen akzeptieren. (Alternativen: Migration auf SkiaSharp, ImageSharp-4-Lizenz kaufen.)
Akzeptanzkriterien
Identify); eine BigTIFF-Datei wird sofort abgelehnt.NuGetAuditSuppressmit Begründung unterdrückt (neue Advisories bleiben sichtbar).Claimed by session "Update vulnerable ImageSharp in Checkly [33dd42]"
Umsetzung von Option (c) laut Issue-Beschreibung.
Erledigt in
83aac247(Fix) und79ad574a(Team-Memory), direkt aufmaster.Umfang (Option c)
ImageUploadValidatornutzt fürIdentifyundLoadeine Konfiguration, die nur JPEG-, PNG- und WebP-Decoder kennt. TIFF/BigTIFF, GIF, BMP usw. werden sofort als unbekanntes Format abgelehnt; die BigTIFF-Endlosschleife (GHSA-wmxv-xphr-5c9g) ist damit nicht mehr erreichbar.AutoOrient, damit Handyfotos nach dem Entfernen der EXIF-Daten nicht quer liegen) und alle Metadaten-Profile (EXIF inkl. GPS, XMP, ICC, IPTC, CICP) auf Bild- und Frame-Ebene entfernt. Gilt für Avatar und KI-Foto.NuGetAuditSuppressinDirectory.Build.propsunterdrückt, mit Begründung zur Erreichbarkeit. Neue ImageSharp-Advisories schlagen weiterhin an.Tests
ArgumentExceptionabgelehnt; gespeicherter Avatar enthält kein EXIF; das an den KI-Dienst gesendete JPEG hat kein EXIF und ist aufgerichtet (Orientation 6, 40x20 -> 20x40).dotnet buildohne ImageSharp-Audit-Warnungen.Security-Review: keine Befunde. Hinweis des Reviews zu JPEG-COM-Kommentaren geprüft: ImageSharp 3.1.12 modelliert diese nicht (
JpegMetadatahat keineComments), sie werden also nicht mit ausgegeben.Bekannte Grenzen