CVE-2026-11811
LowCVSS 3.7Exploitation Probability (EPSS)
Low risk17th percentile - higher than 17% of all known CVEs
Summary
The UpdateHub OTA client leaks a CoAP/DTLS socket descriptor on connection-setup failure paths. A bug in cleanup logic prevents the socket from being closed, and the open descriptor is overwritten on the next attempt, permanently leaking it from the socket pool until reboot.
Risk Assessment
Each failed connection attempt permanently leaks one descriptor. Once the socket pool is exhausted, networking degrades device-wide, leading to denial of service (DoS). A network attacker can deliberately disrupt traffic to accelerate this process.
Recommendation
Apply the vendor patch that fixes the cleanup logic in start_coap_client(). If possible, restrict access to the UpdateHub server or increase the polling interval to reduce the leak rate.
Original NVD description (English source)
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.

