CVE-2024-50175

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: media: qcom: camss: stop_streaming fonksiyonundaki use_count koruması kaldırıldı use_count kontrolü, video hattını süren CSIPHY girişi üzerindeki farklı sanal kanallar (VC) tarafından birden fazla eşzamanlı Ham Veri Arayüzünün (RDI) sürülebilmesi için getirilmişti. Ancak bu, use_count'un hatalı bir kullanımıdır; çünkü use_count, aktif akış sayısını değil, bir video varlığının kullanıcı alanı tarafından kaç kez açıldığını belirtir. use_count ve akış-açık sayısı uyuşmadığında, mevcut durumda olduğu gibi stop_streaming() hata verecektir; bu durum, CAMSS'in libcamera'nın yayınlanan softisp 0.3 sürümü ile kullanılması sırasında belirginleşmiştir. use_count'un bu şekilde kullanımı geçici bir çözümdür ve şu anda tek bir akış durumu için CAMSS'in normal kullanımını bozmaktadır. qcam'in durdurulması aşağıdaki hataya yol açmakta, ardından cihaz tekrar başlatılamamakta ve yeniden başlatma girişimleri -EBUSY hatasıyla sonuçlanmaktadır. [ 1265.509831] WARNING: CPU: 5 PID: 919 at drivers/media/common/videobuf2/videobuf2-core.c:2183 __vb2_queue_cancel+0x230/0x2c8 [videobuf2_common] ... [ 1265.510630] Call trace: [ 1265.510636] __vb2_queue_cancel+0x230/0x2c8 [videobuf2_common] [ 1265.510648] vb2_core_streamoff+0x24/0xcc [videobuf2_common] [ 1265.510660] vb2_ioctl_streamoff+0x5c/0xa8 [videobuf2_v4l2] [ 1265.510673] v4l_streamoff+0x24/0x30 [videodev] [ 1265.510707] __video_do_ioctl+0x190/0x3f4 [videodev] [ 1265.510732] video_usercopy+0x304/0x8c4 [videodev] [ 1265.510757] video_ioctl2+0x18/0x34 [videodev] [ 1265.510782] v4l2_ioctl+0x40/0x60 [videodev] ... [ 1265.510944] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 0 in active state [ 1265.511175] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 1 in active state [ 1265.511398] videobuf2_common: driver bug: stop_streaming operation is leaving buffer 2 in active st Aynı RDI üzerinde birden fazla VC'yi yönetmek için CAMSS'e özgü bir yöntem şunlar olabilir: - CSIPHY, CSID, VFE ve RDIx için her hat etkinleştirmesini referans sayacıyla takip etmek. - Video tamponları zaten msm_vfeN_rdiX ile ilişkilendirilmiştir, bu nedenle stop_streaming tarafından talep edildiğinde video tamponlarını serbest bırakmak. - CSIPHY, CSID ve VFE için güç alanlarını yalnızca dahili referans sayaçları düştüğünde serbest bırakmak. Her iki durumda da, video tamponlarının serbest bırakılmasının use_count temel alınarak reddedilmesi hatalıdır ve geri alınmalıdır. VC seçimi için silikon etkinleştirme kodu tamamen doğrudur. Eşzamanlı VC'lerin şu anda CAMSS ile çalışmaması "bilinen eksik bir özellik"tir. Bu kodla yapılan ilk testler bir hata göstermemişti ancak SoftISP ve Google Hangouts ile yapılan "gerçek" kullanımlar ana hattaki kodu hızla bozmaktadır; bu nedenle kısmi bir geri alma işlemi yapılması ve VC konusunun yeniden ele alınması gerekmektedir. Bu commit, 89013969e232 ("media: camss: sm8250: Pipeline starting and stopping for multiple virtual channels") numaralı commiti kısmen geri alır.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın8 Kas 2024
İlk görülme8 Kas 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.6.55, 6.10.14, 6.11.3 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.4 ≤ v < 6.6.55, 6.7 ≤ v < 6.10.14, 6.11 ≤ v < 6.11.36.6.55, 6.10.14, 6.11.3

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.

Intelligence 360 paketinde

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.

CVE-2024-50175 · Linux Kernel · Dark Radar