CVE-2026-13215 in Zephyrinfo

Zusammenfassung

von VulDB • 25.08.2026

Der ext2-Dateisystemtreiber von Zephyr validiert das Feld s_log_block_size im on-disk Superblock beim Einhängen eines Dateisystems nicht. Die Funktion ext2_verify_disk_superblock() in subsys/fs/ext2/ext2_impl.c überprüft zwar die Magic Number, die Revision, die Inode-Größe und die Gruppenanzahlen, beschränkt (bounds) s_log_block_size jedoch nie. Bei einer erfolgreichen Überprüfung berechnet subsys/fs/ext2/ext2_ops.c fs->block_size = 1024 << superblock.s_log_block_size aus diesem vom Angreifer kontrollierten uint32_t-Wert; ein manipulierter Wert führt entweder zu einem Überlauf der Shift-Operation (undefiniertes Verhalten) oder ergibt eine Blockgröße, die weit über CONFIG_EXT2_MAX_BLOCK_SIZE hinausgeht.

Diese Blockgröße wird anschließend von ext2_init_blocks_slab() an k_mem_slab_init() übergeben, um CONFIG_EXT2_MAX_BLOCK_COUNT Blöcke aus dem festen statischen Puffer __ext2_block_memory_buffer (dessen Größe CONFIG_EXT2_MAX_BLOCK_COUNT * CONFIG_EXT2_MAX_BLOCK_SIZE beträgt) zu reservieren. k_mem_slab_init() überprüft nicht, ob die angeforderten Blöke in den Puffer passen, und der ext2-Wrapper verwirft seinen Rückgabewert; dadurch wird das Slab jenseits des Endes des statischen Puffers angelegt. Beim Einhängen werden sofort Blockgruppen-, Bitmap- und Inode-Blöcke mit jeweils fs->block_size Bytes in diese Slab-Blöke gelesen, was beim ersten gelesenen Block zu einem Out-of-Bounds-Write (Schreiben außerhalb der Grenzen) in benachbarten statischen Speicher führt.

Der gesamte Pfad wird ausschließlich durch Daten gesteuert, die aus dem eingehängten Image gelesen werden, wodurch dieser Angriffspunkt für jeden Angreifer erreichbar ist, der ein manipuliertes ext2-Image auf einem Gerät bereitstellen kann, das es einhängt (z. B. eine entfernbare SD-Karte oder ein Speichermedium). Da der ext2-Treiber im Kernel-Modus ausgeführt wird, führt die Bereitstellung von Image-Daten zu einer Memory-Corruption-Primitive mit Supervisor-Rechten, deren Auswirkungen von einem Denial of Service bis hin zur potenziellen Code-Ausführung reichen.

Die Korrektur lehnt s_log_block_size-Werte ab, die den Shift überlaufen (größer als 11) oder eine Blockgröße erzeugen, die CONFIG_EXT2_MAX_BLOCK_SIZE überschreitet; dadurch kann das Block-Slab nicht mehr größer als sein zugrunde liegender Puffer initialisiert werden.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Zuständig

Zephyr

Reservieren

24.06.2026

Veröffentlichung

25.08.2026

Moderieren

akzeptiert

Eintrag

VDB-394929

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you know our Splunk app?

Download it now for free!