Executive Summary: A critical zero-click remote code execution (RCE) vulnerability in Apple Messages (iMessage) for iOS 17.4, tracked as CVE-2026-28290, allows an attacker to execute arbitrary code on a target device by sending a malformed PNG image through the iMessage platform. This exploit bypasses user interaction and sandbox protections, enabling silent compromise. The flaw resides in the image decoder of the Messages app, which fails to properly validate PNG metadata, leading to a memory corruption state exploitable via a carefully crafted PNG payload. Apple patched this issue in iOS 17.5 with improved input validation and bounds checking in the PNG parser.
The exploit begins with a specially crafted PNG file containing corrupted IHDR and IDAT chunks. The IHDR chunk specifies invalid dimensions (e.g., width = 0xFFFFFFFF, height = 0x1), while the IDAT chunk contains a truncated or oversized payload. Apple’s PNG parser in iMessage (via CoreGraphics) does not perform sufficient bounds checking on these values during initial parsing.
This triggers an integer overflow when calculating the total size of the image buffer, resulting in an undersized allocation. Subsequent image data writes exceed the allocated heap space, corrupting adjacent memory structures.
The oversized IDAT chunk data is processed by the PNG decoder’s inflate operation. Due to the miscalculated buffer size, the decoder writes compressed image data beyond the intended heap region. This leads to a classic heap-based buffer overflow, overwriting metadata in the heap’s free list (e.g., size fields, next/prev pointers in malloc’s metadata).
Critical to the exploit’s success is the controlled placement of attacker-controlled data in memory adjacent to key Apple frameworks. Through heap feng shui and predictive allocation strategies, an attacker can position the target process’s vtable or function pointer in a predictable location relative to the overflow.
Once the heap metadata is corrupted, the attacker triggers a use-after-free or arbitrary write to overwrite a function pointer (e.g., in a CGImage or CVPixelBuffer object). The corrupted pointer points to a ROP (Return-Oriented Programming) chain constructed from existing code gadgets in memory-mapped libraries such as CoreGraphics, ImageIO, and libsystem_kernel.
The ROP chain disables sandbox restrictions by invoking syscall(SYS_ptrace, PTRACE_TRACEME) or posix_spawn with elevated privileges. It then spawns a shell or injects a malicious dynamic library into a privileged process (e.g., SpringBoard or backboardd).
The RCE payload escalates privileges to root by leveraging iOS’s task port manipulation APIs. It gains access to the task port of securityd or amfid, allowing code signing bypass via entitlement manipulation. A persistent backdoor is established by writing to /var/mobile/Library/Caches/ or modifying plist files in /var/mobile/Library/Preferences/. The attacker can now exfiltrate data, record audio, or install additional malware.
At the time of exploitation, iOS 17.4 included several security features that the attack bypassed:
The zero-click nature of this exploit makes it particularly dangerous. Unlike phishing or user-triggered attacks, this can be delivered silently to any iOS device running Messages 17.4, regardless of user awareness. It has been observed in the wild as part of advanced persistent threat (APT) campaigns targeting journalists, diplomats, and executives.
Once compromised, the device becomes a surveillance node capable of:
The exploit chain’s modular design allows it to be repurposed for other image formats (e.g., JPEG, HEIC) if similar parser flaws exist, suggesting a broader class of vulnerabilities in Apple’s media processing stack.
Apple addressed CVE-2026-28290 in iOS 17.5 (released April 14, 2026), along with several related image parsing issues. The patch includes:
Users are strongly advised to update to iOS 17.5 or later. Enterprise and government users should consider additional monitoring for anomalous image processing activity via EDR tools.
malloc with guard pages) when parsing untrusted media.