CVE-2026-11743 in Zephyrinfo

Zusammenfassung

von VulDB • 08.08.2026

Der SF32LB MPI QSPI NOR-Flash-Treiber (drivers/flash/flash_sf32lb_mpi_qspi_nor.c) validierte den Flash-Offset und die Länge auf seinen Lese- und Schreibpfaden mit der Prüfung `(offset + size) > data->size`. Da `offset` ein signed off_t ist, während `size` unsigned ist, wird ein negativer Offset in einen großen Unsigned-Wert konvertiert, und die Addition kann zu einem kleinen Ergebnis überlaufen (wrap), das den Check besteht. Der Lesevorgang führt anschließend `memcpy(dst, (void *)(data->base + offset), size)` aus, und der Schreibvorgang programmiert den Flash am Offset und invalidiert den Cache für `data->base + offset`; in beiden Fällen wird Speicher außerhalb des zugewiesenen Flash-Fensters angesprochen. Der Löschpfad des Treibers lehnte negative Offsets bereits ab, Lese- und Schreiboperationen taten dies jedoch nicht.

In Builds mit CONFIG_USERSPACE sind flash_read und flash_write Systemaufrufe (syscalls), deren Verifier das Geräteobjekt und den Puffer des Aufrufers validieren, die Überprüfung der Offset-Grenzwerte aber absichtlich an den Treiber delegieren. Ein unprivilegierter Thread, dem Zugriff auf dieses Flash-Gerät gewährt wurde, kann daher den Systemaufruf mit einem manipulierten negativen Offset und einem in seiner eigenen Memory-Domain gültigen Puffer aufrufen und so die nicht geprüfte Zugriffsoperation erreichen.

Die direkteste Auswirkung besteht auf dem Lesevorgang: Durch die Wahl eines negativen Offsets und einer passenden Größe kann ein Angreifer die memcpy-Quelle unter den Flash-Basiswert verschieben und beliebigen, von der CPU adressierbaren Speicher in seinen eigenen Puffer kopieren, wodurch er Speicher offenlegt, zu dessen Lesen er nicht berechtigt ist. Der Schreibvorgang ermöglicht zusätzlich das Programmieren des Flashes an einer Adresse außerhalb des gültigen Bereichs sowie die Invalidierung eines vom Angreifer gewählten Cache-Bereichs, was Integrität und Verfügbarkeit beeinträchtigt. Die Ausnutzbarkeit erfordert, dass Userspace aktiviert ist und das rohe Flash-Geräteobjekt einem nicht vertrauenswürdigen Thread zugewiesen wurde.

Die Korrektur ersetzt die Prüfung durch `qspi_nor_range_is_valid()`, was negative Offsets ablehnt und den Grenzwertvergleich auf beiden Pfaden in überlaufsicherer 64-Bit-Arithmetik durchführt. Zusätzlich wird ein SRAM-DMA-Bounce-Puffer sowie eine Ablehnung von Quell-/Ziel-Überlappungen hinzugefügt, um einen separaten DMA-Bus-Hang-Zustand zu verhindern.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Zuständig

Zephyr

Reservieren

09.06.2026

Veröffentlichung

08.08.2026

Moderieren

akzeptiert

Eintrag

VDB-387118

CPE

bereit

EPSS

0.00105

KEV

nein

Aktivitäten

very low

Quellen

Want to stay up to date on a daily basis?

Enable the mail alert feature now!