CVE-2026-49260
Təsvir
PhpWeasyPrint, URL və ya HTML səhifədən PDF generasiyasına imkan verən bir PHP kitabxanasıdır. Versiya 2.5.1-dən əvvəl `pontedilana/php-weasyprint`, WeasyPrint üçün shell komandasını qurarkən binary yolunu əvvəlcə `escapeshellarg()` funksiyasından keçirir və sonra *dırnaq arası* nəticəni `is_executable()` ilə yoxlayır. POSIX sistemlərində `escapeshellarg('/usr/local/bin/weasyprint')` sətirin tərkibində tək dırnaq simvolları olan `'/usr/local/bin/weasyprint'` dəyərini qaytarır, buna görə də `is_executable()` faktiki adı həmin dırnaqları ehtiva edən faylı axtarır. Belə bir fayl heç vaxt mövcud olmur, "təhlükəsiz" budaq ölü koda çevrilir və xam `$binary` sətiri (konstruktor və ya `setBinary()` vasitəsilə təyin edilmiş) birbaşa `Symfony\Component\Process\Process::fromShellCommandline()` funksiyasına ötürülür. Binary yolu konfiqurasiyadan, mühit dəyişənindən və ya hər bir tenant üçün ayrıca parametrdən götürülən istənilən tətbiq shell-komanda-inyeksiyası riskinə məruz qalır. Kitabxana KnpLabs/snappy üçün bir-bir əvəzedici kimi sənədləşdirilib və KnpLabs-ın GHSA-vpr4-p6fq-85jc-də yamadığı eyni düzəlişdən əvvəlki kod yolunu miras almışdır. PhpWeasyPrint versiya 2.5.1 bu problem üçün yamı ehtiva edir.
Necə düzəltmək olar
- pontedilana/php-weasyprint2.5.1 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| pontedilana/php-weasyprintPackagist | v < 2.5.1 | 2.5.1 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.