Memory corruption in AppleJPEG media file processing
CVE-2026-28956 is a memory corruption vulnerability in AppleJPEG affecting Apple platforms including iOS 26.5, iPadOS 26.5, macOS Sequoia 15.7.7, macOS Sonoma 14.8.7, macOS Tahoe 26.5, tvOS 26.5, visionOS 26.5, and watchOS 26.5. Apple states the issue was addressed with improved input validation. The flaw can be triggered when the vulnerable component processes a maliciously crafted media file, leading to memory corruption in the target process.
Are you exposed to this one?
Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.
Impact, mitigation & remediation
What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.
Impact
What an attacker gets, and what they’ve been doing with it.
Mitigation
If you can’t patch tonight, do this now.
Remediation
Patch, then assume compromise.
Exploits
1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.
This repository is a compact local macOS exploit PoC for an AppleJPEGXL use-after-free, identified in comments as CVE-2026-28956. It is not part of a common exploit framework. The structure is simple: README.md is a minimal pointer to an external write-up; cgimagesource.m is the main trigger program; interpose_free.c is an exploit-assistance DYLD interposer that hooks free() to poison freed AppleJPEGXL buffers; and interpose_profile.c is a profiling interposer that logs malloc/free activity from AppleJPEGXL for heap analysis. The main PoC in cgimagesource.m is an Objective-C command-line program that accepts a crafted .jxl file, loads it into NSData, creates a CGImageSource via CGImageSourceCreateWithData, iterates images, and forces full pixel decoding by drawing each image into a bitmap context. This is explicitly intended to exercise the same ImageIO/CoreGraphics decode path used by Safari/WebContent and other Apple applications such as Mail and Preview. The vulnerability is triggered when the image source is released, causing AppleJPEGXL's JxlDecoderDestroy path to execute and hit the use-after-free. The code also disables GPU acceleration before triggering, likely to stabilize the software decode path. interpose_free.c materially increases exploit capability beyond a bare crash PoC. It uses DYLD interposition to replace free() for frees originating from AppleJPEGXL. In default "regctl" mode, it fills freed buffers with the ASB target value read from commpage memory, aiming to influence crash-state registers and demonstrate register control. In "arbrw" mode, enabled by ASB_MODE=arbrw, it fills freed memory with the ASB target address so later dereferences by framework code can demonstrate arbitrary read/write-oriented behavior. The comments explain the intended destructor behavior and how crafted pointer placement can induce reads and writes relative to the ASB target address. This makes the repository more than a simple detector: it is an operational exploitability demonstration toolkit. interpose_profile.c is a supporting analysis tool rather than the primary exploit. It hooks malloc() and free(), but only logs operations whose callers resolve to AppleJPEGXL. This helps characterize heap layout and call sites during decoding, with output suitable for parsing by a mutation or test harness. Overall, the repository’s purpose is to demonstrate local reachability and exploitability characteristics of an AppleJPEGXL UAF through the ImageIO decode pipeline using a malicious JPEG XL file, with additional tooling to capture Apple Security Bounty target flags, influence freed memory contents, and profile allocator behavior.
Affected products & vendors
Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.
Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.
Recent activity
20 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.
A memory corruption vulnerability in AppleJPEG triggered by a maliciously crafted media file, potentially causing app termination or process memory corruption.
A memory corruption vulnerability in macOS Tahoe triggered by a maliciously crafted media file, potentially causing app termination or process memory corruption.
A memory corruption vulnerability in media file processing that could cause app termination or process memory corruption.
A memory corruption vulnerability in macOS Sonoma triggered by a maliciously crafted media file, potentially causing app termination or process memory corruption.
The version that knows your environment.
Query your assets running an affected version, and investigate the blast radius.
Every observed campaign linking this CVE to a named adversary.
Malware families riding this exploit, with evidence and IOCs.
YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.
Cross-references every affected SKU, including bundled OEM variants.
Community discussion across Reddit, Mastodon, and other social sources.