Signing Checks Bypass
Description
A security issue was found in Sparkle before version 2.6.4. An attacker can replace an existing signed update with another payload, bypassing Sparkle’s (Ed)DSA signing checks.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Sparkle before 2.6.4 lets an attacker replace a signed update with a different payload, bypassing EdDSA signature verification.
Vulnerability
CVE-2025-0509 is a security issue in Sparkle, a software update framework for macOS, affecting versions prior to 2.6.4. The root cause is that Sparkle's update verification process does not properly isolate extracted archive contents, allowing an attacker to substitute a legitimate signed update with an arbitrary payload while bypassing the (Ed)DSA signing checks [1][2].
Exploitation
The attack is possible because the extracted update archive is placed in the same directory as the input archive file. An attacker who can perform a man-in-the-middle attack or control the update feed can replace the downloaded archive with a malicious one. Since the verification occurs on the original signed archive but the extraction uses the attacker-controlled file, the signature check is effectively bypassed [1][4]. The vulnerability does not require authentication from the victim's side, as it can be triggered by serving a crafted update feed or by intercepting network traffic [2].
Impact
An attacker exploiting this vulnerability can deliver a payload that executes arbitrary code with the privileges of the updating application. This could lead to full compromise of the affected system, including installation of malware, data exfiltration, or persistent backdoor access [1][2].
Mitigation
The issue is fixed in Sparkle version 2.6.4, released on February 4, 2025, and also backported to version 1.27.3. Users and developers are strongly advised to update their Sparkle integration to the latest patched version to prevent exploitation [1].
AI Insight generated on May 20, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
github.com/sparkle-project/SparkleSwiftURL | < 2.6.4 | 2.6.4 |
Affected products
36- Range: <2.6.4
- osv-coords34 versionspkg:apk/chainguard/openjdk-11-openj9pkg:apk/chainguard/openjdk-11-openj9-dbgpkg:apk/chainguard/openjdk-11-openj9-default-jdkpkg:apk/chainguard/openjdk-11-openj9-default-jvmpkg:apk/chainguard/openjdk-11-openj9-default-policypkg:apk/chainguard/openjdk-11-openj9-docpkg:apk/chainguard/openjdk-11-openj9-jmodspkg:apk/chainguard/openjdk-11-openj9-jrepkg:apk/chainguard/openjdk-17-openj9pkg:apk/chainguard/openjdk-17-openj9-dbgpkg:apk/chainguard/openjdk-17-openj9-default-jdkpkg:apk/chainguard/openjdk-17-openj9-default-jvmpkg:apk/chainguard/openjdk-17-openj9-default-policypkg:apk/chainguard/openjdk-17-openj9-docpkg:apk/chainguard/openjdk-17-openj9-jmodspkg:apk/chainguard/openjdk-17-openj9-jrepkg:apk/chainguard/openjdk-21-openj9pkg:apk/chainguard/openjdk-21-openj9-dbgpkg:apk/chainguard/openjdk-21-openj9-default-jdkpkg:apk/chainguard/openjdk-21-openj9-default-jvmpkg:apk/chainguard/openjdk-21-openj9-default-policypkg:apk/chainguard/openjdk-21-openj9-docpkg:apk/chainguard/openjdk-21-openj9-jmodspkg:apk/chainguard/openjdk-21-openj9-jrepkg:apk/chainguard/openjdk-8-openj9pkg:apk/chainguard/openjdk-8-openj9-dbgpkg:apk/chainguard/openjdk-8-openj9-default-jdkpkg:apk/chainguard/openjdk-8-openj9-default-jvmpkg:apk/chainguard/openjdk-8-openj9-docpkg:apk/chainguard/openjdk-8-openj9-jrepkg:bitnami/javapkg:bitnami/java-minpkg:bitnami/jrepkg:swift/github.com/sparkle-project/sparkle
< 0.53.0-r0+ 33 more
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r0
- (no CPE)range: < 0.53.0-r1
- (no CPE)range: < 0.53.0-r1
- (no CPE)range: < 0.53.0-r1
- (no CPE)range: < 0.53.0-r1
- (no CPE)range: < 0.53.0-r1
- (no CPE)range: < 0.53.0-r1
- (no CPE)range: < 1.8.0
- (no CPE)range: < 1.8.0
- (no CPE)range: < 1.8.0
- (no CPE)range: < 2.6.4
- sparkle-project/Sparklev5Range: 0
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
6- github.com/advisories/GHSA-wc9m-r3v6-9p5hghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-0509ghsaADVISORY
- github.com/sparkle-project/Sparkle/pull/2550ghsaWEB
- security.netapp.com/advisory/ntap-20250124-0008ghsaWEB
- sparkle-project.org/documentation/security-and-reliabilityghsaWEB
- sparkle-project.org/documentation/security-and-reliability/mitre
News mentions
0No linked articles in our index yet.