Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • Yama var
  • Son 7 gün
  • CWE-611
  • CWE-776

CVE-2026-108358

PhpSpreadsheet'te ISO-2022 kaçış dizileriyle XmlScanner atlatılması: XXE ve hizmet dışı bırakma

PHPOffice PhpSpreadsheet

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

ÖzetTürkçe

PhpSpreadsheet, elektronik tablo dosyalarını okumak ve yazmak için kullanılan saf bir PHP kütüphanesidir. 1.30.7, 2.1.19, 2.4.8, 3.10.8 ve 5.10.0 sürümlerinden önce, src/PhpSpreadsheet/Reader/Security/XmlScanner.php dosyasındaki XmlScanner::scan, XLSX XML bölümlerinde DOCTYPE tespiti için NUL-byte araya girmesini hesaba katan bir desen kullanmakta, ancak ISO-2022 kaçış dizilerini hesaba katmamaktadır. Kaçış dizileri, tarayıcının bildirimi eşleştirmesini engeller; ardından XML karakter kümesi normalleştirmesi, ayrıştırmadan önce kaçış baytlarını kaldırarak geçerli bir DOCTYPE ile varlık tanımlarını ortaya çıkarır. Saldırgan kontrolündeki bir XLSX dosyasının işlenmesi, desteklenen PHP sürümlerinde varlık genişletmesi yoluyla hizmet dışı bırakmaya neden olabilir; PHP 8.0 öncesinde veya LIBXML_NOENT etkinleştirildiğinde ise yerel dosya erişimine veya SSRF'ye izin verebilir. Sorun, 1.30.7, 2.1.19, 2.4.8, 3.10.8 ve 5.10.0 sürümlerinde giderilmiştir.

Kaynaktaki açıklama (İngilizce)

PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. Prior to 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0, XmlScanner::scan in src/PhpSpreadsheet/Reader/Security/XmlScanner.php uses a DOCTYPE detection pattern that accounts for NUL-byte interleaving but not ISO-2022 escape sequences in XLSX XML parts. The escape sequences prevent the scanner from matching the declaration, and XML charset normalization then removes the escape bytes before parsing, exposing a valid DOCTYPE and entity definitions. Processing an attacker-controlled XLSX can therefore cause entity-expansion denial of service on supported PHP versions and can permit local file access or SSRF on PHP before 8.0 or when LIBXML_NOENT is enabled. This issue is fixed in versions 1.30.7, 2.1.19, 2.4.8, 3.10.8, and 5.10.0.

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
PHPOffice PhpSpreadsheet < 1.30.7 1.30.7

Kaynaklar13 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.