← CVE Veritabanı

CVE-2026-83627

Kritik

Teknik Veri (Otomatik)

CVSS Skoru
9.8
EPSS
0.8%
CWE
CWE-94
KEV Durumu
Hayır

Yayım tarihi: 5 Eylül 2026

Hummingbird – Speed Optimization, Caching, Minify, Compress & CDN eklentisi, WordPress için 3.21.0 sürümüne kadar olan tüm sürümlerde, core/modules/class-page-cache.php dosyasındaki log_msg() fonksiyonu aracılığıyla Uzaktan Kod Yürütme (RCE) için savunmasızdır. Sayfa önbelleği hata günlüğü, doğrudan web erişimi olan bir PHP dosyası olan wp-content/wphb-logs/page-caching-log.php'ye yazılır ve bu dosya '<?php die(); ?>' başlıklı bir korumayla korunmalıdır. Ancak bu başlık, class_exists( 'Filesystem' ) tarafından korunmaktadır ve class_exists() dizesel argümanları global ad alanında çözümler, oysa sınıf Hummingbird\Core\Filesystem'dir. Bu nedenle, ön cephe isteği sırasında günlükler oluşturulduğunda başlık tamamen省lenir. get_cookies() fonksiyonu daha sonra wphb_cache_ ön ekine uyan herhangi bir çerezin ham adını bu dosyaya sanitasyon olmadan yazar. Bu, yetkilendirilmemiş saldırganların tek bir anonim istekle günlükler dosyasına keyfi PHP yazmasına ve dosyayı doğrudan isteyerek çalıştırmasına, böylece tam uzaktan kod yürütme yapılmasına olanak tanır. İstismar, site yöneticisinin Sayfa Önbelleğini Hata Günlüğü seçeneğiyle (varsayılan değil) etkinleştirmesini ve günlüklerin dosyasının ön cephe isteği sırasında oluşturulmasını gerektirir — bu durum, eklentinin kendi 'Günlükleri Temizle' eylemi, herhangi bir önbellek temizleme veya günlük log-dönüşme cron işleminin çalışmasıyla ulaşılabilir ve bu durum mevcut bir günlükler dosyasından koruyucu başlığı kaldırabilir.

Orijinal açıklama (İngilizce)

The Hummingbird – Speed Optimization, Caching, Minify, Compress & CDN plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 3.21.0 via the log_msg() function in core/modules/class-page-cache.php. The page-cache debug log is written to wp-content/wphb-logs/page-caching-log.php, a directly web-accessible PHP file that is supposed to be protected by a leading '<?php die(); ?>' header. That header is guarded by class_exists( 'Filesystem' ), which can never match because class_exists() resolves string arguments in the global namespace while the class is Hummingbird\Core\Filesystem; when the log is created during a front-end request the header is therefore omitted entirely. get_cookies() then writes the raw name of any cookie matching the wphb_cache_ prefix into that file without sanitization. This makes it possible for unauthenticated attackers to write arbitrary PHP into the log file with a single anonymous request and execute it by requesting the file directly, resulting in full remote code execution. Exploitation requires the site administrator to have enabled Page Caching with the Debug Log option (non-default), and the log file to be created during a front-end request — a state reached by the plugin's own 'Clear logs' action, any cache flush, or unattended via the plugin's daily log-rotation cron, which can strip the protective header from an existing log file.

Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.