CVE-2026-11526
published 2026-06-14CVE-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
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| rurban | gd | < 2.86 | 2.86 |
| ubuntu | libgd-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.
Ubuntu
GD.pm vulnerability
vendor_ubuntu·2026-06-30
CVE-2026-11526 GD.pm vulnerability
Title: GD.pm vulnerability
Summary: GD.pm could be made to run programs or overwrite files if it opened a
specially crafted file.
It was discovered that GD.pm incorrectly handled filename arguments. An
attacker could possibly use this issue to execute arbitrary commands or
overwrite files.
Instructions: In general, a standard system update will make all the necessary changes.
Red Hat
perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames
vendor_redhat·2026-06-14·CVSS 9.8
CVE-2026-11526 [CRITICAL] CWE-78 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames
perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames
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 t
VulDB
RURBAN GD up to 2.85 on Perl open filename os command injection (EUVD-2026-36659)
vuldb·2026-06-14
CVE-2026-11526 [CRITICAL] RURBAN GD up to 2.85 on Perl open filename os command injection (EUVD-2026-36659)
A vulnerability identified as critical has been detected in RURBAN GD up to 2.85 on Perl. Affected by this issue is the function Open. This manipulation of the argument filename causes os command injection.
This vulnerability is registered as CVE-2026-11526. Remote exploitation of the attack is possible. No exploit is available.
You should upgrade the affected component.
GHSA
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.
ghsa_unreviewed·2026-06-14
CVE-2026-11526 [CRITICAL] CWE-73 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 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.
No detection rules found.
No public exploits indexed.
Bugzilla
CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames [fedora-all]
bugzilla·2026-07-29·CVSS 9.8
CVE-2026-11526 [CRITICAL] CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames [fedora-all]
CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames [fedora-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
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
Bugzilla
CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames [epel-all]
bugzilla·2026-07-29·CVSS 9.8
CVE-2026-11526 [CRITICAL] CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames [epel-all]
CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames [epel-all]
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.
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-a
Bugzilla
CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames
bugzilla·2026-06-14·CVSS 9.8
CVE-2026-11526 [CRITICAL] CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames
CVE-2026-11526 perl-GD: perl-GD: Arbitrary command execution and file overwrite via crafted filenames
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 arbit
2026-06-14
Published