Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-49219

CVE-2026-49219: ImageMagick Path Traversal Vulnerability

CVE-2026-49219 is a path traversal vulnerability in ImageMagick that allows attackers to bypass security policies and read restricted files via symlinks. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2026-49219 Overview

CVE-2026-49219 is a security policy bypass vulnerability in ImageMagick, the widely deployed open-source image manipulation library. The flaw stems from incorrect parsing of filenames, allowing a local attacker to read files restricted by an ImageMagick security policy through symbolic link manipulation. The issue affects ImageMagick versions prior to 6.9.13-48 and 7.1.2-24, and is classified under [CWE-22] Path Traversal. Successful exploitation results in unauthorized disclosure of file contents that the configured security policy was intended to protect.

Critical Impact

Local attackers with low privileges can bypass ImageMagick security policies and read protected files by leveraging symlinks, undermining policy-based file access restrictions used to harden multi-tenant image processing services.

Affected Products

  • ImageMagick versions prior to 6.9.13-48 (6.x branch)
  • ImageMagick versions prior to 7.1.2-24 (7.x branch)
  • Applications and services embedding vulnerable ImageMagick builds

Discovery Timeline

  • 2026-06-10 - CVE-2026-49219 published to NVD
  • 2026-06-10 - Last updated in NVD database

Technical Details for CVE-2026-49219

Vulnerability Analysis

The vulnerability resides in how ImageMagick parses filenames supplied to its image loading routines. ImageMagick provides a policy.xml mechanism that administrators use to restrict access to specific coders, modules, or filesystem paths. Because the filename parser does not correctly resolve or canonicalize symbolic links before policy enforcement, an attacker can craft a path that appears benign to the policy check but resolves to a protected file at read time. The result is a classic policy bypass through indirect file references.

The impact is limited to confidentiality. The CVSS vector indicates a local attack vector with low privileges and no user interaction required. An attacker who can submit image processing requests, place files in directories ImageMagick reads, or control symlink targets can extract data the policy was designed to block.

Root Cause

The root cause is improper canonicalization of file paths before evaluating the security policy. ImageMagick evaluates filename strings against policy rules without first resolving symbolic links to their final targets. This Time-of-Check Time-of-Use-style mismatch between policy evaluation and actual file access is the foundation of the bypass.

Attack Vector

A local attacker creates a symbolic link inside a directory ImageMagick is permitted to access. The symlink target points to a file the policy explicitly disallows, such as configuration files, credential stores, or other tenants' data. When ImageMagick processes the symlink path, the policy check passes against the visible filename, but the underlying open operation follows the symlink to the restricted destination. ImageMagick then returns or embeds the file contents in processing output.

No verified public exploit code is available. Technical details are described in the GitHub Security Advisory GHSA-xcjm-wqff-m669.

Detection Methods for CVE-2026-49219

Indicators of Compromise

  • Unexpected symbolic links inside directories used by ImageMagick for input or temporary files
  • ImageMagick processes opening files outside their expected working directories, especially sensitive paths such as /etc, /root, or application secret stores
  • Image conversion outputs containing fragments of non-image file content

Detection Strategies

  • Audit ImageMagick invocations and log the fully resolved (canonical) path of every input file using filesystem auditing such as auditdpath and readlink events
  • Compare the filename passed to convert, magick, or library callers against the resolved inode to flag symlink dereferences targeting policy-restricted paths
  • Alert when ImageMagick worker processes read files outside an allow-list of expected directories

Monitoring Recommendations

  • Forward ImageMagick and host audit logs to a centralized analytics platform to correlate symlink creation events with subsequent ImageMagick file reads
  • Track installed ImageMagick versions across the fleet and alert on hosts running builds older than 6.9.13-48 or 7.1.2-24
  • Monitor user-writable upload and scratch directories for newly created symbolic links

How to Mitigate CVE-2026-49219

Immediate Actions Required

  • Upgrade ImageMagick to version 6.9.13-48 or 7.1.2-24 or later on all systems
  • Inventory applications that bundle ImageMagick libraries and patch them through their respective vendors
  • Restrict local access to systems that run ImageMagick on attacker-controllable input until patches are applied

Patch Information

The issue is fixed in ImageMagick 6.9.13-48 and 7.1.2-24. Both releases correct the filename parsing logic so that policy decisions account for symbolic link resolution. Refer to the GitHub Security Advisory GHSA-xcjm-wqff-m669 for upstream fix details.

Workarounds

  • Run ImageMagick under a dedicated low-privilege user account with no read access to sensitive files, so policy bypass yields no useful data
  • Process untrusted images inside containers or chroot environments that contain only the files ImageMagick legitimately needs
  • Disable symlink following at the filesystem layer for ImageMagick working directories using mount options such as nosymfollow where supported
  • Tighten policy.xml to deny all coders and paths not explicitly required by the application
bash
# Configuration example: restrict ImageMagick policy.xml
# Place in /etc/ImageMagick-7/policy.xml
<policymap>
  <policy domain="path" rights="none" pattern="@*"/>
  <policy domain="coder" rights="none" pattern="*"/>
  <policy domain="coder" rights="read|write" pattern="{PNG,JPEG,GIF,WEBP}"/>
  <policy domain="resource" name="memory" value="256MiB"/>
  <policy domain="delegate" rights="none" pattern="*"/>
</policymap>

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.