TRENDING
Close view of the Urania World Clock in Berlin at night, with city names grouped by time zone above a band of gold hour numerals from 17 to 24
October 14, 2026
How to Handle Daylight Saving Time in Python With zoneinfo and Stop Scheduling, Billing, and Logging Bugs
Rows of red, blue and white railway signal levers with numbered name plates inside a signal box, with a train visible through the windows
October 14, 2026
Cloudflare’s D1 Control Plane Turns Millions of Databases Into a Lag Budget the Post Never Adds Up
Base of a revolving door seen from above, with glass panels meeting at the central axis over a granite floor
October 14, 2026
Ivanti Says It Fixed Part of a Connect Secure Flaw in July and Was Still Backporting When Attackers Struck
A black and white wooden lock-gate balance beam beside a canal lock chamber on the Stratford-upon-Avon Canal, with a sign reading Keep boat forward of cill marker
October 14, 2026
How to Fix SQLite “database is locked” Errors in Python With WAL Mode, BEGIN IMMEDIATE, and Checkpoints
Handwritten Going Out of Business banner hung on a closed metal shop shutter above a Clearance sign
October 14, 2026
Spirit Airlines’ Proposed Data Sale to Google Turns Privacy Review Into a Customer Check That Leaves Out Employees
14 Oct 2026
SXZ.io SXZ.io
  • Home
Search the Site
Popular Searches:
Technology Amazon AI
Recent Posts
A small wooden label cabinet with three drawers, the lower two pulled open to show compartments of paper labels, with loose labels scattered on a grey surface beside it
How to Stop Mass Assignment and Excessive Data Exposure in a FastAPI App
October 14, 2026
A dark wooden abacus with two rows of black beads on copper-colored rods, resting on a clear acrylic stand against a beige wall
OpenAI’s EU Agentic Report Turns Token Share Into a Country Ranking Uncorrelated With Eurostat’s AI Data
October 14, 2026
Several conical thatched haystacks in a green field beside a gravel track under a cloudy sky
Microsoft Fixes a Record 1,413 Vulnerabilities in October, and Only One Is Known to Be Under Attack
October 14, 2026
SXZ.io SXZ.io
  • Home

Categories

Articles 242 Posts
News 245 Posts
Learning Hub 215 Posts
Home/News/Wordfence’s AI Finds a Ghostscript Flaw Rated 9.8 in the CVE and Moderate by Red Hat
News

Wordfence’s AI Finds a Ghostscript Flaw Rated 9.8 in the CVE and Moderate by Red Hat

Wordfence disclosed a Ghostscript heap overflow that Artifex fixed on September 8; the CVE record says 9.8, Red Hat says Moderate, and Debian 12 and Alpine 3.22 and 3.23 still had no fix on October...

October 12, 2026 9 Min Read
24

Wordfence disclosed on October 12 that its AI-assisted testing system, Wordfence Argus, found a heap buffer overflow in the JPEG 2000 code Ghostscript uses when it turns PDF pages into images. Artifex fixed the flaw, tracked as CVE-2026-39919, in Ghostscript 10.08.0 on September 8, 34 days before Wordfence’s write-up. Wordfence says it developed the bug into unauthenticated remote code execution on “a purpose-built WordPress test site,” and says it has “found no public evidence that it is being exploited today.”

Table Of Content

  • What Wordfence disclosed, and what the public record confirms
  • How the bug works and what the patch changes
  • One CVE, several severity answers
  • Who has shipped a fix, as of October 12
  • What Wordfence showed, and what it did not
  • What to check on your servers
  • Sources and method

The public records give several severity answers for this one bug. The CVE record, supplied by VulnCheck as the CVE numbering authority, scores it 9.8. Red Hat rates it Moderate with a 7.8 score, and Ubuntu lists it at medium priority. The gap comes down to a deployment question: a person opening a PDF on a desktop is a different exposure from a server that converts PDFs strangers upload, and Wordfence notes that many site owners run Ghostscript without knowing it.

What Wordfence disclosed, and what the public record confirms

Wordfence’s account matches the public records we could read. The table combines Wordfence’s own timeline with commit metadata from the Ghostscript repository on GitHub, the CVE record and vendor advisories. Artifex’s commit message credits the original report to Alex Thomas “of Wordfence Argus (AI),” so the AI label appears in the upstream record as well as in Wordfence’s post.

Date (2026) Event Recorded in
Aug 23 Argus finds the flaw during a WordPress 7.1 assessment, and Wordfence reports it privately to Artifex Wordfence timeline
Aug 24 Artifex confirms the report; Ken Sharp’s patch carries this author date Wordfence timeline; commit metadata
Sept 7 The patch is committed to the line that becomes 10.08.0 (8ddaa67d13) GitHub API
Sept 8 Ghostscript 10.08.0 is released GitHub release
Sept 10 The same patch is committed to master (0a8bf88e39), the commit the CVE record links GitHub API; CVE record
Sept 15 CVE-2026-39919 is published CVE record
Sept 21 Ubuntu publishes USN-8791-1 Ubuntu CVE data
Oct 1, 2 and 6 Red Hat ships fixes for RHEL 10, 9 and 8 Red Hat security data
Oct 12 Wordfence publishes its write-up Wordfence

How the bug works and what the patch changes

The CVE record places the flaw in base/sjpx_openjpeg.c, Ghostscript’s JPEG 2000 output adapter. When an image’s components declare different subsampling factors and its samples are smaller than eight bits, the code allocates a row buffer sized for packed output but writes a full byte per output column. Wordfence’s worked example is a row of 1,024 two-bit samples: the packed size is 256 bytes, and the loop writes 1,024. It says the surplus bytes come from image samples the file’s author chooses and land on bookkeeping Ghostscript uses to manage allocated objects, which is how a crash becomes code execution. Wordfence traces the vulnerable block to Ghostscript 9.21, and the 9.21 tag’s copy of the file contains a variable named ppbyte1, the number of samples packed per byte, that the 9.20 tag’s copy lacks.

The patch is small: seven lines added and three removed in that one file. The loop now advances its sample index once per sample, so each pass packs several samples into one byte, and it checks the index against the row width before each read. The commit message says the fix “exposed an interesting bug in a regression file” whose samples were 10 bits deep, so the patch also adds a guard, which the message describes as “Added a guard in decode_image to error out on images which have BPS which we don’t support.” This is the guard, from the 10.08.0 tag:

if (state->bpp != 1 && state->bpp != 2 && state->bpp != 4 && state->bpp != 8 && state->bpp != 16)
    return ERRC;

It sits after an existing line that maps 12-bit samples to 16, so in effect this decoder path now refuses any sample depth other than 1, 2, 4, 8, 12 or 16 bits, and files with other depths produce an error there.

One detail matters if you track fixes by commit hash. The CVE record, Red Hat’s page and Wordfence all link commit 0a8bf88e39, which was made on master on September 10, two days after the release. We compared it with the 10.08.0 tag through GitHub’s API, and the tag does not contain it: the two histories diverge. The tag does contain an identical patch, 8ddaa67d13, committed on September 7, and that is the commit Debian’s security tracker cites. The 10.08.0 tag’s sjpx_openjpeg.c has the new guard; the copies in 10.07.1 and 10.08.0rc1 do not. A check that only asks whether the linked commit is an ancestor of a release tag would report 10.08.0 as unpatched.

One CVE, several severity answers

Source What it says Basis
CVE record (VulnCheck, the CNA) CVSS 3.1: 9.8 (network, no privileges, no user interaction). CVSS 4.0: 9.3 The NVD record shows these as the CNA’s scores; NVD’s own analysis was still pending when we read it
Red Hat Moderate; CVSS 3.1: 7.8 (local, user interaction required) Red Hat’s statement on exploitation, quoted below
Ubuntu Medium priority Ubuntu’s own priority field; its page also lists the CNA’s 9.8 and 9.3
CISA (entry in the CVE record, Sept 20) Exploitation: none. Automatable: yes. Technical impact: total Decision-support values, not a severity score
Wordfence Critical, 9.8 Treats the CNA score as the worst case for an application that accepts PDFs from the network

The vectors show where the readings split. Red Hat’s is local with user interaction, a person opening a file; the CNA’s is network with none, a service processing whatever arrives. Red Hat’s statement says exploitation “typically necessitates user interaction, such as opening a malicious file,” and its mitigation advice is to “avoid processing untrusted or suspicious PDF documents with Ghostscript.” Wordfence describes the other case: the CVSS scores “describe a network-facing application that accepts PDFs without a login or user action.” Both can be right for their deployments. The risk is a triage rule that reads a vendor’s label without asking where Ghostscript runs, because a converter on a public upload path sits in the second category whatever the label says. CISA’s entry, which marks it automatable with total technical impact, reads closer to that server-side view.

Who has shipped a fix, as of October 12

We read each project’s tracker or advisory on October 12. The package revision matters more than the output of gs --version: Wordfence points out that Ubuntu 22.04’s fixed package, 9.55.0~dfsg1-0ubuntu5.14, still reports Ghostscript 9.55.0, and Ubuntu’s data confirms that revision as the fixed one.

Distribution Status on October 12 Detail
Debian 13 (trixie) Fixed DSA-6516-1; trixie-security carries 10.05.1~dfsg-1+deb13u3
Debian 12 (bookworm) Listed as vulnerable The tracker shows 10.0.0~dfsg-11+deb12u8 with no fixed version
Ubuntu 22.04, 24.04 and 26.04 Fixed 9.55.0~dfsg1-0ubuntu5.14, 10.02.1~dfsg1-0ubuntu7.9 and 10.06.0~dfsg-3ubuntu1.1; Ubuntu’s data lists USN-8791-1, published Sept 21
RHEL 10, 9 and 8 Fixed 10.02.1-16.el10_2.1 (Oct 1), 9.54.0-19.el9_8.1 (Oct 2) and 9.27-18.el8_10 (Oct 6); RHEL 6 and 7 are listed as “Out of support scope”
AlmaLinux 10 Fixed ALSA-2026:74464, released Oct 2, rated Moderate
SUSE Partly shipped SUSE’s page lists SUSE-SU-2026:4598-1 (Oct 9) and fixed packages for several products, but its tracking table still marked some “In progress” or “Affected”
Alpine 3.22 and 3.23 No fix listed The package pages show 10.05.1-r0 and 10.06.0-r0, and Alpine’s security database has no entry for the CVE
Fedora 44 Not checked Fedora’s update site blocks automated requests; Wordfence reported the older 10.06.0-2.fc44 still listed on Oct 9

Trackers lag, so a distribution that is not in the table, or a row that disagrees with your own package manager, should be settled by that distribution’s advisory.

What Wordfence showed, and what it did not

Wordfence reduced the flaw to a 1,029-byte PDF that, it says, differs from a harmless control file by a single byte, in a field describing the transparency component’s resolution. It built two working exploits for its own lab build, then ran them 10,240 times across ten other Linux package environments: Debian, Ubuntu, Fedora, AlmaLinux, Alpine and the official WordPress container. Neither succeeded once outside the matching build. When it kept the Ghostscript executable identical and changed fonts, language settings, font configuration and one core system library, the same exploit still worked in all four setups, though not on every attempt. Wordfence’s own summary: “The two proof-of-concept exploits we built were specific to the Ghostscript build they were prepared for.” It also says Debian 12 rendered its test PDF without crashing, but 28 of 40 variants with changed image dimensions did crash it, so a file that does not crash a server is not proof that the server is safe.

That leaves two realistic threats in Wordfence’s telling: a targeted attack on a known build, and an attack on many sites that share one hosting or container image. It cites Hacktron’s HEIF Heist research as a warning against reading build-specific as harmless. Hacktron’s report says that adapting a libheif exploit to each new company “usually took only one or two days.” Wordfence adds that this “does not prove that this exact Ghostscript flaw can be adapted in one or two days.”

What the public record does not show is the code-execution claim itself. We could not inspect or reproduce either exploit, so the overflow rests on Artifex’s own fix, the CNA record and the distribution advisories, while the remote-code-execution result rests on Wordfence’s lab. Artifex’s Bugzilla entry for the bug (number 709666), the page Wordfence links for more details, answered our fetch with a proof-of-work bot check, so we did not read it. On exploitation, CISA’s entry in the CVE record, dated September 20, says exploitation is “none,” and the Known Exploited Vulnerabilities catalog, in the newest version we could read (2026.10.08), does not list the flaw.

What to check on your servers

Start with the package, not the version string. Wordfence’s commands are dpkg -s ghostscript on Debian and Ubuntu and rpm -q ghostscript on Fedora and the Red Hat family. Compare the full revision with your distribution’s advisory, because distributions often add the fix to the older version they already ship. For containers, Wordfence says to rebuild and redeploy from an updated base image rather than restart the old container.

Then ask whether Ghostscript is reachable at all. Wordfence says a WordPress site can be attacked this way only if all four of these are true:

  1. A visitor, or someone with a low-privileged account, can upload a PDF.
  2. Something on the site then asks for a preview or thumbnail of that PDF.
  3. The server has Imagick, or another tool that calls Ghostscript to make that picture.
  4. The installed Ghostscript does not have the fix.

WordPress has made first-page images of uploaded PDFs since 4.7, and its developer note says the feature works “if a WP_Image_Editor is available that supports PDF.” Wordfence describes the chain as WordPress, then Imagick, then ImageMagick, then Ghostscript, and says a Site Health screen showing PDF support in Imagick “does not prove ImageMagick’s policy permits PDF reads” and does not show whether Ghostscript is patched. Outside WordPress, the same question applies to document management systems, print services, invoice processors, mail gateways and conversion APIs. If you are on managed hosting, ask the host whether its Ghostscript package includes the fix for CVE-2026-39919 and whether customer-uploaded PDFs are previewed anywhere on its systems.

If you cannot patch yet, Wordfence lists three stopgaps: stop accepting PDFs from visitors and low-privileged users; disable PDF reads in ImageMagick’s security policy, which also disables PDF previews; and limit files per submission and rate-limit upload forms, which reduces attempts without closing the hole. It also warns: “Do not treat -dSAFER as a fix,” because its testing reached the flaw with Ghostscript’s sandbox switch enabled. If you cannot patch every system at once, Wordfence suggests running document conversion in a separate, locked-down service that cannot read site secrets, which limits the damage without fixing anything. ImageMagick’s documentation shows how to deny reads of the PostScript family while still allowing writes:

<policy domain="coder" rights="write" pattern="{PDF,PS,PS2,PS3,XPS}" />

The same page says “ImageMagick ships in an open state so it can be embedded into controlled environments, containers, pipelines, or isolated servers, where administrators can then tighten the policy to match their needs.” It also says ImageMagick generally evaluates policies using a “last matching policy wins” model, so a later rule can undo this one. We did not test the line, because we have no ImageMagick install to test against; treat it as documentation, and confirm with your host what the live policy.xml says.

Wordfence’s earlier Argus disclosure, the libheif flaw we covered on September 19, also sat in a media library behind an upload form, and as we reported, WordPress 7.1.1 credited Anthropic and pwn.ai in a release that fixed eleven bugs. Both point the same way: the flaws that matter to a WordPress site can sit well below WordPress, and a vendor’s severity label tends to describe the deployment the vendor pictured. Patch the package first, then find out whether anything on your servers hands other people’s PDFs to a converter.

Sources and method

We read Wordfence’s post through its RSS feed, the CVE record, the NVD record and the VulnCheck advisory for CVE-2026-39919, and GitHub’s API for the fix commits, the 10.08.0 release and the repository’s tags, including raw copies of base/sjpx_openjpeg.c at the 9.20, 9.21, 10.07.1, 10.08.0rc1 and 10.08.0 tags. We also read the Debian, Ubuntu, Red Hat, AlmaLinux and SUSE advisories, the Alpine package pages and security database, CISA’s Known Exploited Vulnerabilities feed, Hacktron’s report, ImageMagick’s security-policy documentation and the WordPress 4.7 developer note. Every distribution status was read on October 12 and will change. We did not build or run any exploit, and we did not check Fedora.

Tags:

AI SecurityGhostscriptRemote Code ExecutionVulnerability ManagementWordfenceWordPress Security

Share

Two climbers in helmets and backpacks walk up a snow slope, joined by a taut rope between them
Previous Post

How to Replace asyncio.gather With TaskGroup in Python and Handle Failures With except*

A blue Link Trainer flight simulator with a yellow wing and tail on a pedestal in a museum hangar
Next Post

Microsoft’s StudentSim Turns Tutor Testing Into a Fidelity Question, With Guidance Graded Against an Answer Key

No Comment! Be the first one.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Latest
14 Oct
How to Stop Mass Assignment and Excessive Data Exposure in a FastAPI App
14 Oct
OpenAI’s EU Agentic Report Turns Token Share Into a Country Ranking Uncorrelated With Eurostat’s AI Data
Trending
October 14, 2026
How to Stop Mass Assignment and Excessive Data Exposure in a FastAPI App
October 14, 2026
OpenAI’s EU Agentic Report Turns Token Share Into a Country Ranking Uncorrelated With Eurostat’s AI Data
October 14, 2026
Microsoft Fixes a Record 1,413 Vulnerabilities in October, and Only One Is Known to Be Under Attack
October 13, 2026
How to Handle Daylight Saving Time in Python With zoneinfo and Stop Scheduling, Billing, and Logging Bugs
October 13, 2026
Cloudflare’s D1 Control Plane Turns Millions of Databases Into a Lag Budget the Post Never Adds Up
October 13, 2026
Ivanti Says It Fixed Part of a Connect Secure Flaw in July and Was Still Backporting When Attackers Struck

Related Posts

Rows of server racks in a data center representing network infrastructure targeted by botnets
News

C0XMO Botnet Shows Why Old Router Firmware Still Matters

June 7, 2026
Close-up of a USB flash drive, representing physical data-theft risk in office security incidents
News

Fake IT Support Is Now Walking Through the Front Door

June 7, 2026
A phone security app on a smartphone resting on a laptop keyboard.
News

Everest Forms Pro Flaw Is Being Exploited to Create Rogue WordPress Admins

June 7, 2026
A customer-support representative wearing a headset against a dark studio background.
Articles

The Meta AI Support Hack Was a Plain Old Authorization Failure

June 7, 2026
SXZ.io SXZ.io
  • [email protected]

Categories

Articles
Learning Hub
News

All Rights Reserved by SXZ.io ©2026