CVE-2026-64496
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: iio: event: Event FIFO sıfırlama yarış durumu düzeltildi `iio_event_getfd()`, yeni bir fd tahsis eden, anonim dosyayı oluşturan ve çağırana dönmeden önce bunu işlem fd tablosuna yerleştiren `anon_inode_getfd()` ile olay dosya tanımlayıcısını oluşturur. IIO kodu, `anon_inode_getfd()` döndükten sonra ancak `IIO_GET_EVENT_FD_IOCTL` fd numarasını kullanıcı alanına kopyalamadan önce olay FIFO'sunu sıfırlar. Ancak fd tabloları iş parçacıkları arasında paylaşıldığından, başka bir iş parçacığı yeni tahsis edilen fd numarasını tahmin edebilir ve fd yerleştirilir yerleştirilmez üzerinde bir `read()` işlemi gerçekleştirebilir. Bu durum, `iio_event_chrdev_read()` içindeki `kfifo_to_user()` fonksiyonunun, `iio_event_getfd()` içindeki `kfifo_reset_out()` ile paralel olarak çalışabileceği anlamına gelir. Kfifo dokümantasyonu, `kfifo_reset_out()` fonksiyonunun yalnızca okuyucu iş parçacığından çağrıldığında ve yalnızca tek bir eşzamanlı okuyucu olduğunda güvenli olduğunu belirtir. Aksi takdirde bu işlem tehlikelidir ve `kfifo_reset()` ile aynı şekilde ele alınmalıdır. Böyle bir durum gerçekleştiğinde, `kfifo_to_user()`, sıfırlama işlemi `out` indeksini mevcut `in` indeksine taşıdıktan sonra, sıfırlama öncesindeki duruma dayanarak FIFO `out` indeksini ilerletebilir. Bu, FIFO'nun `out` indeksinin `in` indeksini geçmesine neden olabilir. Daha sonra yapılacak bir `read()` işlemi, alt akışa uğramış (underflowed) bir FIFO uzunluğu görebilir ve olay FIFO tamponunun içerdiğinden daha fazla veri kopyalayabilir. Bu durum, sınır dışı okumaya (out-of-bounds read) yol açabilir ve komşu çekirdek belleğinin kullanıcı alanına sızmasına neden olabilir. FIFO sıfırlama işlemi `anon_inode_getfd()` öncesine taşınmıştır. Bu noktada olay fd meşgul olarak işaretlenmiştir ancak yeni fd henüz yerleştirilmemiştir, böylece FIFO sıfırlanırken kullanıcı alanı buna erişemez.
Nasıl düzeltilir
- Linux Linux9dc84ba4be5bbeb29ee49efe6cea2cb32c461424, d16a702ca7d29c0b7a9b509339d1b044a1cadb32, a13ef1adbc62085b21b546b07b0be7e2fbf52150, 0d4a646d7f87ea3625fafe387043fddc6a2f5e7f, 72c6aa8e0d74eab91b8694cde97dec088c248fee, 9edefd4c56bee3fe331e0355d1f10a533134999d, f187dc5a4c4846ffa07d9bda6e760837ed005574, af791d295737ea6b6ff2c8d8488462a49c14af01 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < 9dc84ba4be5bbeb29ee49efe6cea2cb32c461424, b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < d16a702ca7d29c0b7a9b509339d1b044a1cadb32, b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < a13ef1adbc62085b21b546b07b0be7e2fbf52150, b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < 0d4a646d7f87ea3625fafe387043fddc6a2f5e7f, b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < 72c6aa8e0d74eab91b8694cde97dec088c248fee, b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < 9edefd4c56bee3fe331e0355d1f10a533134999d, b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < f187dc5a4c4846ffa07d9bda6e760837ed005574, b91accafbb1031b80d22ad83576877ff2f8b4774 ≤ v < af791d295737ea6b6ff2c8d8488462a49c14af01, 3.15 | 9dc84ba4be5bbeb29ee49efe6cea2cb32c461424, d16a702ca7d29c0b7a9b509339d1b044a1cadb32, a13ef1adbc62085b21b546b07b0be7e2fbf52150, 0d4a646d7f87ea3625fafe387043fddc6a2f5e7f, 72c6aa8e0d74eab91b8694cde97dec088c248fee, 9edefd4c56bee3fe331e0355d1f10a533134999d, f187dc5a4c4846ffa07d9bda6e760837ed005574, af791d295737ea6b6ff2c8d8488462a49c14af01 |
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.