Security Advisories (1)
CVE-2026-11526 (2026-06-14)

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.

NAME

GD::Image - Image class for the GD image library

SYNOPSIS

See GD

DESCRIPTION

Supported Image formats:

!NO!SUBS!

print OUT "=item Png\n\n" if $DEFINES =~ /HAVE_PNG/; print OUT "=item Gif\n\n" if $DEFINES =~ /HAVE_GIF/; print OUT "=item Gd\n\n=item Gd2\n\n" if $DEFINES =~ /HAVE_GD2/; print OUT "=item Jpeg\n\n" if $DEFINES =~ /HAVE_JPEG/; print OUT "=item Tiff\n\n" if $DEFINES =~ /HAVE_TIFF/; print OUT "=item Xpm\n\n" if $DEFINES =~ /HAVE_XPM/; print OUT "=item Xbm\n\n" if 1 or $DEFINES =~ /HAVE_XBM/; print OUT "=item WBMP\n\n" if 1 or $DEFINES =~ /HAVE_WBMP/; print OUT "=item BMP\n\n" if $DEFINES =~ /HAVE_BMP/; print OUT "=item GifAnim\n\n" if $DEFINES =~ /HAVE_GIFANIM/; print OUT "=item Webp\n\n" if $DEFINES =~ /HAVE_WEBP/; print OUT "=item Heif\n\n" if $DEFINES =~ /HAVE_HEIF/; print OUT "=item Avif\n\n" if $DEFINES =~ /HAVE_AVIF/;

print OUT << '!NO!SUBS!'; =back

Unsupported Image formats:

!NO!SUBS!

print OUT "=item Png\n\n" if $DEFINES !~ /HAVE_PNG/; print OUT "=item Gif\n\n" if $DEFINES !~ /HAVE_GIF/; print OUT "=item Gd\n\n=item Gd2\n\n" if $DEFINES !~ /HAVE_GD2/; print OUT "=item Jpeg\n\n" if $DEFINES !~ /HAVE_JPEG/; print OUT "=item Tiff\n\n" if $DEFINES !~ /HAVE_TIFF/; print OUT "=item Xpm\n\n" if $DEFINES !~ /HAVE_XPM/; print OUT "=item GifAnim\n\n" if $DEFINES !~ /HAVE_GIFANIM/; print OUT "=item Webp\n\n" if $DEFINES !~ /HAVE_WEBP/; print OUT "=item Heif\n\n" if $DEFINES !~ /HAVE_HEIF/; print OUT "=item Avif\n\n" if $DEFINES !~ /HAVE_AVIF/; print OUT "=item BMP\n\n" if $DEFINES !~ /HAVE_BMP/;

print OUT << '!NO!SUBS!'; =back

See GD

AUTHOR

The GD.pm interface is copyright 1995-2005, Lincoln D. Stein. It is distributed under the same terms as Perl itself. See the "Artistic License" in the Perl source code distribution for licensing terms.

The latest versions of GD.pm are available on CPAN:

http://www.cpan.org

SEE ALSO

GD GD::Polyline, GD::SVG, GD::Simple, Image::Magick

1 POD Error

The following errors were encountered while parsing the POD:

Around line 90:

You forgot a '=back' before '=head1'

You forgot a '=back' before '=head1'