Zephyr Project bis 4.4.1 Syscall Verifier sockets.c z_vrfy_zsock_sendmsg/z_vrfy_zsock_recvmsg msg_iovlen Race Condition
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 8.4 | $0-$5k | 2.38+ |
Zusammenfassung
In Zephyr Project Zephyr bis 4.4.1 wurde eine Schwachstelle entdeckt. Sie wurde als sehr kritisch eingestuft. Es betrifft die Funktion z_vrfy_zsock_sendmsg/z_vrfy_zsock_recvmsg der Datei subsys/net/lib/sockets/sockets.c der Komponente Syscall Verifier. Mittels Manipulieren des Arguments msg_iovlen mit unbekannten Daten kann eine Race Condition-Schwachstelle ausgenutzt werden.
Diese Schwachstelle wird als CVE-2026-12234 gehandelt. Der Angriff muss lokal erfolgen. Es ist kein Exploit verfügbar.
Details
Eine Schwachstelle wurde in Zephyr Project Zephyr bis 4.4.1 ausgemacht. Sie wurde als sehr kritisch eingestuft. Davon betroffen ist die Funktion z_vrfy_zsock_sendmsg/z_vrfy_zsock_recvmsg der Datei subsys/net/lib/sockets/sockets.c der Komponente Syscall Verifier. Durch das Beeinflussen des Arguments msg_iovlen mit einer unbekannten Eingabe kann eine Race Condition-Schwachstelle ausgenutzt werden. Klassifiziert wurde die Schwachstelle durch CWE als CWE-367. Auswirkungen hat dies auf Vertraulichkeit, Integrität und Verfügbarkeit. Die Zusammenfassung von CVE lautet:
The userspace syscall verifiers z_vrfy_zsock_sendmsg() and z_vrfy_zsock_recvmsg() in subsys/net/lib/sockets/sockets.c snapshot the caller-supplied struct net_msghdr into a kernel-side copy with k_usermode_from_copy(), but then re-read the still-live user struct for subsequent decisions. The kernel iovec shadow buffer is sized from one read of msg->msg_iovlen, while the population loop is bounded by a second, live read of the same field.
Because msg points into ordinary user memory, a cooperating second thread in the same memory domain can inflate msg->msg_iovlen in the window between the sizing read and the loop test (a classic double-fetch / TOCTOU). The population loop then iterates past the number of net_iovec slots actually allocated, writing attacker-influenced iov_base/iov_len values beyond the end of the kernel-heap shadow buffer. The recvmsg verifier has the same defect on both its inbound and result write-back loops.
The code is reachable from an unprivileged user thread whenever CONFIG_USERSPACE is enabled and the zsock_sendmsg/zsock_recvmsg syscalls are available. A successful race corrupts kernel-managed heap memory across the user-to-kernel privilege boundary, yielding a local privilege-escalation primitive or, at minimum, a kernel-fault denial of service. The fix copies the header once and derives every size, bound, and gate from the snapshot, copying each iovec entry atomically so its base and length can no longer be raced apart.Bereitgestellt wird das Advisory unter github.com. Die Verwundbarkeit wird seit dem 15.06.2026 mit der eindeutigen Identifikation CVE-2026-12234 gehandelt. Die Ausnutzbarkeit gilt als leicht. Umgesetzt werden muss der Angriff lokal. Zur Schwachstelle sind technische Details bekannt, ein verfügbarer Exploit jedoch nicht. Ein Exploit zur Schwachstelle wird momentan etwa USD $0-$5k kosten (Preisberechnung vom 12.08.2026).
Ein Aktualisieren auf die Version 4.4.2 vermag dieses Problem zu lösen.
Unter anderem wird der Fehler auch in der Verwundbarkeitsdatenbank von EUVD (EUVD-2026-57069) dokumentiert. If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Produkt
Typ
Hersteller
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 8.8VulDB Meta Temp Score: 8.4
VulDB Base Score: 8.8
VulDB Temp Score: 8.4
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vektor | Komplexität | Authentisierung | Vertraulichkeit | Integrität | Verfügbarkeit |
|---|---|---|---|---|---|
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
| freischalten | freischalten | freischalten | freischalten | freischalten | freischalten |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Zuverlässigkeit: 🔍
Exploiting
Klasse: Race ConditionCWE: CWE-367 / CWE-362
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Teilweise
Lokal: Ja
Remote: Nein
Verfügbarkeit: 🔒
Status: Nicht definiert
Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔒
| 0-Day | freischalten | freischalten | freischalten | freischalten |
|---|---|---|---|---|
| Heute | freischalten | freischalten | freischalten | freischalten |
Threat Intelligence
Interesse: 🔍Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍
Gegenmassnahmen
Empfehlung: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: Zephyr 4.4.2
Timeline
15.06.2026 CVE zugewiesen12.08.2026 Advisory veröffentlicht
12.08.2026 VulDB Eintrag erstellt
12.08.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Advisory: github.comStatus: Bestätigt
CVE: CVE-2026-12234 (🔒)
GCVE (CVE): GCVE-0-2026-12234
GCVE (VulDB): GCVE-100-388925
EUVD: 🔒
Eintrag
Erstellt: 12.08.2026 07:17Aktualisierung: 12.08.2026 09:04
Anpassungen: 12.08.2026 07:17 (59), 12.08.2026 09:04 (1)
Komplett: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.