CVE-2026-47122
Received Received - Intake

Sparkle Framework Mach Service Code Signing Bypass

Vulnerability report for CVE-2026-47122, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-21

Last updated on: 2026-07-21

Assigner: GitHub, Inc.

Description

Sparkle is a software update framework for macOS. In versions up to and including 2.9.1, `Autoupdate/AppInstaller.m`'s `shouldAcceptNewConnection:` only enforces `SUCodeSigningVerifier validateConnection:` before stage 1 completes. After `_performedStage1Installation = YES`, new connections to the registered Mach service `<bundleId>-spki` are accepted from any local process without team-ID or code-signing checks. As of time of publication, no known patched versions are available.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-21
Last Modified
2026-07-21
Generated
2026-07-22
AI Q&A
2026-07-21
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
sparkle 2.9.1 to 2.9.1 (inc)
sparkle_project sparkle to 2.9.1 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-441 The product receives a request, message, or directive from an upstream component, but the product does not sufficiently preserve the original source of the request before forwarding the request to an external actor that is outside of the product's control sphere. This causes the product to appear to be the source of the request, leading it to act as a proxy or other intermediary between the upstream component and the external actor.
CWE-306 The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

Sparkle versions up to 2.9.1 have a flaw in the update framework where after stage 1 of installation completes, the Mach service accepts connections from any local process without verifying code-signing or team-ID. This allows attackers to inject spoofed update data, potentially misleading users with fake release notes or version details.

Detection Guidance

Detecting this vulnerability requires checking if Sparkle framework versions up to 2.9.1 are installed and monitoring for unvalidated XPC connections to the Mach service. Check Sparkle version in your application bundles using: find /Applications -name Sparkle.framework -exec defaults read {}/Info.plist CFBundleVersion \;. Monitor for suspicious XPC activity with: log stream --predicate 'eventMessage CONTAINS[c] "spki"' or use lsof to check open Mach services.

Impact Analysis

An attacker could exploit this to display fake update notifications in Sparkle-aware apps, tricking users into installing malicious software or believing incorrect update information. The attack requires a specific timing window but could affect users running Sparkle in system-domain installations.

Compliance Impact

This vulnerability could potentially impact compliance with GDPR and HIPAA by allowing spoofed update data to be displayed in Sparkle-aware apps. This may lead to misleading users about software updates, which could affect data integrity and user trust. However, the core issue is UI spoofing rather than direct data exposure or code execution.

Mitigation Strategies

Immediately update Sparkle to a patched version if available. If no patched version exists, disable Sparkle updates temporarily by removing the Sparkle framework from applications or blocking the Mach service. Restrict local process access to the XPC listener by implementing code-signing validation or disabling SPUSentUpdateAppcastItemData handling after stage 1.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-47122. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart