Calif Releases Proof of Concept for Exploited Apple CoreGraphics Flaw
Security / news
Calif Releases Proof of Concept for Exploited Apple CoreGraphics Flaw
The public code crashes iOS and macOS but stops short of code execution, and the researchers say they did not do that separate work.

Researchers at Calif published a proof-of-concept PDF on Sept. 30 that crashes iOS and macOS through CVE-2026-86950, a CoreGraphics flaw Apple fixed on Sept. 28 after a report that it had been used against targeted individuals.
The victim's device has to render a malicious PDF carrying a crafted embedded TrueType font, and it has to be running a build older than iOS 26.7.1. In Calif's write-up, authors Dion Blazakis, Josh Maine and Anna Groza say the proof of concept demonstrates a crash only. Turning the out-of-bounds write into code execution is, in the researchers' words as relayed by The Hacker News, separate work they did not complete.
What Apple patched and when
Apple's advisory, as quoted by The Hacker News, says it "is aware of a report that this issue may have been exploited in an extremely sophisticated attack against specific targeted individuals on versions of iOS before iOS 27". Meta Product Security reported the flaw.
| Date | Event |
|---|---|
| Sept. 28 | Apple ships iOS and iPadOS 26.7.1, macOS Tahoe 26.7.1, macOS Sequoia 15.8.1 |
| Sept. 29 | CISA adds CVE-2026-86950 to its Known Exploited Vulnerabilities catalog |
| Sept. 30 | Calif publishes "The Great Glyph Grift" and its proof of concept |
| Oct. 2 | CISA's federal deadline to apply the fix |

The bug: two functions that handle overflow differently
CoreGraphics rasterizes glyph outlines on a 4096 by 4096 sub-pixel grid and converts floating-point coordinates to 32-bit fixed-point values with a function Calif calls aa_double_to_fixed. A double that is too large for a 32-bit integer is undefined behaviour in that cast, and Calif found that the compiler produced different ARM64 instructions in two callers.
aa_moveto saturates the value with an FCVTZS instruction. aa_lineto truncates it through XTN. The two disagree on out-of-range coordinates, the bounding box comes out too narrow, CoreGraphics allocates an undersized buffer and the drawing code then writes past it. Per The Hacker News, the proof of concept overwrites two adjacent 16-bit values. Apple's patch, Calif says, adds manual clamping.
The WhatsApp question
Calif points to changes in Meta's Kaleidoscope attachment scanner, which now carries PDF font checks tagged MalformedFontProgram, UndecodableFontProgram and UnverifiedFontProgram. The Hacker News ties that to WhatsApp 26.38.74 and calls it circumstantial evidence of a delivery path. An earlier claim of zero-click delivery through automatic media download was removed 85 minutes after publication, and The Hacker News says Meta did not respond before it published.
No in-the-wild payload has been publicly obtained, the same report says. One write-up describes the affected range as everything before iOS 27, while Apple's fix list and Calif both put the line at 26.7.1; check the installed build rather than the major version.
What to do
Install iOS or iPadOS 26.7.1, macOS Tahoe 26.7.1 or macOS Sequoia 15.8.1. Apple's separate plan to demand explicit user action for macOS Full Disk Access is a different control and does nothing for a rendering bug. The pattern of a federal deadline arriving within days is the same one we saw with the exploited Zammad flaws.
Calif's generation scripts and the crashing PDF are in its GitHub repository, which means anyone can now reproduce the crash on an unpatched device.
Sources
More in Security
- 01Go Team Weighs Turning Off Default MPTCP After Linux FlawThe Go Security Team called a default change premature on Oct. 29, while commenters on golang/go issue 82717 split over keeping multipath TCP on.
- 02Anthropic's Claude Exploit Chains Hit Five Targets, Each With LimitsThe Frontier Red Team's Oct. 27 post covers Chrome, Safari, Android, Windows and Linux, but only the Chrome and Linux results reach code execution.
- 03A Tampered Claude Code Extension Sat in Cursor's Marketplace for 11 Hours and Left an SSH Key BehindVersions 2.1.312 and 2.1.313 carried a 7,386-byte loader that plants an attacker key and a reverse tunnel. Uninstalling the extension does not remove either.
- 04Ivanti Connect Secure Zero-Day Chain Gave Root on a Patched VPN, and the Integrity Checker Misses ItVolexity dates exploitation to October 3, ten days before Ivanti's advisory; the root escalation step has no CVE and no fix in the sources reviewed.