<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8" -->

---
title: Pillow CVE-2026-112900: How to find and fix it with GitLab
description: Pillow 13.0.0, released October 16, 2026, fixes CVE-2026-112900, a critical argument injection in how Pillow calls Ghostscript to render EPS images. The CVE...
canonical: https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Pillow CVE-2026-112900: How to find and fix it with GitLab | daily.dev
og:description: Pillow 13.0.0, released October 16, 2026, fixes CVE-2026-112900, a critical argument injection in how Pillow calls Ghostscript to render EPS images. The CVE...
og:url: https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8
og:image: https://api.daily.dev/og/posts/EP4JrPvP8.png
og:image:alt: Pillow CVE-2026-112900: How to find and fix it with GitLab
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Pillow CVE-2026-112900: How to find and fix it with GitLab

**[GitLab](https://daily.dev/sources/gitlab)** · 8 min read · 0 upvotes · 0 comments

## Summary

Pillow 13.0.0, released October 16, 2026, fixes CVE-2026-112900, a critical argument injection in how Pillow calls Ghostscript to render EPS images. The CVE record, published October 19, rates it 9.2 on CVSS 4.0 and affects every Pillow release from 2.6.0 up to, but not including, 13.0.0. No exploitation in the wild has been reported, though CISA marks it automatable with total technical impact. The flaw works even with '-dSAFER' because the input filename is passed unsanitized after '-f'. The release also fixes 16 other High and Critical advisories. GitLab says its own products are not affected and recommends upgrading to 13.0.0, using dependency scanning, code search and GitLab Duo Agent Platform to find and patch affected projects.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://about.gitlab.com/blog/pillow-cve-find-and-fix-with-gitlab>

## Questions this post answers

### What is CVE-2026-112900 in the Pillow Python library?

It is a critical OS command and argument injection vulnerability in Pillow's EPS plugin, caused by Pillow passing the input filename to Ghostscript after the '-f' flag without sanitizing it. It has a CVSS 4.0 score of 9.2, affects every Pillow version from 2.6.0 up to but not including 13.0.0, and was published October 19, 2026. CISA assessed it as automatable with total technical impact.

_Teams tracking critical Python dependency CVEs like this one can follow patch guidance on daily.dev._

### How do I fix CVE-2026-112900 in Pillow if I can't upgrade right away?

Save uploaded files under generated names rather than attacker-controlled filenames, restrict accepted formats with 'Image.open(f, formats=["PNG", "JPEG"])', or remove Ghostscript entirely from images that do not need EPS support. The permanent fix is upgrading to Pillow 13.0.0 or later, since the flaw lies in how the filename reaches Ghostscript and input validation on image contents does not help.

_Developers weighing stopgap mitigations versus a full dependency upgrade can track advisories like this on daily.dev._

### Does Ghostscript's -dSAFER flag protect against Pillow's EPS argument injection vulnerability?

No. The sandbox flag '-dSAFER', which Pillow passes to Ghostscript by default, restricts what a PostScript program itself can do but does not stop an attacker from injecting arguments into the Ghostscript command line, since Ghostscript's argument parser gives strings starting with '-' or '@' special meaning.

_Anyone auditing Ghostscript-based image pipelines for injection risks can keep up with findings like this on daily.dev._

## Similar posts on daily.dev

- [GitLab Patch Release: 19.0.2, 18.11.5, 18.10.8](https://daily.dev/posts/gitlab-patch-release-19-0-2-18-11-5-18-10-8-fmukjse7k) · GitLab · 0 upvotes · 0 comments
- [GitLab Critical Patch Release: 19.4.1, 19.3.3, 19.2.7](https://daily.dev/posts/gitlab-critical-patch-release-19-4-1-19-3-3-19-2-7-rdpef3qur) · GitLab · 0 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#gitlab](https://daily.dev/tags/gitlab)

[View this post on daily.dev](https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Pillow CVE-2026-112900: How to find and fix it with GitLab","url":"https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8"},"datePublished":"2026-10-26T22:45:12.950Z","dateModified":"2026-10-26T23:13:15.912Z","description":"Pillow 13.0.0, released October 16, 2026, fixes CVE-2026-112900, a critical argument injection in how Pillow calls Ghostscript to render EPS images. The CVE...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1a988208f2b697e58e89db7ba34612a0?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1a988208f2b697e58e89db7ba34612a0?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"GitLab","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"GitLab","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/3720ce340ca4435daef529abbf361b69","url":"https://daily.dev/sources/gitlab"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,gitlab","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"GitLab","item":"https://daily.dev/sources/gitlab"},{"@type":"ListItem","position":3,"name":"Pillow CVE-2026-112900: How to find and fix it with GitLab"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/pillow-cve-2026-112900-how-to-find-and-fix-it-with-gitlab-ep4jrpvp8#faq","mainEntity":[{"@type":"Question","name":"What is CVE-2026-112900 in the Pillow Python library?","acceptedAnswer":{"@type":"Answer","text":"It is a critical OS command and argument injection vulnerability in Pillow's EPS plugin, caused by Pillow passing the input filename to Ghostscript after the '-f' flag without sanitizing it. It has a CVSS 4.0 score of 9.2, affects every Pillow version from 2.6.0 up to but not including 13.0.0, and was published October 19, 2026. CISA assessed it as automatable with total technical impact. Teams tracking critical Python dependency CVEs like this one can follow patch guidance on daily.dev."}},{"@type":"Question","name":"How do I fix CVE-2026-112900 in Pillow if I can't upgrade right away?","acceptedAnswer":{"@type":"Answer","text":"Save uploaded files under generated names rather than attacker-controlled filenames, restrict accepted formats with 'Image.open(f, formats=[\"PNG\", \"JPEG\"])', or remove Ghostscript entirely from images that do not need EPS support. The permanent fix is upgrading to Pillow 13.0.0 or later, since the flaw lies in how the filename reaches Ghostscript and input validation on image contents does not help. Developers weighing stopgap mitigations versus a full dependency upgrade can track advisories like this on daily.dev."}},{"@type":"Question","name":"Does Ghostscript's -dSAFER flag protect against Pillow's EPS argument injection vulnerability?","acceptedAnswer":{"@type":"Answer","text":"No. The sandbox flag '-dSAFER', which Pillow passes to Ghostscript by default, restricts what a PostScript program itself can do but does not stop an attacker from injecting arguments into the Ghostscript command line, since Ghostscript's argument parser gives strings starting with '-' or '@' special meaning. Anyone auditing Ghostscript-based image pipelines for injection risks can keep up with findings like this on daily.dev."}}]}
```

