Cloudanix VulnDB

CVE-2026-54058

None

CVSS

—

EPSS

0.5%

Published

Jul 14, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in a common image-processing library can let a specially made image crash an application or reveal data from its memory, so affected systems should be updated.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Moderate
Impact
Data Exposure
Component
Library
Class
Information Disclosure
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This vulnerability is an out-of-bounds read in Pillow’s McIdas AREA image handling. In affected versions prior to Pillow 12.3.0, when an uncompressed McIdas AREA image is opened from a filename and processed through the mmap raw codec path, attacker-controlled header values can define a row stride smaller than the actual image row width. Subsequent pixel access operations such as Image.tobytes(), getpixel(), convert(), or save() may read past the mapped image buffer. The result can be disclosure of adjacent process memory and/or a process crash, depending on memory layout and how the application processes the malicious image.

Why it matters to the business

Applications and automation platforms that accept or process user-supplied images with vulnerable Pillow versions may expose sensitive in-process data or suffer crashes when handling a crafted McIdas AREA file. The highest risk is in services that automatically ingest, convert, thumbnail, inspect, or store images from untrusted sources. Although this issue is not currently in CISA KEV, is not known to be used in ransomware campaigns, and has low EPSS at 0.00476 with no public exploit maturity reported, image-processing libraries are commonly embedded in many workflows, so exposure can be broad and indirect through packaged products such as Red Hat python-pillow and Ansible Automation Platform Lightspeed components.

How an attack unfolds

An attacker prepares a malformed uncompressed McIdas AREA image with crafted header words that cause Pillow to calculate an unsafe row stride. The attacker then gets a vulnerable application to open the file from disk using Pillow. If the application performs a pixel-reading or transformation operation, such as converting the image, saving it to another format, calling tobytes(), or reading pixels, Pillow may read past the memory-mapped image region. Depending on the calling application, the attacker may receive output containing unintended process memory, or the process may terminate due to an access violation or segmentation fault. Successful exploitation requires the vulnerable McIdas AREA parser path to be reachable and the crafted file to be processed by application logic that triggers pixel access.

How to fix it

Upgrade Pillow to version 12.3.0 or later wherever it is directly used. For Red Hat packaged products, apply the vendor fixes in RHSA-2026:50340, including python-pillow on Red Hat Enterprise Linux 8 fixed in 5.1.1-23.el8_10, ansible-automation-platform-26/lightspeed fixed in chatbot-rhel9:1785646188, and ansible-automation-platform-27/lightspeed fixed in chatbot-rhel9:1785426734. Rebuild and redeploy containers, virtual environments, serverless packages, and application bundles that vendor or pin Pillow. If immediate patching is not possible, restrict or disable processing of McIdas AREA files from untrusted sources, enforce strict image type allowlists, perform image validation in a sandboxed worker with memory isolation, and limit returned error details and transformed output from failed image-processing jobs.

How to confirm the fix worked

Confirm the installed Pillow version is 12.3.0 or later for Python package installations, or that the applicable vendor package version equals or exceeds the fixed Red Hat builds. Use package inventory commands such as `python -m pip show Pillow`, `python -c "import PIL; print(PIL.__version__)"`, `rpm -q python-pillow`, and container image/software composition analysis to locate embedded vulnerable versions. Verify that deployed application images and virtual environments were rebuilt after the dependency update, not just source repositories. Test upload and conversion workflows to ensure McIdas AREA files are blocked or safely handled if the format is not required. For Red Hat systems, verify RHSA-2026:50340 is installed through the platform’s normal advisory or package-management tooling.

Typical attack path

  1. Identify an application, API, automation workflow, or backend service that uses Pillow to process uploaded or externally supplied image files.
  2. Submit or deliver a crafted uncompressed McIdas AREA image file with manipulated header values controlling the row stride.
  3. Cause the application to open the image from a filename so the mmap raw codec path is used.
  4. Trigger downstream image operations such as Image.tobytes(), getpixel(), convert(), thumbnail generation, metadata extraction, or save/export.
  5. Observe whether the service crashes or whether transformed output, error responses, stored files, or logs expose unintended memory content.
  6. Repeat with adjusted image dimensions or header values to improve reliability or target useful adjacent memory disclosure.

How to detect it

Look for evidence that untrusted McIdas AREA files were uploaded or processed by applications using Pillow before patching. Relevant sources include web and API access logs, file-upload audit logs, object storage events, image-processing worker logs, application exception logs, Python tracebacks, container stdout/stderr, crash dumps, core dumps, EDR process telemetry, and reverse-proxy logs. Search for McIdas AREA file names or magic/header patterns, image conversion jobs involving unusual or failed AREA files, repeated crashes in Python workers after image upload requests, and Pillow exceptions or segmentation faults occurring during operations such as tobytes, getpixel, convert, or save. If output files generated from suspicious uploads are available, inspect them for unexpected binary data, fragments of secrets, request contents, environment variables, stack data, or unrelated process memory. Because exploitation may only produce a crash or subtle memory disclosure through application output, absence of a clear indicator does not prove non-exploitation.

  • McIdas AREA
  • AREA image
  • AREA file
  • PIL.McIdasImagePlugin
  • McIdasImagePlugin
  • Image.tobytes
  • getpixel
  • Image.convert
  • Image.save
  • ValueError: not an McIdas area file
  • SyntaxError: not an McIdas area file
  • Segmentation fault
  • core dumped
  • SIGSEGV
  • Fatal Python error
  • python-pillow
  • Pillow

What your security team should do

  • Inventory all applications, containers, notebooks, automation workers, and image-processing services that include Pillow or Red Hat python-pillow.
  • Prioritize patching internet-facing or externally fed image-processing workflows, especially services that automatically convert, preview, thumbnail, or export uploaded files.
  • Apply Pillow 12.3.0 or later, or the relevant Red Hat RHSA-2026:50340 fixed packages, and rebuild all dependent runtime artifacts.
  • Temporarily block McIdas AREA image ingestion from untrusted sources if the format is not business-critical.
  • Run software composition analysis across container images and Python lockfiles to identify pinned or vendored Pillow copies that normal OS patching will not update.
  • Place untrusted image processing in isolated, low-privilege workers with memory limits and crash containment.
  • Review recent image-processing crashes, suspicious AREA file uploads, and anomalous output files for possible prior exploitation.
  • Add detection rules for McIdas AREA file uploads and Pillow image-processing exceptions until patch coverage is verified.

The record

Pillow is a Python imaging library. Prior to 12.3.0, when Pillow loads an uncompressed McIdas AREA image from a filename through the mmap raw codec path, attacker-controlled header words can set a row stride smaller than the natural row width, causing pixel access such as Image.tobytes(), getpixel, convert, or save to read beyond the mapped region and disclose adjacent process memory or fault. This issue is fixed in version 12.3.0.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities