Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • CWE-125
  • CWE-787

CVE-2026-91186

GUIX PNG kod çözücüsünde yinelenen IHDR parçası nedeniyle heap sınırları dışına yazma

Eclipse Foundation Eclipse ThreadX - GUIX

Yüksek 8,4 CVSS 4.0
Yayımlandı
Güncellendi
20 Eki 2026
Açık yaşı
8 gün
Kaydı açan
eclipse

ÖzetTürkçe

PNG parça okuyucusunun parça sıralamasını denetlemediği tespit edildi. Okuyucu bir IDAT parçasının görülüp görülmediğini ve bir tRNS parçasının şeffaflık bilgisini zaten sağlayıp sağlamadığını kaydediyor, ancak IHDR parçasının ikinci kez okunmasını engellemiyor.

Bir PNG dosyasında tam olarak bir IHDR bulunur ve bu parça ilk parçadır. IDAT'tan sonra ikinci bir IHDR yerleştiren bir dosya, görüntü genişliğini, yüksekliğini, bit derinliğini ve piksel derinliğini, kod çözülmüş veri arabelleği orijinal değerlerden ayrılıp doldurulduktan sonra yeniden yazar. PNG satır filtrelerini geri çeviren geçiş, kendi boyutunu yeni boyutlardan hesaplar ve eski ayırmayı dolaşarak görüntü baytlarını arabelleğin sonunun ötesine taşır.

Arabellek çağıranın sağladığı bir bellek yerine GUIX tarafından ayrılır; bu nedenle uygulamanın arabelleği savunmacı biçimde boyutlandırma imkânı yoktur. Kod çözücü varsayılan olarak derlenmiş halde gelir.

CVSS:4.0 vektörü: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N, temel puan: 8.4000000000000003552713678800500929355621337890625 (HIGH).

Kaynaktaki açıklama (İngilizce)

The PNG chunk reader has no notion of chunk ordering. It records whether an IDAT has been seen and whether a tRNS has already supplied transparency, but nothing prevents an IHDR being read a second time.

A PNG carries exactly one IHDR and it is the first chunk. A file that places a second one after IDAT rewrites the image width, height, bit depth and pixel depth *after* the decoded-data buffer has already been allocated and filled from the original values. The pass that reverses the PNG row filters then derives its own extent from the new dimensions and walks the old allocation, moving image bytes past the end of it.

The buffer is allocated by GUIX rather than supplied by the caller, so the application has no way to size it defensively. The decoder is compiled in by default.

Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
Eclipse Foundation Eclipse ThreadX - GUIX ≤ 6.5.1.202602a –
6.5.2.202603 Etkilenmiyor –

Kaynaklar3 kaynak

Kayıt geçmişi

  1. Yayımlandı

İlgili açıklar

Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.