„`html
Zusammenfassung
CVE-2026-8796 beschreibt eine Heap Out-of-Bounds Read Schwachstelle in Sereal::Decoder für Perl vor Version 5.005. Die Vulnerabilität ermöglicht es Angreifern, über manipulierte Eingaben auf Speicherbereiche außerhalb des vorgesehenen Buffers zuzugreifen. Mit einem CVSS-Wert von 8.1 wird die Schwachstelle als kritisch eingestuft.
Betroffene Systeme
Alle Installationen von Sereal::Decoder mit Versionsnummern vor 5.005 sind betroffen. Dies umfasst verschiedene Systemumgebungen, die diesen Perl-Deserialisierer verwenden, insbesondere in Szenarien mit untrusted Input-Verarbeitung über Netzwerkschnittstellen.
Technische Details
Die Schwachstelle befindet sich in der Datei Perl/Decoder/srl_decoder.c in den Funktionen srl_read_object() und srl_read_hash(). Diese verarbeiten COPY-Tags – Rückreferenzen, deren Ziel-Byte als neuer Tag interpretiert wird.
Das kritische Szenario entsteht, wenn das Ziel-Byte dem SHORT_BINARY-Pattern entspricht. Dieses Muster beschreibt einen Inline-String, dessen Länge in den niederwertigen Bits des Tags codiert ist. Normalerweise sollte diese Länge auf den Bereich vor dem COPY-Tag begrenzt sein.
Ein Angreifer kann jedoch durch Kontrolle des COPY-Offsets diesen innerhalb eines zuvor dekodiertes Wertes platzieren – nicht auf einer Tag-Grenze. Dies ermöglicht das Pflanzen eines manipulierten Bytes, das der Decoder als SHORT_BINARY-Tag interpretiert. Der resultierende Lesezugriff ist unbegrenzt und kann bis zu 31 Bytes über das Eingabe-Buffer-Ende hinaus in den Heap lesen.
Die gelesenen Bytes werden je nach Pfad als Klassennamen (OBJECT-Pfad) oder Hash-Schlüssel (HASH-Pfad) verwendet, was zu Informationspreisgabe führt.
Empfohlene Massnahmen
- Aktualisierung auf Sereal::Decoder Version 5.005 oder höher durchführen
- Eingabevalidierung und Sandboxing implementieren
- Überwachung auf unerwartete Heap-Zugriffe
- Verarbeitung von Sereal-Daten aus untrusted Quellen überprüfen
Bewertung
CVSS v3.1: 8.1 (High)
Netzwerkbasierter Angriff ohne Authentifizierung möglich. Patch aktuell nicht verfügbar – Mitigation durch Versionupgrade erforderlich.
„`