CVE-2026-55798 json
Pillow: WindowsViewer.get_command() OS command injection via unescaped shell path
published 2026-07-06 4 mo ago modified 2026-10-25 14 d ago also BIT-pillow-2026-55798 , EUVD-2026-41898 , GHSA-4x4j-2g7c-83w6 , PYSEC-2026-2257
- cvss
- 4.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
Pillow is a Python imaging library. Prior to 12.3.0, WindowsViewer.get_command() constructed a cmd.exe shell command by directly embedding a file path into an f-string without escaping and passed the result to subprocess.Popen(..., shell=True), allowing shell metacharacters in the file path to inject arbitrary cmd.exe commands. This issue is fixed in version 12.3.0.
Patch / fix
- pypi pillow 12.3.0
- bitnami pillow 12.3.0
- python pillow 12.3.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-55798 updated cvss 4.5
python-pillow: Pillow: Arbitrary command injection via shell metacharacters in file paths
-
Red Hat Exploit Intelligence exploit-intelligence-tech-preview/vulnerability-analysis-rhel9 Red Hat Lightspeed Core lightspeed-core/lightspeed-stack-rhel9 Red Hat OpenShift Lightspeed openshift-lightspeed/lightspeed-ocp-rag-rhel9, openshift-lightspeed/lightspeed-service-api-rhel9, openshift-lightspeed-tech-preview/lightspeed-rag-tool-rhel9 Red Hat AI Inference Server rhaii/vllm-cpu-rhel9, rhaii/vllm-tpu-rhel9, rhaii/vllm-cuda-rhel9, rhaii/vllm-rocm-rhel9, rhaiis/vllm-cpu-rhel9, rhaiis/vllm-tpu-rhel9, +9 more Red Hat Ansible Automation Platform 2 python-pillow 10.3.0-1.el9ap, ansible-automation-platform-26/hub-rhel9, ansible-automation-platform-27/hub-rhel9, ansible-automation-platform/automation-dashboard-rhel9, ansible-automation-platform-25/lightspeed-chatbot-rhel8, ansible-automation-platform-26/lightspeed-chatbot-rhel9, +1 more Red Hat Enterprise Linux 7 python-pillow, python-pillow-qt, python-pillow-tk, python-pillow-sane, python-pillow 10.3.0-1.el9apnot affected: vulnerable code not present
+5 more productsfewer
Red Hat Enterprise Linux 8 python3-pillow, python3-pillow-tk, python-pillow 10.3.0-1.el9ap Red Hat Enterprise Linux AI (RHEL AI) 3 rhelai3/bootc-cuda-rhel9, rhelai3/bootc-rocm-rhel9, rhelai3/bootc-gaudi-rhel9, rhelai3/bootc-aws-cuda-rhel9, rhelai3/bootc-gcp-cuda-rhel9, rhelai3/disk-image-cuda-rhel9, +2 more Red Hat OpenShift AI (RHOAI) rhoai/odh-automl-rhel9, rhoai/odh-mlflow-rhel9, rhoai/odh-autorag-rhel9, rhoai/odh-caikit-nlp-rhel9, rhoai/odh-vllm-gaudi-rhel9, rhoai/odh-kserve-agent-rhel9, +32 more Red Hat Quay 3 quay/quay-rhel8, quay/quay-rhel9 Red Hat Satellite 6 python-pillow 10.3.0-1.el9ap, python-pillow 12.2.0-1.el8pc
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 4 mo ago
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/python-pillow/Pillow/security/advisories/GHSA-4x4j-2g7c-83w6 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 4.5 | CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L |
| GitHub | 3.1 | 4.5 | CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L |
| OSV | 3.1 | 4.5 | CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | pillow | <12.3.0 |
12.3.0 |
| bitnami | pillow | <12.3.0 |
12.3.0 |
Affected products
- python-pillow Pillow
Classification
- Weakness
-
- CWE-78 Improper Neutralization of Special Elements used in an OS Command
References
-
github.com
/python-pillow/Pillow/commit/8404ea5fe5df40fc34aa1e51403dd6fce0778b8a
web, patch
-
github.com
/python-pillow/Pillow/commit/88194166691b7b603529b8b036ab3ab9cedd2de4
web, patch
-
github.com
/python-pillow/Pillow/commit/b0e06caa64c1405aa3da0bb1d2bd9a77ca22de7f
web, patch
-
github.com
/python-pillow/Pillow/security/advisories/GHSA-4x4j-2g7c-83w6
exploit, web, vendor-advisory, advisory, evidence
-
github.com
/python-pillow/Pillow/blob/main/docs/releasenotes/12.3.0.rst
web, release-notes, article, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-55798
advisory, web
-
github.com
/pypa/advisory-database/tree/main/vulns/pillow/PYSEC-2026-2257.yaml
web
-
github.com
/python-pillow/Pillow
package
Sources
- CVE List CVE-2026-55798
- GitHub Advisory GHSA-4x4j-2g7c-83w6
- NVD CVE-2026-55798
- OSV BIT-pillow-2026-55798
- OSV PYSEC-2026-2257
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.