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

CVE-2026-114624

baserCMS'te widget alanı varlığında korumasız unserialize nedeniyle PHP nesne enjeksiyonu

baserproject basercms

Yüksek 7,2 CVSS 3.1
Yayımlandı
Güncellendi
23 Eki 2026
Açık yaşı
5 gün
Kaydı açan
GitHub_M

ÖzetTürkçe

baserCMS, bir web sitesi geliştirme çerçevesidir. 5.0.0 ile 5.3.2 öncesi ve 5.4.0 ile 5.4.2 öncesi sürümlerde, widget alanı varlığı widget'ları yalnızca gönderilen değer bir dizi olduğunda serileştirmektedir; bu nedenle yönetici JSON API'si üzerinden gönderilen bir dizgenin değiştirilmeden saklanmasına izin verilmektedir. Varlık okumaları, ön yüz işleme ve API yanıtları dahil, saklanan değeri allowed_classes kısıtlaması olmadan unserialize ile çözmekte ve hem ham hem de base64 ile kodlanmış serileştirilmiş verileri kabul etmektedir. Bir yönetici veya widget yazma yetkisini XSS zinciri gibi ayrı bir güvenlik açığı aracılığıyla ele geçiren bir saldırgan, daha sonra kimlik doğrulaması gerektirmeyen sayfa istekleriyle tetiklenecek bir nesne grafiği yerleştirebilir. Varsayılan bağımlılık kümesindeki gösterilen iki gadget zinciri, composer/composer ProcessExecutor::startJob ile Process::fromShellCommandline ya da logiscape/mcp-sdk-php StdioTransport::connect ile StdioServerParameters kullanarak proc_open çağrısına ulaşmakta ve komutları web sunucusu kullanıcısı olarak çalıştırmaktadır. Deserileştirme, yapıcı tabanlı readonly korumalarını atlamakta ve saklanan yük, veritabanı satırı onarılana kadar tekrar tekrar çalışabilmektedir. Kimlik doğrulaması gerektirmeyen sayfa erişimi, yükü ilk başta kimlik doğrulaması olmadan yerleştirmenin bir yolu değil, ayrıcalıklı yük saklandıktan sonraki bir tetikleyicidir. Bu sorun 5.3.2 ve 5.4.2 sürümlerinde giderilmiştir.

Kaynaktaki açıklama (İngilizce)

baserCMS is a website development framework. In versions 5.0.0 before 5.3.2 and 5.4.0 before 5.4.2, the widget-area entity serializes widgets only when the submitted value is an array, allowing a string submitted through the admin JSON API to be stored unchanged. Entity reads, including front-end rendering and API responses, deserialize the stored value with unserialize() without an allowed_classes restriction, accepting both raw and base64-encoded serialized data. An administrator, or an attacker who obtains widget-write capability through a separate vulnerability such as chained XSS, can plant an object graph that subsequently triggers on unauthenticated page requests. Two demonstrated gadget chains in the default dependency set use composer/composer ProcessExecutor::startJob() with Process::fromShellCommandline(), or logiscape/mcp-sdk-php StdioTransport::connect() with StdioServerParameters, to reach proc_open() and execute commands as the web-server user. Deserialization bypasses constructor-based readonly safeguards, and the stored payload can execute repeatedly until the database row is repaired. Unauthenticated page access is a trigger after privileged payload storage, not an unauthenticated means of initially planting the payload. This issue has been patched in versions 5.3.2 and 5.4.2.

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
baserproject basercms Sürüm belirtilmemiş –

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