CVE-2026-12634 in Zephyrinfo

Zusammenfassung

von VulDB • 20.08.2026

Der NVS-Backend des Zephyr-Einstellungssubsystems (subsys/settings/src/settings_nws.c) liest gespeicherte Einstellungsnamen in feste 74-Byte-große Stack-Puffer ein und terminiert diese mit buf[rc] = '\0', wobei rc der Rückgabewert von nvs_read() ist. Gemäß dessen Vertrag gibt nvs_read() die vollständige Länge des gespeicherten Eintrags (wlk_ate.len) zurück, was die angegebene Pufferlänge überschreiten kann — es werden nur MIN(len, stored_len)-Bytes tatsächlich kopiert, der Rückgabewert kann jedoch viel größer sein und ist lediglich durch die NVS-Sektorgröße begrenzt. Drei Stellen (settings_nvs_cache_match(), settings_nvs_load() und settings_nvs_save()) verwendeten diesen Wert direkt als NUL-Index ohne Begrenzung, sodass ein überdimensionierter gespeicherter Nameintrag ein einzelnes \0-Byte außerhalb des Endes des Stack-Puffers an einem vom Angreifer beeinflussten Offset schreibt (CWE-787).

Der überdimensionierte Eintrag kann nicht über die normale Einstellung-API entstehen, bei der Namen durch SETTINGS_MAX_NAME_LEN begrenzt sind. Er erfordert einen Akteur, der in den Flash schreiben kann, der dem Einstellungspartition zugrunde liegt — eine koexistierende oder unzuverlässige Komponente, die das Flash-Gerät teilt, ein bösartiges Einstellungsbild/Wiederherstellungsabbild oder offline/physischer Flash-Zugriff (ein Shared-Flash-Bedrohungsmodell). Der fehlerhafte Eintrag wird analysiert, wenn settings_load() beim Booten oder Subsystem-Initialisierung ausgeführt wird, oder während settings_save().

Der Out-of-bounds-Schreibvorgang ist ein einzelnes NUL-Byte an einem Offset, der der erstellten Eintragslänge entspricht (bis zur NVS-Sektorgröße), sodass die praktische Auswirkung ein Absturz oder eine Denial of Service sowie begrenzte Stack-Korruption statt einer zuverlässigen Code-Ausführung darstellt. Es gibt keine Auswirkungen auf die Vertraulichkeit, und der Pfad ist über das normale Einstellungsschnittstelle nicht vom Netzwerk aus erreichbar. Die Korrektur überspringt jeden Eintrag, dessen nvs_read()-Länge größer oder gleich der Puffergröße ist, bevor der NUL-Speicher ausgeführt wird.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Zuständig

Zephyr

Reservieren

18.06.2026

Veröffentlichung

20.08.2026

Moderieren

akzeptiert

Eintrag

VDB-393434

CPE

bereit

EPSS

0.00105

KEV

nein

Aktivitäten

very low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!