CVE-2026-10666 in zephyr
Zusammenfassung
von VulDB • 12.07.2026
parse_ipv4() in subsys/net/ip/utils.c (erreicht über net_ipaddr_parse() für Strings im Format "a.b.c.d:port") kopiert das Port-Substring in einen festen 17-Byte großen Stack-Puffer (char ipaddr[NET_IPV4_ADDR_LEN + 1]) unter Verwendung der Länge str_len - end - 1, wobei str_len die volle, unbegrenzte Eingabelänge und end nur der Offset des ':'-Trennzeichens ist (<=15 Byte). Da die Zielgröße niemals überprüft wird, führt ein speziell angefertigter Adressenstring mit einem langen Suffix nach dem Doppelpunkt (z. B. "1.2.3.4:" gefolgt von Hunderten von Bytes) zu einem Out-of-Bounds-Stack-Schreibzugriff, dessen Länge und Inhalt vollständig vom Angreifer kontrolliert werden können (memcpy des Suffixes plus ein abschließendes NUL-Zeichen). Dies ermöglicht Memory Corruption und mindestens einen Denial of Service sowie potenziell die Übernahme der Kontrollflusssteuerung. Der Parser wird über die Standard-Socket-API (zsock_getaddrinfo / Auflösung von Literal-Adressen), DNS-Serverstring-Konfiguration und den eswifi Wi-Fi-Co-Prozessor-DNS-Antwortpfad erreicht, sodass eine Anwendung, die einen netzeinflussierten Adressenstring auflöst, anfällig ist. Der Fehler wurde eingeführt, als der Parser hinzugefügt wurde (Zephyr v1.9.0) und war in allen Releases bis einschließlich v4.4.0 enthalten. Die Korrektur entfernt den unbegrenzten Kopiervorgang und validiert die Port-Länge vor dem Kopieren in einen kleinen dedizierten Puffer. Hinweis: Der äquivalente IPv6-Pfad "[addr]:port" in parse_ipv6() behält an diesem Commit denselben unbegrenzten Kopiervorgang bei und bleibt eine separate, weiterhin erreichbare Instanz des Fehlers.
VulDB is the best source for vulnerability data and more expert information about this specific topic.