CVE-2026-18416

Aşağı

Təsvir

subsys/net/lib/coap/coap_link_format.c faylındakı CoAP link-format köməkçisi match_path_uri(), qeydiyyatdan keçmiş resurs yolunu Uri-Query href= seçimində daşınan URI ilə müqayisə edir. Həmin URI NUL ilə sonlandırılmayıb, lakin daxili simvol dövrü hər yol simvolu üçün öz indeksini k bir vahid artırarkən onu seçimin uzunluğu olan len ilə heç vaxt yoxlamırdı. Qeydiyyatdan keçmiş yol seqmenti təqdim edilən URI-dən daha uzun olduqda və URI onun prefiksi olduqda, dövr uri[len] və ondan sonrakıları oxuyaraq seçimin dəyərinin sonuna keçirdi. Yola coap_well_known_core_get_len() və coap_well_known_core_get() funksiyalarından match_queries_resource() vasitəsilə çatılır, yəni /.well-known/core (CoAP server alt sistemi üçün, CONFIG_COAP_SERVER_WELL_KNOWN_CORE, standart olaraq y) xidməti göstərən və ən azı bir struct coap_core_metadata atributlarını bəyan edən resursa göndərilən istənilən autentifikasiya olunmamış GET /.well-known/core?href=/<prefix> sorğusu ilə. Həddindən artıq oxuma (over-read) qəbul buferinə çatmır. Well-known-core qurucuları sorğunu stek-lokal struct coap_option strukturuna analiz edir, onun dəyəri isə seçimin baytlarının kopyalandığı sabit massivdir (value[12] və ya CONFIG_COAP_EXTENDED_OPTIONS_LEN_VALUE baytı), beləliklə uri həmin surətə işarə edir. Buna görə də len-dən kənara oxuma massivin istifadə olunmayan, başladılmamış son hissəsini və seçimin massivi doldurduğu halda eyni stek freymindəki ondan sonrakı baytları oxuyur. (v1.8.0-dan v1.9.x-ə qədər olan ZoAP kitabxanasında seçimin dəyəri bunun əvəzinə qəbul edilmiş paketə işarə edən göstərici idi və həddindən artıq oxuma paket buferi daxilində seçimdən kənara çıxırdı.) Təsir məhduddur. Sonundan kənara oxunan baytların sayı resurs yolu seqmentinin uzunluğu ilə məhdudlaşdırılır və hər bir əlavə bayt yalnız növbəti yol simvoluna bərabər olduqda oxunur, buna görə də praktikada həddindən artıq oxuma bir baytdır. O, həmçinin cavaba təsir edə bilməz: uyğunluğun qaytarılması üçün müqayisə edilən son indeksin len - 1 və ya len olması tələb olunur ki, bunların hər ikisi sərhədlər daxilindədir, beləliklə sərhədlərdən kənar baytlar dövrü yalnız növbəti namizəd resursa yönləndirir. Bunun nəticəsi məlumat sızması və ya uyğunluq xətası deyil, təyin olunmamış davranışdır (undefined behaviour). Düzəliş daxili dövrün yuxarı hissəsinə k >= len qorumasını əlavə edir, beləliklə hər bir uri[k] müraciəti seçimin dəyəri daxilində qalır və eyni zamanda sonda yerləşən * wildcard-ın daha uzun yolla uyğunlaşmasına imkan verir.

CiddilikAşağı
CVSS3.7
İstismar ehtimalı—
MəhsulZephyr
Dərc28 sen 2026
İlk görülmə28 sen 2026

Necə düzəltmək olar

Yeniləyin
  • zephyrproject zephyr4.4.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
zephyrproject zephyr1.8.0 ≤ v < 4.4.24.4.2

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2026-18416 · Zephyr · Dark Radar