CVE-2026-11811
NiskieCVSS 3.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 17 - wyżej niż 17% wszystkich znanych CVE
Streszczenie
Klient aktualizacji OTA UpdateHub wycieka deskryptor gniazda CoAP/DTLS w ścieżkach błędów nawiązywania połączenia. Błąd w logice sprzątania powoduje, że deskryptor nie jest zamykany, a otwarte gniazdo jest nadpisywane przy kolejnej próbie, co prowadzi do trwałego wycieku z puli gniazd aż do restartu.
Ocena ryzyka
Każda nieudana próba połączenia z serwerem UpdateHub trwale wycieka jeden deskryptor. Po wyczerpaniu puli gniazd sieć w całym urządzeniu ulega degradacji, co prowadzi do odmowy usługi (DoS). Atakujący w sieci może celowo zakłócać ruch, aby przyspieszyć ten proces.
Rekomendacja
Zastosuj poprawkę od producenta, która naprawia logikę sprzątania w funkcji start_coap_client(). Jeśli to możliwe, ogranicz dostęp do serwera UpdateHub lub zwiększ interwał sondowania, aby zmniejszyć tempo wycieku.
Oryginalny opis (angielski, źródło NVD)
The UpdateHub over-the-air update client's start_coap_client() in subsys/mgmt/updatehub/updatehub.c leaks the CoAP/DTLS socket descriptor on its connection-setup failure paths. The shared error: cleanup gated socket closing on a ret > 0 flag, but ret was set to -1 immediately after the socket was created, so when zsock_setsockopt() (DTLS) or zsock_connect() subsequently failed the gate was false and cleanup_connection() was never called. The open descriptor in the global ctx.sock was then overwritten by the next attempt, permanently leaking it from the socket / net_context pool until reboot. The failing setup path is reached every time the OTA client tries to contact the UpdateHub server and the connection cannot be established — driven automatically by the periodic autohandler() poll (and on demand via the updatehub_probe()/updatehub_update() API or the updatehub run shell command). The DTLS handshake/connect outcome is influenceable by a network or on-path attacker who drops, resets, or otherwise disrupts traffic to the server, and also fails naturally whenever the server is unreachable. Each failed attempt permanently leaks one descriptor; once the shared socket pool is exhausted, networking degrades device-wide until the device is rebooted, a denial-of-service condition. Severity is low because the leak rate is bounded by the configured OTA poll interval (default once per 24 hours), the effect is gradual and recovered by reboot, and only builds with the UpdateHub client enabled are affected. There is no memory-corruption, information-disclosure, or authentication impact.

