cbcvebase.
CVE-2026-11526
published 2026-06-14

CVE-2026-11526: 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…

PriorityP265critical9.8CVSS 3.1
AVNACLPRNUINSUCHIHAH
EPSS
1.35%
70.7th percentile
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.

Affected

2 ranges
VendorProductVersion rangeFixed in
rurbangd< 2.862.86
ubuntulibgd-perl——

Detection & IOCsextracted from sources · hover to see the quote

  • →Any filename argument beginning or ending with a pipe character passed to GD constructors (new, newFromPng, newFromJpeg, etc.) will trigger OS command injection via Perl's 2-arg open(). Monitor for pipe-prefixed or pipe-suffixed filename arguments (e.g., '| cmd', 'cmd |') reaching GD::Image::_make_filehandle. ↗
  • →Monitor for redirect-prefixed filename arguments (e.g., '> path', '>> path') passed to GD image constructors, which will cause file truncation or overwrite under the process UID rather than a normal file open. ↗
  • →The vulnerable code path is GD::Image::_make_filehandle, which is the single open path behind every filename-accepting constructor (new, newFromPng, newFromJpeg, and the rest). Audit all callers of these constructors that accept untrusted input as a pathname. ↗
  • ·The in-memory *Data constructor variants are NOT affected by this vulnerability, as they do not open a file path and therefore do not invoke the vulnerable 2-arg open() code path. ↗
  • ·Only GD versions before 2.86 for Perl are vulnerable. Upgrading to GD 2.86 or later remediates the issue. ↗
  • ·Exploitation requires that untrusted input is forwarded to a filename-accepting GD constructor as a pathname. Applications using only in-memory or trusted-path inputs are not at risk. ↗

CVSS provenance

nvdv3.19.8CRITICALCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vendor_redhat9.8CRITICAL
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.