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

CVE-2026-123792

Symfony YAML ayrıştırıcısı: Kötü hazırlanmış belgelerle hizmet reddi (DoS)

sensiolabs symfony

Yüksek 8,7 CVSS 4.0
Yayımlandı
Güncellendi
6 Kas 2026
Açık yaşı
0 gün
Kaydı açan
Checkmarx

Yönetici özeti

Bu açık, web uygulamalarının YAML verisi işleyen bölümlerinin aşırı yüklenip yanıt veremez hale gelmesine yol açabilir. Saldırı kolay ve kimlik doğrulama gerektirmediği için çevrim içi hizmetlerde kesintiye neden olabilir. Bu nedenle etkilenen Symfony sürümlerinin hızla güncellenmesi önerilir.

ÖzetTürkçe

Symfony Yaml bileşenindeki Inline ve Parser sınıfları bazı YAML belgelerini verimsiz biçimde ayrıştırır. Bu nedenle küçük ve özel hazırlanmış bir belge bile işlenmesi saniyeler ya da dakikalar sürebilecek bir PHP sürecini meşgul edebilir. Etkilenen sürümler 5.4.56 öncesi, 6.x için 6.4.50 öncesi, 7.x için 7.4.23 öncesi ve 8.x için 8.1.11 öncesi Symfony sürümleridir. Varsayılan ayarlarla YAML belgesi ayrıştıran her kod etkilenmektedir.

Saldırgan ne yapabilir?

Saldırgan, kimlik doğrulaması gerektirmeden tek bir istekle PHP çalışanını max_execution_time süresine kadar meşgul ederek hizmet reddi (DoS) oluşturabilir. Symfony 7.4 ve sonrasında #[MapRequestPayload] kullanan uç noktalar da bu riske açıktır; JSON içeriği YAML içerik türüyle gönderilerek de saldırı yapılabilir.

Kaynaktaki açıklama (İngilizce)

The Symfony Yaml components Inline and Parser, parse some YAML documents inefficiently, so that a small crafted document can take disproportionately long to process, keeping a PHP process busy for seconds or minutes, potentially causing a denial of service in Symfony versions prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11.

The parser repeats work it has already done in several places. An embedded mapping in a flow sequence is parsed again for every scalar appended to it, and so are the collections nested in it, so the parse time grows exponentially with the nesting depth. The patterns matching mapping keys and tags scan a run of spaces once per character of the run, and each scalar of a flow collection is matched against a copy of the rest of the collection, so the parse time grows quadratically with the size of the input. Nested blocks are also copied at each nesting level, which consumes memory as well as time. A few other constructs, such as an empty sequence item followed by a blank line or an anchor named 0, trigger similar repeated work.

Any code parsing untrusted YAML is affected, with the default flags. In Symfony 7.4 and later, that includes #[MapRequestPayload] when the Yaml component is installed and the endpoint does not restrict acceptFormat. A single unauthenticated request with a YAML content type keeps a PHP worker busy until max_execution_time. JSON documents are valid YAML, so a JSON payload sent with a YAML content type is enough for the flow collection case. In Symfony 6.4, #[MapRequestPayload] accepts YAML only when the application registers a yaml request format.

Ne yapmalı?

  1. Symfony'yi etkilenen dal için düzeltilmiş sürüme güncelleyin: 5.4.56, 6.4.50, 7.4.23 veya 8.1.11 ve sonrası. Genel öneri
  2. Uygulamanın bağımlılıklarını güncelledikten sonra uygulamayı yeniden dağıtın ve PHP çalışanlarını yeniden başlatın. Genel öneri
  3. Güncelleme yapılamayan durumlarda, YAML işleyen uç noktaları geçici olarak kapatın veya güvenilmeyen kaynaklardan gelen YAML isteklerini reddedin. Genel öneri

Ek önlemler

  • Yanıt süresi ve PHP çalışan meşguliyetini izleyerek olağandışı uzun işlem sürelerini erken tespit edin. Genel öneri
  • Gelen isteklerde içerik türü kısıtlaması uygulayın ve #[MapRequestPayload] için yalnızca gerekli biçimleri kabul edin. Genel öneri
  • Makul bir max_execution_time değeri ve istek boyutu sınırı belirleyerek tek bir isteğin kaynakları uzun süre tüketmesini engelleyin. Genel öneri

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
sensiolabs symfony Sürüm belirtilmemiş –

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