WebP BlastPass: One C Library Pwned Everything

WebP BlastPass: One C Library Pwned Everything

📋 Key Takeaways
  • The deeper structural story was monoculture risk crystallizing.
  • CVE-2023-4863 is now the canonical citation in three arguments: memory-safe languages for parsers (Rust rewrites of image stacks accelerated after it), sustained funding for foundational open source, and zero-click hardening (locked-down media pipelines, disable-link-preview policies for high-risk users).
  • The WebP vulnerability (CVE-2023-4863) behind BLASTPASS — a heap buffer overflow in libwebp that produced zero-click iPhone exploitation via malicious images in PassKit attachments — was a single C library under essentially every browser, messaging app, and image pipeline on earth.
  • BLASTPASS sits in the spyware-delivery lineage: the FORCEDENTRY exploit chain of 2021 (also image-format parsing) and the broader NSO-era zero-click catalog.
10 min read · 1,844 words
Educational & Ethical Use Only — This article is provided for educational and ethical cybersecurity research purposes only. The techniques described should only be used on systems you own or have explicit permission to test. Always follow responsible disclosure and the laws applicable to you. Mitigations are included so engineers can harden real systems.
Identity & Phishing· 10 min read

Quick Answer — In September 2023, Google and Apple shipped emergency fixes for CVE-2023-4863, a heap buffer overflow in libwebp — the open-source library that renders the WebP image format inside Chrome, Firefox, Edge, Safari, Electron apps, and countless embedded products. Exploitation was confirmed in the wild as BLASTPASS, a chain that compromised iPhones by doing nothing more sinister than rendering an image in iMessage. For defenders the takeaway was brutal and clarifying: a dependency you never think about — an image decoder — was everywhere, and one bug in it pwned the entire client ecosystem at once.

The BLASTPASS incident operationalized a fear that had lived in security economics papers for years: single points of failure in open-source image-parsing libraries. For one September week, the entire industry patched the same line of C.

What happened

  • The bug: A heap buffer overflow in libwebp’s lossless Huffman decoding routine — reachable by any application that decoded a maliciously crafted WebP image, which is to say, nearly every browser and chat client on earth.
  • The exploit chain: Citizen Lab caught BLASTPASS being used against a Washington DC-based civil society victim — a zero-click iMessage exploit that installed NSO Group’s Pegasus spyware without the target touching anything.
  • The scope reveal: What began as an Apple emergency patch (August Citizen Lab disclosure) widened within days when researchers traced the root cause to libwebp itself — meaning every downstream consumer of the library needed its own fix, and vendor advisories multiplied into the dozens.
  • The attribution footnote: The commercial spyware dimension — Pegasus as the payload — put the episode in the mercenary-ware chapter of 2023 alongside Predator and Hermit.

Why image decoders are perfect targets

Property Consequence
Parser of untrusted input Any image from anyone is attacker-supplied code input by design
Legacy C codebase Memory safety absent; one overflow equals full compromise
Ubiquity One library, every platform: browsers, messengers, OSes, Electron apps
Invisible dependency Nobody audits the image decoder; risk lives below the SBOM awareness line
Zero-click delivery Chat previews render images automatically — the victim never clicks

Timeline

Date Event
2023-08-10 → 09-01 Citizen Lab detection and responsible disclosure window for BLASTPASS targeting an NSO victim; Apple patches Safari/rendering stack
2023-09-06 → 09-07 (event; our peg) Apple’s iOS 16.6.1-era advisories; root cause traced to libwebp CVE-2023-4863; Chrome and Firefox ship emergency fixes the same week
2023-09 mid Vendor advisory cascade: Electron, Signal, Telegram, 1Password, and dozens more ship patched builds; scanning for vulnerable libwebp becomes a fleet-wide chore
2023-09 → 10 CISA KEV listing; exploitation reporting expands beyond the original spyware victim set
2023-Q4 → The incident becomes the standard exhibit for memory-safety and supply-chain dependency arguments

Defensive lessons

  • Inventory your decoders. You cannot patch what you can’t name: maintain a live map of parsing libraries — image, video, archive, font, document — in every client and server you ship.
  • Treat “just an image” as code execution risk. Zero-click rendering means attachment-style sandboxing of media processing; decode in isolated processes with minimal privileges and no network.
  • Fund the boring libraries. libwebp and kin run the visual web on near-zero maintenance budgets; if your product depends on one, you inherit its security debt — pay some of it upstream.
  • Rapid advisory mapping beats rapid patching. The orgs that fared best in September 2023 weren’t the fastest patchers; they were the ones who could query “where do we use libwebp?” in minutes and know the answer was complete.
  • Assume spyware economics. Commercial exploit vendors amortize research across many buyers; a decoder bug is a product feature to them, not an accident.

The monoculture moment

The deeper structural story was monoculture risk crystallizing. WebP’s compression efficiency made it the default web image format, and libwebp’s open-source excellence made it the default implementation — a single parse routine under every rendering surface. When the bug landed, the patch matrix read like a directory of the software industry: two browser engines, three OS vendors, every chat app, every Electron bundle. Redundancy arguments suddenly had a case study with a CVE number. The honest defense isn’t abandoning shared code — shared code gets patched by thousands of eyes — it’s knowing your dependency graph deeply enough that “shared” doesn’t mean “unknown”. September 2023 was the pop quiz most of the industry failed blind: not “can you patch fast” but “do you even know where the library lives”.

Why it still matters in 2026

CVE-2023-4863 is now the canonical citation in three arguments: memory-safe languages for parsers (Rust rewrites of image stacks accelerated after it), sustained funding for foundational open source, and zero-click hardening (locked-down media pipelines, disable-link-preview policies for high-risk users). It also permanently changed spyware incident response: Citizen Lab’s catch proved civil-society monitoring has intelligence-grade value, and vendor response to “commercial exploit chain found in the wild” now runs at emergency speed by default rather than by exception.

Was it actually exploited in the wild?

Yes — confirmed. The BLASTPASS chain was used in a real spying operation against a named civil-society victim before discovery; Google TAG later assessed with high confidence the bug had been exploited as a zero-day beyond Apple’s ecosystem.

Was it NSO Group’s bug?

The exploit chain delivered Pegasus, which is NSO Group’s spyware; the exact procurement path between the exploit and the vendor follows the mercenary market’s usual opacity. The bug belonged to libwebp; the weaponization belonged to the spyware economy.

Why did patching take so long across vendors?

Because the fix had to be re-shipped by every downstream consumer of the library, and many vendors didn’t know they embedded libwebp until researchers asked. The patch itself was small; the dependency discovery was the long pole.

Should we drop WebP?

No. The format isn’t the problem — the monoculture of unaudited parser implementations was. Post-incident, libwebp received fuzzing coverage and funding attention; the durable fix is engineering process, not format migration.

Part of the hmmnm.com security-timeline series — one event per month, 2021–2024, indexed here.

Detection and response playbook

The WebP vulnerability (CVE-2023-4863) behind BLASTPASS — a heap buffer overflow in libwebp that produced zero-click iPhone exploitation via malicious images in PassKit attachments — was a single C library under essentially every browser, messaging app, and image pipeline on earth. The playbook is about ubiquitous-parser risk and zero-click response.

  1. Map your image-codec exposure across the estate. libwebp shipped in browsers, Electron apps, mobile runtimes, server-side image processors, and native apps — with different patch paths for each. The inventory question this CVE forced: for every tier (endpoint, mobile, server), which component parses hostile images and how does it get patched? Most organizations found at least one tier nobody owned.
  2. Respond to zero-clicks by assumption, not evidence. Zero-click exploitation leaves no user interaction to detect — no click, no download prompt. Post-advisory response for silent-exploit CVEs means assuming compromise for high-value targets during the exposure window and hunting for the post-exploitation framework (here, NSO-group-style implant chains), not waiting for exploitation alerts that cannot exist by design.
  3. Segment high-value mobile and endpoint populations. BLASTPASS targeted specific individuals. The compensating controls for targeted zero-clicks are identity-tier (hardware keys that implants cannot relay), network-tier (egress restrictions that break implant check-ins), and operational: reduced attack surface via minimal app inventories on sensitive devices.
  4. Track C-library remediation to the actual vendor integration. OS-level patches covered system components, but Electron apps, embedded browsers, and server-side pipelines updated on their own schedules — some for months. The lesson: CVE closure requires confirming each consuming application patched its bundled library, a checklist most vulnerability programs still do not model.
  5. Value the pre-patch mitigation layer. For image-parsing CVEs, gateway-level image sanitization (re-encoding, format enforcement) and attachment filtering narrow the delivery channel before patches land. Not complete — but the difference between everyone and only the targeted being exposed, which for most organizations is the relevant margin.

Where this sits in the broader pattern

BLASTPASS sits in the spyware-delivery lineage: the FORCEDENTRY exploit chain of 2021 (also image-format parsing) and the broader NSO-era zero-click catalog. The 2023 WebP bug generalized the threat — the same vulnerable library reached every platform, so a technique previously reserved for nation-state pricing became a library update away from commodity use, even if the observed exploitation remained targeted.

The structural lesson mirrors XZ and Polyfill from this series: ubiquity plus invisibility equals systemic risk. A compression library, a fill-script domain, a maintainer account — the components nobody thinks about are the ones whose compromise reaches everything. The defensive posture is identical in each case: inventory the boring layer, verify patch propagation per consumer, and monitor behavior where signatures cannot exist.

The consolidation for engineering leaders: single-C-library dependencies deserve supply-chain treatment — tracked versions, per-application patch verification, and gateway mitigation during exposure windows. The era of treating image codecs as plumbing ended the week this CVE dropped.

The bottom line. One C library, every platform, and a zero-click path that needed only an image to arrive. Inventory your parser tier, hunt by assumption when exploits are silent, verify every consuming application actually patched its bundled copy, and protect your targeted people with identity and egress controls signatures cannot provide. The next ubiquitous library is already in your stack — behave like it.

Frequently Asked Questions

A heap buffer overflow in libwebp, the image codec embedded in virtually all browsers and many apps, exploitable by a malicious WebP image — used in the BLASTPASS zero-click chain against iPhones via PassKit attachments.

The name for the 2023 zero-click iPhone exploitation chain that used the WebP vulnerability to deliver NSO Group Pegasus spyware through malicious images in Wallet attachment previews — no user interaction required.

Track image-parser library versions per application across the estate, verify each vendor integrates the patched library, apply gateway image sanitization during exposure windows, and protect high-value targets with hardware-key MFA and egress restrictions.

{“@context”:”https://schema.org”,”@type”:”FAQPage”,”mainEntity”:[{“@type”:”Question”,”name”:”What is CVE-2023-4863 in WebP?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”A heap buffer overflow in libwebp, the image codec embedded in virtually all browsers and many apps, exploitable by a malicious WebP image — used in the BLASTPASS zero-click chain against iPhones via PassKit attachments.”}},{“@type”:”Question”,”name”:”What was BLASTPASS?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”The name for the 2023 zero-click iPhone exploitation chain that used the WebP vulnerability to deliver NSO Group Pegasus spyware through malicious images in Wallet attachment previews — no user interaction required.”}},{“@type”:”Question”,”name”:”How do you protect against image-codec zero-click exploits?”,”acceptedAnswer”:{“@type”:”Answer”,”text”:”Track image-parser library versions per application across the estate, verify each vendor integrates the patched library, apply gateway image sanitization during exposure windows, and protect high-value targets with hardware-key MFA and egress restrictions.”}}]}

More on this topic

Hmmnm
Published by Hmmnm

Hands-on cybersecurity tutorials, CVE breakdowns, and guided learning paths — written and lab-tested by the Hmmnm team.

🛡️ Hmmnm also delivers this expertise as a service — security testing, assessment & training.
Keep going — the structured way
This post is one step. The learning paths chain the next ones for you, with progress tracking and no account needed.
Follow a learning path →

Prabhu Kalyan Samal

Application Security Consultant at TCS. Certifications: CompTIA SecurityX, Burp Suite Certified Practitioner, Azure Security Engineer, Azure AI Engineer, Certified Red Team Operator, eWPTX v3, LPT, CompTIA PenTest+, Professional Cloud Security Engineer, SC-900, SC-200, PSPO I, CEH, Oracle Java SE 8, ISP, Six Sigma Green Belt, DELF, AutoCAD. Writing about ethical hacking, security tutorials, and tech education at Hmmnm.