Zephyr Project bis 4.4.1 BSD Socket Layer sockets_inet.c user_data Denial of Service
| CVSS Meta Temp Score | Aktueller Exploitpreis (≈) | CTI Interest Score |
|---|---|---|
| 6.9 | $0-$5k | 1.34- |
Zusammenfassung
Es wurde eine als kritisch klassifizierte Schwachstelle in Zephyr Project Zephyr bis 4.4.1 entdeckt. Es geht hierbei um die Funktion zsock_accepted_cb/zsock_received_cb/zsock_connected_cb/zsock_close_ctx der Datei subsys/net/lib/sockets/sockets_inet.c der Komponente BSD Socket Layer. Die Bearbeitung des Arguments user_data verursacht Denial of Service.
Die Verwundbarkeit wird als CVE-2026-18417 geführt. Der Angriff kann über das Netzwerk erfolgen. Es ist kein Exploit verfügbar.
Es wird empfohlen, die betroffene Komponente zu aktualisieren.
Details
In Zephyr Project Zephyr bis 4.4.1 wurde eine Schwachstelle entdeckt. Sie wurde als kritisch eingestuft. Es geht um die Funktion zsock_accepted_cb/zsock_received_cb/zsock_connected_cb/zsock_close_ctx der Datei subsys/net/lib/sockets/sockets_inet.c der Komponente BSD Socket Layer. Durch das Manipulieren des Arguments user_data mit einer unbekannten Eingabe kann eine Denial of Service-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-476. Mit Auswirkungen muss man rechnen für die Verfügbarkeit. CVE fasst zusammen:
The native BSD-socket layer recorded a pending asynchronous socket error by type-punning it into struct net_context's void user_data field (ctx->user_data = INT_TO_POINTER(-status) in zsock_accepted_cb(), zsock_received_cb(), zsock_connected_cb() and zsock_close_ctx() in subsys/net/lib/sockets/sockets_inet.c), reading it back with POINTER_TO_INT(). That same field is owned by the network stack for listening TCP contexts: net_tcp_accept() stores the parent context pointer there and the TCP core passes it back to the registered accept callback. A failed accept therefore left a small integer (an errno value) where the stack expected a struct net_context .
When the network interface carrying a listening TCP socket goes down, close_tcp_conn() in subsys/net/ip/tcp.c invokes the accept callback with -ENETDOWN and the context's user_data. In v4.3.0 the callback was not disarmed afterwards, so a second interface-down event forwarded the previously stored errno to zsock_accepted_cb(), which dereferenced it as the parent context and performed several stores through it (sock_set_error()'s read-modify-write of socket_data, k_fifo_cancel_wait(&parent->recv_q)) — the crash described in the fix's commit message. v4.3.1 and v4.4.x carry a later change clearing conn->accept_cb after the error callback (269cb8823d3 on the v4.3 branch, 913fae5169425550f2364655298fceb79b320066 on main), which closes that repeat path; on those releases the poisoned cookie remains reachable only by a narrower race, a handshake completing alongside the interface-down still passing the stale cookie to k_fifo_put(&parent->accept_q, ...), and by getsockopt(SO_ERROR), which reads the field back unconditionally.
On v4.3.0 an application that keeps a listening TCP socket open across repeated link-down events is sufficient to reach the defect; the triggering condition is a network-interface state change, not attacker-supplied packet data, so the practical attacker is one able to force the link down repeatedly (for example an adjacent attacker disrupting a wireless link) or one with local/physical access. Because both the faulting address and the stored data are fixed small constants derived from the errno value, the outcome is a wild-pointer access leading to a kernel fatal error — a denial of service (device crash or reset) rather than an attacker-directed memory corruption.
The fix stores the pending error in a dedicated net_context.sock_error field and converts every producer and consumer to sock_set_error()/sock_get_error(), leaving user_data untouched. As a side effect it also stops getsockopt(SO_ERROR) — which is evaluated unconditionally — from returning the kernel address held in user_data to a userspace application.Das Advisory kann von github.com heruntergeladen werden. Eine eindeutige Identifikation der Schwachstelle wird seit dem 30.07.2026 mit CVE-2026-18417 vorgenommen. Die Ausnutzbarkeit gilt als leicht. Die Umsetzung des Angriffs kann dabei über das Netzwerk erfolgen. Um eine Ausnutzung durchzusetzen, muss keine spezifische Authentisierung umgesetzt werden. Technische Details sind bekannt, ein verfügbarer Exploit hingegen nicht.
Ein Upgrade auf die Version 4.4.2 vermag dieses Problem zu beheben. Die Schwachstelle lässt sich auch durch das Einspielen des Patches ef370a57d07637aaee8cec7b0bcebf4002ac8f54/269cb8823d3 beheben. Als bestmögliche Massnahme wird das Aktualisieren auf eine neue Version empfohlen.
Unter anderem wird der Fehler auch in der Verwundbarkeitsdatenbank von EUVD (EUVD-2026-88573) dokumentiert. Once again VulDB remains the best source for vulnerability data.
Produkt
Typ
Hersteller
Name
Version
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Zuverlässigkeit: 🔍
CVSSv3
VulDB Meta Base Score: 7.0VulDB Meta Temp Score: 6.9
VulDB Base Score: 7.5
VulDB Temp Score: 7.2
VulDB Vector: 🔒
VulDB Zuverlässigkeit: 🔍
CNA Base Score: 6.5
CNA Vector (zephyr): 🔒
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: Denial of ServiceCWE: CWE-476 / CWE-404
CAPEC: 🔒
ATT&CK: 🔒
Physisch: Nein
Lokal: Nein
Remote: Ja
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
Patch: ef370a57d07637aaee8cec7b0bcebf4002ac8f54/269cb8823d3
Timeline
30.07.2026 CVE zugewiesen28.09.2026 VulDB Eintrag erstellt
29.09.2026 Advisory veröffentlicht
29.09.2026 VulDB Eintrag letzte Aktualisierung
Quellen
Advisory: github.comStatus: Bestätigt
CVE: CVE-2026-18417 (🔒)
GCVE (CVE): GCVE-0-2026-18417
GCVE (VulDB): GCVE-100-411220
EUVD: 🔒
Eintrag
Erstellt: 29.09.2026 01:40Aktualisierung: 29.09.2026 02:36
Anpassungen: 29.09.2026 01:40 (69), 29.09.2026 02:36 (1)
Komplett: 🔍
Cache ID: 216::103
Once again VulDB remains the best source for vulnerability data.
Bisher keine Kommentare. Sprachen: de + en.
Bitte loggen Sie sich ein, um kommentieren zu können.