- 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
- 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ım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| PHPOffice PhpSpreadsheet | < 1.30.7 | 1.30.7 |
Kaynaklar13 kaynak
- CVE.org kaydı
- NVD kaydı
- github.com/…dsheet/security/advisories/GHSA-3x94-m842-937c Diğer
- github.com/…ommit/299993894dce37aa3b64aa23e9a3f4bb77ab0e66 Diğer
- github.com/…ommit/89f455c133e1a7e2d4abfadc43ce29eb7450d781 Diğer
- github.com/…ommit/980b5c294493856f1a25754f1e8a1d2185b93738 Diğer
- github.com/…ommit/9a0b48622ebfe93fa48cb9bc09ce57303bb07af9 Diğer
- github.com/…ommit/da13f40e8760d599b0e8a296017d4b028b20e86c Diğer
- github.com/PHPOffice/PhpSpreadsheet/releases/tag/1.30.7 Diğer
- github.com/PHPOffice/PhpSpreadsheet/releases/tag/2.1.19 Diğer
- github.com/PHPOffice/PhpSpreadsheet/releases/tag/2.4.8 Diğer
- github.com/PHPOffice/PhpSpreadsheet/releases/tag/3.10.8 Diğer
- github.com/PHPOffice/PhpSpreadsheet/releases/tag/5.10.0 Diğer
Kayıt geçmişi
- 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.