CRITICAL✓ PATCH🇬🇧 English

CVE-2026-11526

Command injection w module GD dla Perl poprzez 2-arg open()

CVSS 9.8pub. 2026-06-14upd. 2026-06-21

Moduł GD w wersjach przed 2.86 dla Perl umożliwia atakującemu wykonanie dowolnego polecenia systemowego lub nadpisanie pliku poprzez podatność command injection w funkcji _make_filehandle. Podatność wynika z użycia niebezpiecznej formy Perl's 2-arg open() przy otwieraniu plików przekazanych jako argumenty, co przy ocenie CVSS 9.8 czyni ją krytycznym zagrożeniem.

Pokaż oryginał (EN)

GD versions before 2.86 for Perl allow OS command injection and file overwrite via a 2-arg open() of filename arguments in _make_filehandle. GD::Image::_make_filehandle opens a filename argument with Perl's 2-arg open(), so a filename that begins or ends with a pipe ("| cmd", "cmd |") or begins with a redirect ("> path", ">> path") is run as a command or redirect rather than opened as a file. _make_filehandle is the single open path behind every filename-accepting constructor (new, newFromPng, newFromJpeg, and the rest); the in-memory *Data variants do not open a path and are unaffected. Any caller that forwards untrusted input to one of these constructors as a pathname can run an arbitrary command or truncate a file under the process UID.

🤖 Analiza AI
Jak działa

Funkcja GD::Image::_make_filehandle otwiera przekazaną nazwę pliku przy użyciu dwuargumentowej formy open() w Perlu. Ta forma interpretatora pozwala na specjalną obsługę nazw plików zaczynających się lub kończących znakiem pipe ('| cmd', 'cmd |') jako polecenia powłoki do wykonania, a nazw zaczynających się od znaku przekierowania ('> ścieżka', '>> ścieżka') jako przekierowania wyjścia. Ponieważ _make_filehandle jest jedyną ścieżką obsługi plików dla wszystkich konstruktorów przyjmujących nazwy plików (new, newFromPng, newFromJpeg i pozostałych), każda aplikacja przekazująca niezaufane dane wejściowe do tych konstruktorów jest podatna. Warianty operujące na danych w pamięci (*Data) nie korzystają z otwierania ścieżki pliku i nie są dotknięte tym problemem.

Skutki

Atakujący mogący kontrolować argument z nazwą pliku przekazywany do podatnych konstruktorów GD może wykonać dowolne polecenie systemowe z uprawnieniami procesu (UID) lub nadpisać (skrócić) dowolny plik dostępny dla tego procesu.

Mitygacja

Należy zaktualizować moduł GD dla Perl do wersji 2.86 lub nowszej, w której zastosowano poprawkę zastępującą 2-arg open() bezpieczną 3-arg open(). Patch dostępny jest w referencjach producenta na GitHub oraz w repozytorium CPAN (metacpan.org). Do czasu aktualizacji należy rygorystycznie walidować i odrzucać wszelkie niezaufane dane wejściowe przekazywane jako nazwy plików do konstruktorów GD.

Kogo dotyczy

Moduł GD dla Perl w wersjach przed 2.86

Uwagi

Podatność została ujawniona publicznie 14 czerwca 2026 roku na liście oss-security (openwall.com). Poprawka dostępna jest w commit 67b163713c6c78dfeb693da0978ae934e5cd8210 w repozytorium Perl-GD na GitHub.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
Command Injection
CWE
Referencje