External control of file name or path In perl-gd
Description
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.
Mitigation
Update Impact
Minimal update. May introduce new vulnerabilities or breaking changes.
Ecosystem | Component | Affected version | Patched versions |
|---|---|---|---|
debian 13 | 2.78-1+deb13u1 | ||
alpine v3.21 | 2.86-r0 | ||
alpine v3.24 | 2.86-r0 | ||
debian 12 | 2.76-4+deb12u1 | ||
debian 14 | 2.84-3 | ||
alpine v3.22 | 2.86-r0 | ||
alpine v3.23 | 2.86-r0 | ||
rpm rhel6 | - | - | |
rpm rhel7 | - | - |
Aliases