CVE-2026-10682 in Zephyrinfo

Zusammenfassung

von VulDB • 27.07.2026

Der Verifier im Userspace, z_vrfy_log_filter_set(), für den syscall log_filter_set in subsys/logging/log_mgmt.c führte einen vorzeichenbehafteten Vergleich gegen den Parameter int16_t src_id durch: src_id < (int16_t)log_src_cnt_get(domain_id). Jeder negative Wert für src_id (z. B. -1) erfüllte diese Prüfung trivial und wurde an z_impl_log_filter_set weitergeleitet, wo er sich auf filter_set() ausbreitete und schließlich in get_dynamic_filter() ankam, das source_id als vorzeichenlosen Index im Linker-Sektions-Array &TYPE_SECTION_START(log_dynamic)[source_id].filters verwendet.

Nach der impliziten Konvertierung über uint32_t wird ein int16_t -1 zu 0xFFFFFFFF, was dazu führt, dass log_dynamic weit außerhalb des gültigen Bereichs indiziert wird und der Kernel einen OOB-Lesezugriff (Out-of-Bounds Read) sowie eine OOB-Read-Modify-Write-Operation (LOG_FILTER_SLOT_GET/SET) auf Speicher neben dem Abschnitt log_dynamic durchführt.

Der geschriebene Wert ist ein begrenzter 3-Bit-Log-Level-Slot innerhalb des betroffenen 32-Bit-Worts, die Zieladresse wird jedoch vom Angreifer gewählt (ein kleiner negativer Offset zu log_dynamic), und der Schreibvorgang erfolgt im Supervisor-Modus nach einem Syscall eines nicht privilegierten User-Threads. Dies stellt eine Primitive für Kernel-Memory-Korruption / Privilegieneskalation dar.

Der Fehler ist in jedem Build mit CONFIG_USERSPACE=y und CONFIG_LOG_RUNTIME_FILTERING=y erreichbar. Vorhanden von Zephyr v3.3.0 bis v4.4.1. Die Korrektur ersetzt die vorzeichenbehaftete Bereichsprüfung durch einen vorzeichenlosen Vergleich: (uint32_t)src_id < log_src_cnt_get(domain_id), der negative Eingaben korrekt ablehnt.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Zuständig

Zephyr

Reservieren

02.06.2026

Veröffentlichung

27.07.2026

Moderieren

akzeptiert

Eintrag

VDB-383540

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!