CVE-2026-49260
Açıklama
PhpWeasyPrint, bir URL veya HTML sayfasından PDF oluşturmaya olanak tanıyan bir PHP kütüphanesidir. Versiyon 2.5.1 öncesinde, `pontedilana/php-weasyprint`, WeasyPrint için kabuk komutunu oluştururken ikili dosya yolunu önce `escapeshellarg()` üzerinden geçirir ve ardından *tırnak içine alınmış* sonucu `is_executable()` ile kontrol eder. POSIX üzerinde `escapeshellarg('/usr/local/bin/weasyprint')`, tek tırnak karakterlerini dizinin bir parçası olarak içeren `'/usr/local/bin/weasyprint'` değerini döndürür; bu nedenle `is_executable()`, gerçek adı bu tırnakları içeren bir dosya arar. Bu dosya hiçbir zaman mevcut olmaz, "güvenli" dal ölü kod haline gelir ve ham `$binary` dizisi (kurucu yöntem veya `setBinary()` aracılığıyla ayarlanan) doğrudan `Symfony\Component\Process\Process::fromShellCommandline()` fonksiyonuna aktarılır. İkili dosya yolunun yapılandırmadan, bir ortam değişkeninden veya kiracı başına ayardan alındığı herhangi bir dağıtım, bir kabuk komutu enjeksiyonu (shell-command-injection) riskine açık hale gelir. Kütüphane, KnpLabs/snappy için birebir bir alternatif olarak belgelenmiştir ve KnpLabs'in GHSA-vpr4-p6fq-85jc kapsamında yamaladığı hata öncesi kod yolunu aynen devralmıştır. PhpWeasyPrint versiyon 2.5.1, bu sorun için bir yama içermektedir.
Nasıl düzeltilir
- pontedilana/php-weasyprint2.5.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| pontedilana/php-weasyprintPackagist | v < 2.5.1 | 2.5.1 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.