İçeriğe atla
Noroxi
CVE-2026-40296· NVD / CVE Programı· CNA GitHub_M

PhpSpreadsheet vulnerable to XSS in HTML writer via custom number format codes

PhpSpreadsheet is a pure PHP library for reading and writing spreadsheet files. The HTML writer skips htmlspecialchars escaping when a cell's formatted value differs from the original value. When a cell has a custom number format containing the text placeholder @ along with any additional literal characters (for example ". @", "@ ", or "x@"), the formatter replaces @ with the cell value and adds the extra characters, causing the formatted value to differ from the original and bypassing HTML escaping entirely. An attacker who can control the cell value and number format of an uploaded spreadsheet that is later converted to HTML and displayed to other users can achieve stored cross-site scripting. This issue is fixed in versions 5.7.0, 3.10.5, 2.4.5, 2.1.16, and 1.30.4.

OrtaCVSS 5.4 · v3.1—İstismar yok Düzeltme var
Yayın
6 May 2026
Güncelleme
17 Haz 2026
EPSS
%0,2 · 14. yüzdelik
Bu CVE’yi takip et

Takip etmek için giriş yap · Takip ettiğin kayıt KEV’e girer, istismarı çıkar ya da güncellenirse bildirim alırsın.

Rapor araçları

JSON

Aksiyon skoru

21

İzleyin

Şimdilik düşük öncelik.

CVSS
21 / 40 · 5.4 / 10
CISA KEV
0 / 30 · Listede değil
EPSS
0 / 30 · %0,2

CISA SSVC kararı

Sömürü
kavram kanıtı
Otomatikleştirilebilir
hayır
Teknik etki
kısmi

Vulnrichment: CISA'nın karar ağacı girdileri.

CNA ile NVD puanı

NVD
—
CNA · GitHub_M
5,4
NVD henüz kendi puanını vermedi; gösterilen puan CNA’nın.

Kaydı açan otoritenin puanı ile NVD’nin bağımsız puanı. İki puan arasındaki fark ciddiyetin tartışmalı olduğunu gösterir.

Etkilenen sistemler

ÜreticiÜrün
phpofficephpspreadsheet

Etkilenen sürümler

NVD sürüm aralıkları (katalogdaki ürünler için). Stack’ine sürümle eklersen eşleşme bunlarla yapılır.

  • phpoffice phpspreadsheet1.30.4 öncesi
  • phpoffice phpspreadsheet2.0.0 ve sonrası · 2.1.16 öncesi
  • phpoffice phpspreadsheet2.2.0 ve sonrası · 2.4.5 öncesi
  • phpoffice phpspreadsheet3.3.0 ve sonrası · 3.10.5 öncesi
  • phpoffice phpspreadsheet4.0.0 ve sonrası · 5.7.0 öncesi

Üreticinin bildirdiği sürümler

Kaydı açan otorite (GitHub_M) tarafından bildirilen etkilenen sürüm aralıkları. NVD'nin CPE analizinden bağımsızdır ve genellikle ondan önce gelir.

  • PHPOffice PhpSpreadsheet

    • >= 4.0.0, <= 5.6.0, >= 3.3.0, <= 3.10.4, >= 2.2.0, <= 2.4.4, >= 2.0.0, <= 2.1.15, <= 1.30.3etkilenir

Paket düzeyi etkilenme

OSV ve GitHub Advisory verisi: ekosistem, paket ve aralık. SBOM eşleşmesi bu tabloyu kullanır.

EkosistemPaketEtkilenen aralıkDüzeltme
Packagistphpoffice/phpspreadsheet2.0.0 itibarıyla · 2.1.16 öncesi2.1.16
Packagistphpoffice/phpspreadsheet2.2.0 itibarıyla · 2.4.5 öncesi2.4.5
Packagistphpoffice/phpspreadsheet3.3.0 itibarıyla · 3.10.5 öncesi3.10.5
Packagistphpoffice/phpspreadsheet4.0.0 itibarıyla · 5.7.0 öncesi5.7.0
Packagistphpoffice/phpspreadsheet1.30.4 öncesi1.30.4

Aynı birincil ürünün en yüksek skorlu diğer kayıtları.

  • CVE-2018-19277securityScan() in PHPOffice PhpSpreadsheet through 1.5.0 allows a bypass of protection mechanisms for XXE via UTF-7 encoding in a .xlsx file
    37İzleyin
  • CVE-2026-45034PhpSpreadsheet: File::prohibitWrappers bypass
    36İzleyin
  • CVE-2026-34084PhpSpreadsheet SSRF and RCE via PHP stream wrappers in IOFactory::load
    36İzleyin
  • CVE-2024-45291Path traversal and Server-Side Request Forgery in HTML writer when embedding images is enabled in PHPSpreadsheet
    35İzleyin
  • CVE-2019-12331PHPOffice PhpSpreadsheet before 1.8.0 has an XXE issue.
    35İzleyin
  • CVE-2025-54370PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser
    34İzleyin

Düzeltme

Hangi sürüme geçmeli

Üretici, paket deposu ve Microsoft kayıtlarından derlenen düzeltme sürümleri. Yükseltmeden önce üreticinin notunu doğrulayın.

Ürün / paketDüzeltilmiş sürümKaynak
Packagist:phpoffice/phpspreadsheet1.30.4Paket deposu (OSV)
Packagist:phpoffice/phpspreadsheet2.1.16Paket deposu (OSV)
Packagist:phpoffice/phpspreadsheet2.4.5Paket deposu (OSV)
Packagist:phpoffice/phpspreadsheet3.10.5Paket deposu (OSV)
Packagist:phpoffice/phpspreadsheet5.7.0Paket deposu (OSV)

İstismar durumu

Bilinen kamuya açık istismar yok

Şu an kamuya açık bir istismar görülmedi. Bu, güvende olduğunuz anlamına gelmez; yalnızca eşiğin biraz daha yüksek olduğunu gösterir.

Araştırma bağlamı

Pentester ve araştırmacı için: saldırı profili, puan anlaşmazlığı, zaman çizelgesi, yama commit’leri, kredi, varyant ve zincir adayları, bug bounty kapsamı. Hepsi mevcut veriden türetilir; istismar kodu içermez.

Zaman çizelgesi

Yayından bugüne: kavram kanıtı, Metasploit modülü, CISA KEV ve düzeltme kaydı. Tarihler kaynakların bildirdiği tarihlerdir.

Yayın dışında tarihli olay yok.

EPSS son 120 gün

FIRST EPSS günlük puanı; yalnızca 0,01 ve üstü değişimler kaydedilir (adım grafiği).

Yama ve commit bağlantıları

Referanslardaki commit, PR ve diff adresleri. Patch-diff ve varyant avı için başlangıç noktası; istismar değil, düzeltmedir.

Referanslarda commit ya da PR bağlantısı yok.

CNA kaydında adı geçen bulan, bildiren ve analistler. Ada tıkla, aynı araştırmacının diğer kayıtlarını gör.

CNA kaydında kredi yok.

Varyant adayları

Aynı üründe aynı zafiyet sınıfı, 18 ay içinde. Yama kök nedeni kapatmadıysa kardeş hata burada olur.

  • CVE-2024-56365488 gün araylaPhpSpreadsheet vulnerable to unauthorized reflected XSS in the constructor of the Downloader class
    33İzleyin
  • CVE-2024-56366488 gün araylaPhpSpreadsheet vulnerable to unauthorized reflected XSS in the Accounting.php file
    33İzleyin
  • CVE-2024-56408488 gün araylaPhpSpreadsheet allows unauthorized reflected XSS in `Convert-Online.php` file
    33İzleyin
  • CVE-2024-56409488 gün araylaPhpSpreadsheet vulnerable to unauthorized reflected XSS in Currency.php file
    33İzleyin
  • CVE-2025-22131471 gün araylaCross-Site Scripting (XSS) vulnerability in generateNavigation() function
    20İzleyin
  • CVE-2026-354531 gün araylaPhpSpreadsheet XSS via number format text substitution in HTML Writer
    19İzleyin

Zincir adayları

Aynı üründe kimlik doğrulama atlatma ile yetki isteyen bir açık kısa aralıkla yayımlanmış: birlikte kimlik doğrulamasız bir yola dönüşebilir.

—

Bug bounty kapsamı

Bilinen herkese açık program yok.

Kaynak: bounty-targets-data (HackerOne, Bugcrowd, Intigriti, YesWeHack herkese açık listeleri).

Teknik detay

Saldırı koşulları

  • İnternetten erişebilen herkes tetikleyebilir.
  • Düşük yetkili bir hesap yeterli.
  • Bir kullanıcının bağlantıyı açması ya da sayfayı ziyaret etmesi gerekir.
  • Özel bir koşul gerekmez; tekrarlanabilir.

Başarılı olursa

Gizlilik
düşük · veriler okunabilir
Bütünlük
düşük · veri ya da yapılandırma değiştirilebilir
Erişilebilirlik
yok

Etki, zafiyetli bileşenin ötesine geçebilir (kapsam değişir).

Saldırı vektörü
Ağ
Karmaşıklık
Düşük
Gereken yetki
Düşük
Kullanıcı etkileşimi
Gerekir
Kapsam
Değişir
Gizlilik etkisi
Düşük
Bütünlük etkisi
Düşük
Erişilebilirlik etkisi
Yok

CVSS vektörü

CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

nvd-secondary

Kök neden

Kullanıcı içeriği HTML olarak sayfaya ekleniyor. Tarayıcı içeriği veri olarak değil, kod olarak yorumlar.

Hatanın kod karşılığı

CWE-79 sınıfının tamamı

Bu zafiyet sınıfının temsili örneği. Üreticinin kaynak kodu değildir; hatalı kalıbı ve düzeltmesini gösterir.

Hatalı

ts
commentEl.innerHTML = comment.body;

Düzeltilmiş

ts
commentEl.textContent = comment.body;

Saldırı bağlamı

Bu zafiyet sınıfının (CWE) MITRE CAPEC saldırı desenleri ve ATT&CK teknikleri. Tespit kuralı ve tehdit avı için başlangıç noktası.

Noroxi analizi

Bu kayıt için henüz Noroxi analizi yok

385 binden fazla zafiyetin tamamına elle analiz yazmıyoruz; bu dürüst olmazdı. Öne çıkan ve sahada etkisi olan zafiyetler için mekanizma, tespit ve kapatma adımlarını ekibimiz yazıyor.

Bu ürünü kullanıyoruz, yardım isteyin

Değişiklik günlüğü

  1. Düzeltme✗ → ✓

Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →

Tüm kayıtlar