„`html
Zusammenfassung
CVE-2026-18220 beschreibt eine Out-of-Bounds-Write-Schwachstelle in der BFD-Bibliothek (Binary File Descriptor) von GNU binutils. Die Anfälligkeit befindet sich im DLX-ELF-Backend und ermöglicht Angreifern die Ausführung von beliebigem Code durch speziell präparierte ELF/DLX-Objektdateien. Der Schweregrad wird mit CVSS 7.8 (High) bewertet.
Betroffene Systeme
Alle Systeme mit GNU binutils, bei denen das DLX-Backend aktiviert ist (typischerweise via --enable-targets=all). Betroffen sind alle BFD-konsumierenden Tools:
- objdump
- readelf
- strip
- ld (Linker)
- nm
- objcopy
Technische Details
Die Vulnerabilität liegt in der Funktion dlx_rtype_to_howto() in bfd/elf32-dlx.c. Diese Funktion ordnet ELF-Relokationstypen auf interne Howto-Strukturen ab, führt aber keine ausreichende Bereichsprüfung (Bounds Checking) für attackerkontrollierte Relokationstypen durch.
Der kritische Fehler: ELF32_R_TYPE(r_info)-Werte werden ohne Validierung zur Indizierung in das dlx_elf_howto_table[]-Array verwendet. Das DLX-Relokationstyp-Adressraum ist nicht-kontigous (Basis-Typen 0-6, erweiterte Typen ab 0x10000+), doch der Default-Case ermöglicht beliebige Index-Werte.
Dies ermöglicht einen Heap-Overflow, der durch File Stream Oriented Programming (FSOP) gegen glibc FILE-Strukturen ausgenutzt werden kann, um die Kontrolle zum Aufrufen von system() umzuleiten.
Empfohlene Massnahmen
- Binaries validieren: Implementieren Sie strikte Validierung von ELF-Dateien vor der Verarbeitung mit binutils-Tools
- Sandboxing: Führen Sie binutils-Operationen in isolierten Umgebungen aus, besonders in CI/CD-Pipelines
- DLX-Backend deaktivieren: Kompilieren Sie binutils ohne DLX-Support, falls nicht erforderlich
- Input-Quellen kontrollen: Reduzieren Sie die Verarbeitung untrusted binärer Dateien
- Security-Patches abwarten: Überwachen Sie GNU binutils-Updates auf offizielle Fixes
Bewertung
CVSS Score: 7.8 (High)
Angriffsvektor: Local
Status: Kein Patch verfügbar
Diese kritische Schwachstelle erfordert sofortige Risikominderungsmassnahmen bis ein offizieller Patch bereitgestellt wird.
„`