CVE Listesine Dön
CVE-2026-85035

Use-after-free via dynamically allocated message queue retained by the CAN RX filter

CVSS Skor

8.8

EPSS İhtimal

—

Risk Skoru

0.9

Yayın

4 sa önce

Resmî yama doğrulandı

Etkilenen ürün ve sürüm için yayımlanan güvenlik güncellemesini uygulayın.

Envanterimdeki Etkisi

Yalnızca hesabınıza eklediğiniz kişisel ürünler değerlendirilir; kurumsal envanter burada görünmez.

Oturum kontrol ediliyor…

Zafiyet Açıklaması

DayBreach AI Açıklaması

Kaynakla doğrulandı

CVE-2026-85035: Zephyr Projesinde CAN RX Filtresi Üzerinden Kullanım Sonrası Serbest Bırakma (Use-After-Free) Zafiyeti

Okunan kaynak

1

Kaynak uyumu

Tam uyum

Kanıt güveni

%55

Kısa açıklama

Zephyr projesindeki can_add_rx_filter_msgq() sistem çağrısı, dinamik olarak ayrılmış mesaj kuyruklarının yaşam döngüsünün çekirdek tarafından takip edilmemesi nedeniyle bir kullanım sonrası serbest bırakma (use-after-free) zafiyetine açıktır. Ayrıcalıksız bir kullanıcı modu iş parçacığı, çekirdek yığınında bozulmaya yol açabilecek şekilde bu açığı istismar edebilir.

Neden önemli?

Bu zafiyet, CONFIG_USERSPACE=y ve CONFIG_DYNAMIC_OBJECTS=y yapılandırmalarına sahip sistemlerde ayrıcalıksız bir kullanıcının çekirdek yığınını bozmasına ve kullanıcı ile çekirdek modu izolasyonunu aşmasına olanak tanır.

Ne yapılmalı?

  • Kuyruğu K_SYSCALL_OBJ_STATIC() ile doğrulayan düzeltmeyi uygulayın
  • Yalnızca statik olarak tanımlanmış kuyrukların (CAN_MSGQ_DEFINE()) kullanıcı modundan kaydedilmesini sağlayın
  • Satıcı danışmanlıklarını ve yama referanslarını takip edin
Kanıt zinciri ve kaynaklar3 doğrulanmış iddia

can_add_rx_filter_msgq() sistem çağrısı, dinamik olarak ayrılmış mesaj kuyruğu işaretçisini tutar ancak nesne ömrünü doğrulamadığı için kullanım sonrası serbest bırakma zafiyetine neden olur.

Zafiyet, CONFIG_USERSPACE=y ve CONFIG_DYNAMIC_OBJECTS=y yapılandırmalarında ayrıcalıksız bir kullanıcı modu iş parçacığının çekirdek yığınını bozmasına olanak tanır.

Sorun, kuyruğu nesne bayraklarını reddeden K_SYSCALL_OBJ_STATIC() ile doğrulayarak çözülür.

Kaynaklardaki teknik metni göster

The can_add_rx_filter_msgq() system call installs a CAN RX filter whose callback (can_msgq_put() in drivers/can/can_common.c) is handed the caller's struct k_msgq * as user_data. The controller driver stores that raw pointer in its filter table and dereferences it from the RX path every time a matching frame arrives. The system call verifier z_vrfy_can_add_rx_filter_msgq() in drivers/can/can_handlers.c validated the queue only with K_SYSCALL_OBJ(), which is a point-in-time check of type, initialization and caller permission and says nothing about the object's lifetime. On a build with CONFIG_USERSPACE=y and CONFIG_DYNAMIC_OBJECTS=y, an unprivileged user-mode thread that has been granted access to a CAN device can obtain a message queue whose lifetime it fully controls: k_object_alloc(K_OBJ_MSGQ) followed by k_msgq_alloc_init(). The lifetime of such an object is driven solely by its permission bitmask, and a pointer retained by the kernel is not represented there. After registering the filter, the thread calls k_object_release() — or simply terminates — and unref_check() frees the struct k_msgq storage while the CAN driver still holds the pointer. The next matching CAN frame causes k_msgq_put() to run in supervisor context against freed memory that the attacker can have groomed with another kernel allocation: the frame payload is memcpy()d through the reused block's write_ptr, and the queue's wait_q (and poll_events under CONFIG_POLL) list nodes are manipulated. This yields kernel-heap corruption reachable from a user-mode thread, defeating the isolation CONFIG_USERSPACE is intended to provide; the same dangling pointer also arises benignly when an application thread exits without calling can_remove_rx_filter(). The fix validates the queue with K_SYSCALL_OBJ_STATIC(), which additionally rejects objects carrying K_OBJ_FLAG_ALLOC, so only statically defined queues (CAN_MSGQ_DEFINE()) may be registered from user mode. Supervisor-mode callers bypass the verifier and must themselves keep the queue valid until the filter is removed.

CVSS vektörü: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

CWE: CWE-416

Açıklama kaynak kayıtlardan otomatik derlendi. Puanlar, aktif sömürü, yama ve exploit durumları doğrudan kaynaklardan gelir.

IMPACT — Etkilenen Ürünler ve Yazılımlar

Affected Products

The following products are affected by CVE-2026-85035 vulnerability. Even if our threat engine is aware of the exact versions of the products that are affected, the information is represented below.

IDVENDORPRODUCTACTION
1zephyrprojectzephyr İncele
Total Affected Vendor: 1|Products: 1

RED HAT CSAF/VEX — Ürün Etki Kontrolü

Red Hat bu CVE için henüz bir CSAF/VEX etki kaydı yayımlamamış. Bu durum “etkilenmiyor” anlamına gelmez.

SCORING — CVSS Çoklu Kaynak Skoru

CVSS Scores

The Common Vulnerability Scoring System is a standardized framework for assessing the severity of vulnerabilities in software and systems. We collect and display CVSS scores from various sources for each CVE.

SCOREVERSIONSEVERITYVECTORSOURCE
8.8CVSS V3_1HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HCVE CNA
8.8CVSS V31HIGHCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HNVD

Yama ve İyileştirme Rehberi (Solution)

Solution & Remediation Advisory

Yama doğrulandı

2 doğrulanmış yama veya düzeltilmiş sürüm kanıtı bulundu.

cvelist

Fix commit

Kaynağı aç
reference

Fix commit

Kaynağı aç
Etkilenen ürün ve sürümü yukarıdaki kaynak kanıtlarıyla doğrulayın.
İnternete açık servislerde erişimi kısıtlayın ve ağ segmentasyonu uygulayın.
Kanıtta belirtilen resmî güncellemeyi yalnızca eşleşen ürün ve sürüme uygulayın.
Sunucu günlüklerini ve ağ uçlarını anormal çalıştırma belirtileri için izleyin.

Public exploit ve aktif sömürü durumu

Doğrulanmış exploit istihbaratı

Bu CVE için henüz doğrulanmış public PoC, exploit repository’si veya Metasploit modülü bulunamadı.

Zafiyet Dağılımı ve Saldırı Kalıpları (CWE & CAPEC)

CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-85035 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2026-85035 weaknesses.

Saldırı Vektörü ve Erişilebilirlik Karakteristiği

ErişimYerel erişim
YetkiDüşük
KullanıcıGerekmiyor

Resmi Kaynaklar ve Danışma Bültenleri

CVSS Vektör Radar Grafiği

8.8 / 10
Attack VectorLocalComplexityLowPrivilegesLowUser Interact.NoneConfidentialityLowIntegrityNoneAvailabilityHigh

Vulnerability Scoring Details

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Attack VectorLocal (Yerel)
Attack ComplexityLow (Düşük)
Privileges RequiredLow (Düşük Yetki)
User InteractionNone (Gerekmiyor)
Confidentiality (Gizlilik)Low (Düşük)
Integrity (Bütünlük)None (Yok)
Availability (Erişilebilirlik)High (Yüksek)

Yama doğrulandı

2 doğrulanmış yama veya düzeltilmiş sürüm kanıtı bulundu.

Üreticiyi takip et

Zafiyet Türü (CWE & CAPEC)

İlgili Benzer Açıklar

Bu açığı API ile alın

Etkilenen ürünler, sürüm aralıkları, istismar durumu ve yama bilgisi tek istekte; ücretsiz anahtarla.

curl -H "x-api-key: $DAYBREACH_API_KEY" \
  "https://api.daybreach.dev/api/v1/intel/cves/CVE-2026-85035"