CVE-2026-10848
Açıklama
subsys/net/lib/ocpp içerisindeki OCPP 1.6 istemcisi, parse_rpc_msg() (subsys/net/lib/ocpp/ocpp_j.c) fonksiyonunda gelen WAMP RPC çerçevelerini, mesajın uid ve action alanlarını strncpy(out_buf, token + 1, outlen - 1) ile kopyalayan ve ardından sonucu strchr(out_buf, '"') ile tarayan özel bir yardımcı fonksiyon olan extract_string_field() kullanarak ayrıştırıyordu. strncpy, kaynak en az outlen - 1 (127) bayt uzunluğunda olduğunda hedefi NUL ile sonlandırmadığı için, sonraki strchr işlemi 128 baytlık hedef tamponun ötesine geçerek bitişikteki yığın belleğini okur; eğer tamponun ötesinde bir " baytı bulunursa, tek baytlık bir sınır dışı NUL yazma işlemi de gerçekleşir. extract_payload() fonksiyonundaki ilgili bir hata ise, maksimum uzunluktaki bir çerçevenin doldurduğu ve NUL ile sonlandırılmamış olabilecek alma tamponu üzerinde strchr/strrchr çalıştırır. Ayrıştırılan baytlar doğrudan bir websocket üzerinden OCPP merkezi sistem sunucusundan gelir: okuyucu iş parçacığı, websocket_recv_msg() aracılığıyla recv_buf'u doldurur ve her gelen DATA çerçevesi için parse_rpc_msg() (subsys/net/lib/ocpp/ocpp.c) fonksiyonunu çağırır. Kötü niyetli veya ele geçirilmiş bir merkezi sunucu ya da yol üzerindeki bir saldırgan (OCPP yaygın olarak şifresiz ws:// üzerinden konuşlandırılır), uid veya action alanı kapatma tırnağı içermeyen 127+ bayt uzunluğunda bir RPC çerçevesi göndererek sınır dışı erişimi tetikleyebilir. Temel etki, uzaktan tetiklenebilir bir hizmet reddidir: sınırsız tarama işlemi eşlenmemiş bir sayfada hataya neden olabilir ve hatalı NUL yazımı bitişikteki yığın durumunu bozabilir. Fazladan okunan veriler karşı tarafa yansıtılmaz, bu nedenle bilgi ifşası sınırlıdır. Bu özellik EXPERIMENTAL düzeydedir ve açıkça etkinleştirilmelidir (CONFIG_OCPP). Düzeltme, manuel ayrıştırıcıyı sınırları gözeten json_mixed_arr_parse() ile değiştirir ve çıkarılan uid'yi açıkça NUL ile sonlandırılmış bir tamponla kopyalayarak her iki aşırı okuma işlemini de ortadan kaldırır.
Nasıl düzeltilir
- zephyrproject zephyr4.5.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 4.3.0 ≤ v < 4.5.0 | 4.5.0 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.