Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local low-privileged execution
-
DeliveryTrigger concurrent security policy access
-
ExploitHit unsynchronized read/write race
-
ExecutionCorrupt heap via buffer over-write
-
ImpactCrash application (denial of service)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires local access and the ability to induce concurrent access to the ImageMagick security policy - specifically simultaneous reads and writes of the policy (e.g. via SetMagickSecurityPolicy) across multiple threads within a process embedding the library. The flaw lives in the unsynchronized policy_semaphore-guarded region of MagickCore/policy.c (magick/policy.c for ImageMagick6). Limiting factors: the attacker must already have local low-privileged code execution (PR:L, AV:L), the target application must perform multi-threaded policy modification at runtime (not a default for most single-policy deployments, which load policy once at startup), and success depends on winning a probabilistic timing race (AT:P), making reliable triggering non-trivial. Impact is limited to a crash - no confidentiality or integrity effect. |
| Impact | This is a genuinely low-priority issue despite being a memory-corruption bug. The CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:L/UI:N) and the vendor-assigned base score of 2.0 align consistently: exploitation is local, requires low privileges (PR:L), and carries an Attack Requirement (AT:P) reflecting the non-deterministic timing window inherent to a race condition. Impact is confined to availability (VA:L) with no confidentiality or integrity consequence - the outcome is an application crash (DoS), not code execution, despite the underlying heap buffer over-write. No EPSS score, KEV listing, or public POC is present in the provided data, so there is no evidence of exploitation: no public exploit identified at time of analysis. The signals are internally consistent and do not conflict - a race-condition DoS requiring local concurrent access to the security policy is a robustness/hardening fix, not an urgent threat. Note the CVSS 4.0 vector uses AC:L with AT:P to model the race timing; a CVSS 3.1 translation would more naturally render this as AC:H since 3.1 has no Attack Requirement metric. |
| Exploit ScenarioDerived | A local, low-privileged user (or co-tenant process) interacts with a multi-threaded application embedding ImageMagick and induces simultaneous reads and writes of the security policy across threads. By repeatedly triggering concurrent SetMagickSecurityPolicy calls alongside policy reads, the attacker hits the unsynchronized window and corrupts the heap, crashing the process. No public exploit code is identified; the low attack complexity is offset by the probabilistic race window (AT:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Heap buffer over-write in ImageMagick versions before 6.9.13-57 (6.x) and before 7.1.2-32 (7.x) is triggered when the security policy is read and written concurrently by multiple threads, crashing the application and causing a denial of service. Exploitation requires local low-privileged code execution (CVSS:4.0 AV:L/PR:L) inside a process that embeds the library and that modifies its policy at runtime, combined with winning a probabilistic timing race (AT:P); the flaw yields no confidentiality or integrity impact, only availability loss. No public exploit code has been identified at time of analysis, and vendor-released patches are available as 6.9.13-57 and 7.1.2-32.
RemediationAI
Vendor-released patch: upgrade to ImageMagick 6.9.13-57 (6.x branch) or 7.1.2-32 (7.x branch), which add semaphore locking around the security policy access in MagickCore/policy.c; the corresponding upstream fixes are commit 12db6f04e895deae4537ead10c771a244607794a (7.x) and commit 9ddc71abea5cbe7d18164fa0f0077a105cab514f (6.x), and the advisory is GHSA-8x3v-wr32-qqh4. If upgrading is not immediately possible, the most effective compensating control is to eliminate concurrent policy mutation: load the policy exactly once during single-threaded initialization and never invoke SetMagickSecurityPolicy() from more than one thread while other threads are processing images, which removes the race entirely at the cost of losing runtime policy reconfiguration (a trade-off that is harmless for the default single-policy deployments). Where dynamic policy changes are required, serialize all policy updates behind an application-level mutex that is also held by any code path that reads the policy, accepting the added lock contention and the risk that third-party bindings calling the library directly still bypass it. Because the issue is local and requires existing low-privileged code execution plus a timing race, network-facing mitigations are of limited value; reduce the number of untrusted local users or untrusted embedded workloads as a supplementary measure. No exploit code has been observed, but patching should still be applied as routine maintenance rather than treated as urgent.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The weakness is CWE-362 (Concurrent Execution using Shared Resource with Improper Synchronization), a classic race condition. ImageMagick maintains a global security policy object protected by a semaphore named policy_semaphore, but the code path in MagickCore/policy.c (magick/policy.c in the ImageMagick6 branch), specifically around SetMagickSecurityPolicy(), performs reads and writes of the policy object without consistently holding that lock. The upstream commit diffs show the fix simply wrapping the affected region with LockSemaphoreInfo(policy_semaphore) and UnlockSemaphoreInfo(policy_semaphore). Because the policy structure is heap-allocated and mutated in place, two threads racing a read against a write can observe a partially updated structure and write past the end of an allocated buffer, corrupting heap memory. In practice the corruption manifests as an application crash rather than a code-execution primitive, which is consistent with the assessed CVSS:3.1 vector AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L. The attack surface is the C library API used by embedders (for example, image-processing services and language bindings that call into MagickCore), not the command-line tool's typical one-shot policy load at startup. CPE data identifies the affected component family as cpe:2.3:a:imagemagick:imagemagick across both the 6.x and 7.x release lines.
Know when Imagemagick gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Local concurrent-thread access (AV:L) winning a non-deterministic race (AC:H) with low in-process privileges (PR:L); only a crash results, so A:L and C:N/I:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 lacks proper synchronization when the security policy is accessed, so simultaneous reads and writes of the policy by multiple threads trigger a race condition that causes a heap buffer over-write. An attacker able to induce concurrent security policy access can crash the application, causing a denial of service.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Imagemagick
View allThe (1) EPHEMERAL, (2) HTTPS, (3) MVG, (4) MSL, (5) TEXT, (6) SHOW, (7) WIN, and (8) PLT coders in ImageMagick before 6.
The (1) HTTP and (2) FTP coders in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allow remote attackers to conduct
The EPHEMERAL coder in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allows remote attackers to delete arbitrary fi
ReadGIFImage in coders/gif.c in ImageMagick 7.0.6-1 and GraphicsMagick 1.3.26 leaves the palette uninitialized when proc
Integer overflow in MagickCore/profile.c in ImageMagick before 7.0.2-1 allows remote attackers to cause a denial of serv
The LABEL coder in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allows remote attackers to read arbitrary files vi
The OpenBlob function in blob.c in GraphicsMagick before 1.3.24 and ImageMagick allows remote attackers to execute arbit
The DCM reader in ImageMagick before 6.9.4-5 and 7.x before 7.0.1-7 allows remote attackers to have unspecified impact b
The ReadDCMImage function in DCM reader in ImageMagick before 6.9.4-5 and 7.x before 7.0.1-7 allows remote attackers to
The DCM reader in ImageMagick before 6.9.4-5 and 7.x before 7.0.1-7 allows remote attackers to have unspecified impact b
ImageMagick 7.0.6-5 has a memory leak vulnerability in ReadWEBPImage in coders/webp.c because memory is not freed in cer
Heap buffer overflow in ImageMagick's XBM image decoder (ReadXBMImage) lets remote attackers write attacker-controlled d
EUVD-2026-97581
GHSA-xg3c-hhwj-7xrg
NVD
CVE.org
EPSS
Exploit-DB