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
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
9.8
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.
- Record
CVE-2026-11526- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-78, CWE-73
- Updated
- 2026-11-02
EUVDEUVD-2026-36659
9.8
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.
- Record
EUVD-2026-36659- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-hx22-9fx3-xg77
9.8
GD versions before 2.86 for Perl allow OS command injection and file overwrite via a 2-arg open()...
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.
- Record
GHSA-hx22-9fx3-xg77- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-73
- Updated
- 2026-11-02
NVD
9.8
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.
- Record
CVE-2026-11526- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-73, CWE-78
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-11526
9.8
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.
- Record
ALPINE-CVE-2026-11526- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVBELL-CVE-2026-11526
9.8
- Record
BELL-CVE-2026-11526- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 8 moreShow less
OSV
9.8
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.
- Record
CVE-2026-11526- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-73, CWE-78
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-11526
9.8
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.
- Record
DEBIAN-CVE-2026-11526- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVOESA-2026-2789
9.8
perl-GD security update
This is a autoloadable interface module for libgd, a popular library for creating and manipulating PNG files. With this library you can create PNG images on the fly or modify existing files. Features include:
Security Fix(es):
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.(CVE-2026-11526)
- Record
OESA-2026-2789- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:49758
9.8
Red Hat Security Advisory: perl-GD security update
- Record
RHSA-2026:49758- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-11526
9.8
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.
- Record
UBUNTU-CVE-2026-11526- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVMGASA-2026-0318 No score
Updated perl-GD package fixes a security vulnerability
The updated package fixes a security vulnerability: 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. (CVE-2026-11526)
- Record
MGASA-2026-0318- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11017-1 No score
perl-GD-2.860.0-1.1 on GA media
These are all security issues fixed in the perl-GD-2.860.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11017-1- Updated
- 2026-11-02
OSVUSN-8484-1 No score
libgd-perl vulnerability
It was discovered that GD.pm incorrectly handled filename arguments. An attacker could possibly use this issue to execute arbitrary commands or overwrite files.
- Record
USN-8484-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-gdAlpine:v3.21 |
before 2.86-r0 | 2.86-r0 |
perl-gdAlpine:v3.22 |
before 2.86-r0 | 2.86-r0 |
perl-gdAlpine:v3.23 |
before 2.86-r0 | 2.86-r0 |
perl-gdAlpine:v3.24 |
before 2.86-r0 | 2.86-r0 |
perl-gdAlpaquita:23 |
2.76-r0 up to 2.76-r1 | 2.76-r1 |
perl-gdAlpaquita:25 |
2.83-r0 up to 2.86-r0 | 2.86-r0 |
perl-gdAlpaquita:stream |
2.75-r0 up to 2.86-r0 | 2.86-r0 |
libgd-perlDebian:12 |
before 2.76-4+deb12u1, plus listed versions 2.76-4 |
2.76-4+deb12u1 |
libgd-perlDebian:13 |
before 2.78-1+deb13u1, plus listed versions 2.78-1 |
2.78-1+deb13u1 |
libgd-perlDebian:14 |
before 2.84-3, plus listed versions 2.78-12.83-12.84-12.84-2 |
2.84-3 |
Show 16 moreShow less
| Package | Affected | Fixed |
|---|---|---|
perl-GDMageia:10 |
before 2.840.0-1.1.mga10 | 2.840.0-1.1.mga10 |
perl-GDMageia:9 |
before 2.760.0-3.1.mga9 | 2.760.0-3.1.mga9 |
perl-GDopenEuler:24.03-LTS-SP3 |
before 2.78-2.oe2403sp3 | 2.78-2.oe2403sp3 |
perl-GDopenEuler:20.03-LTS-SP4 |
before 2.72-3.oe2003sp4 | 2.72-3.oe2003sp4 |
perl-GDopenEuler:22.03-LTS-SP4 |
before 2.75-3.oe2203sp4 | 2.75-3.oe2203sp4 |
perl-GDopenEuler:24.03-LTS-SP1 |
before 2.78-2.oe2403sp1 | 2.78-2.oe2403sp1 |
perl-GDRed Hat:rhel_els:7 |
before 0:2.49-3.el7_9.1 | 0:2.49-3.el7_9.1 |
perl-GD-debuginfoRed Hat:rhel_els:7 |
before 0:2.49-3.el7_9.1 | 0:2.49-3.el7_9.1 |
libgd-perlUbuntu:16.04:LTS |
All versions, plus listed versions 2.53-1build12.53-22.53-2build12.53-2.1 |
None known |
libgd-perlUbuntu:18.04:LTS |
All versions, plus listed versions 2.66-1build1 |
None known |
libgd-perlUbuntu:20.04:LTS |
All versions, plus listed versions 2.71-22.71-2build1 |
None known |
libgd-perlUbuntu:22.04:LTS |
before 2.76-2ubuntu0.1, plus listed versions 2.73-1build22.76-22.76-2build1 |
2.76-2ubuntu0.1 |
libgd-perlUbuntu:24.04:LTS |
before 2.78-1ubuntu0.24.04.1, plus listed versions 2.76-4build12.78-12.78-1build12.78-1build22.78-1build3 |
2.78-1ubuntu0.24.04.1 |
libgd-perlUbuntu:25.10 |
before 2.78-1ubuntu0.25.10.1, plus listed versions 2.78-1build4 |
2.78-1ubuntu0.25.10.1 |
libgd-perlUbuntu:26.04:LTS |
before 2.84-2ubuntu0.1, plus listed versions 2.78-1build42.83-12.84-2 |
2.84-2ubuntu0.1 |
perl-GDopenSUSE:Tumbleweed |
before 2.860.0-1.1 | 2.860.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-11526 is a critical vulnerability (CVSS 9.8) in Microsoft Gd, published June 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.35%, the 71st percentile. Fixed in perl-gd 2.86-r0.
References
github.com/lstein/Perl-GD/commit/67b163713c6c78dfeb693da0978ae934e5cd8210.patch
metacpan.org/release/RURBAN/GD-2.86/changes
openwall.com/lists/oss-security/2026/06/14/4
lists.debian.org/debian-lts-announce/2026/06/msg00027.html
nvd.nist.gov/vuln/detail/CVE-2026-11526
github.com/advisories/GHSA-hx22-9fx3-xg77
Show 22 moreShow less
security.alpinelinux.org/vuln/CVE-2026-11526
docs.bell-sw.com/security/cves/CVE-2026-11526
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/11xxx/CVE-2026-11526.json
github.com/lstein/Perl-GD
security-tracker.debian.org/tracker/CVE-2026-11526
advisories.mageia.org/MGASA-2026-0318.html
bugs.mageia.org/show_bug.cgi?id=35700
lists.opensuse.org/archives/list/[email protected]/message/FVXC7OE25PPTJFDV7ZFH2DDNTN5ZOZKK
lists.debian.org/debian-security-announce/2026/msg00256.html
lists.fedoraproject.org/archives/list/[email protected]/message/WWKANNR4XL34RWTURYNNLPBPFQSJWY4H
ubuntu.com/security/notices/USN-8484-1
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2789
access.redhat.com/errata/RHSA-2026:49758
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=2488744
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_49758.json
access.redhat.com/security/cve/CVE-2026-11526
cve.org/CVERecord?id=CVE-2026-11526
ubuntu.com/security/CVE-2026-11526
lists.security.metacpan.org/cve-announce/msg/41004664
suse.com/security/cve/CVE-2026-11526