CVE-2026-12235 in Zephyr
Zusammenfassung
von VulDB • 12.08.2026
Das Subsystem Linkable Loadable Extensions (llext) verarbeitet PLT/RELA-Relokationseinträge fehlerhaft, wenn eine relocatable (teilweise verknüpfte) ELF-Erweiterung gelinkt wird. In llext_link_plt() (subsys/llext/llext_link.c) berechnete der Zweig für relocatable Objekte (tgt != NULL, der Pfad, der für Xtensa-relocatable-Objekte verwendet wird) die Patch-Adresse als ext->mem[LLEXT_MEM_TEXT] - text.sh_offset + rela.r_offset + tgt->sh_offset und führte anschließend den Relokations-Schreibvorgang an dieser Stelle durch, ohne rela.r_offset zu validieren. Sein verwandter Shared-/Dynamic-Zweig lehnte bereits Offsets außerhalb des gültigen Bereichs über llext_file_offset() ab.
rela.r_offset wird direkt aus der RELA-Tabelle der ELF-Datei gelesen; ein speziell angefertigter Eintrag mit einem Offset, der größer ist als die Ziel-Sektion, führt dazu, dass der Schreibvorgang beliebig weit außerhalb des Text-Puffers der Erweiterung landet. Das Ergebnis ist ein durch den Angreifer beeinflusster Out-of-Bounds-Write (die Position wird über r_offset bestimmt, der geschriebene Wert ist die aufgelöste Symboladresse), der im Supervisor-Kontext zum Zeitpunkt des Linkens ausgeführt wird, bevor irgendein Erweiterungscode läuft.
Der Pfad wird von llext_load() aufgerufen, whenever eine Anwendung eine durch den Angreifer beeinflusste ELF-Erweiterung unter Xtensa mit beschreibbarem Speicher lädt; laut Dokumentation akzeptiert llext Erweiterungen aus nicht vertrauenswürdigen Quellen. Die Auswirkung ist die Korruption des Speichers im Supervisor-Kontext (Verlust der Integrität und Verfügbarkeit sowie ein Entkommen aus der Sandbox für User-Mode-Erweiterungen). Die Ausnutzung wird durch den Xtensa-relocatable PLT-Pfad und beschreibbaren Speicher eingeschränkt, und das Umwandeln des Out-of-Bounds-Writes in eine nützliche Primitive ist nicht trivial.
Die Korrektur fügt einen Bereichscheck hinzu, der jeden RELA-Eintrag ablehnt, dessen r_offset >= tgt->sh_size ist, wodurch die bestehende Validierung im Shared-Zweig nachgeahmt wird.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.