> CVE-2026-47121 [MEDIUM]

« BACK_TO_HOME
PUBLISHED
2026-07-21 14:16
MODIFIED
2026-07-21 14:16
CVSS_SCORE V3
6.1
EPSS (Prob. Exploit)
0.34%
Top 73.8%
DATA SOURCES:
NVD 🔗 2026-07-21 CWE MITRE 🔗 2026-11-01 FIRST EPSS 🔗 2026-10-25 GITHUB 🔗 2026-10-29 OSV 🔗 2026-07-26

> DESCRIPTION

Sparkle is a software update framework for macOS. Prior to version 2.9.2, `Autoupdate/SUBinaryDeltaApply.m` enforces `relativePath.pathComponents containsObject:@".."` and rejects writes whose immediate parent directory IS itself a symbolic link, but does not detect symlinks deeper in the relative path. `Autoupdate/SPUSparkleDeltaArchive.m`'s `extractItem:` will create symlinks in the destination tree from archive content (no `..` check on the symlink target), and a subsequent `Extract` item targeting `<symlink>/foo/bar` then escapes the destination tree via `fopen(path, "wb")` because the kernel resolves the intermediate symlink during the open call. This is a defense-in-depth issue: exploitation requires a maliciously-crafted `.delta` that passes EdDSA signature verification, i.e. EdDSA private-key compromise. With the AppInstaller running as root for system-domain installs, it gives the holder of a stolen signing key arbitrary file write at root level via the delta-apply path, which is a strictly broader primitive than the "drop-in replacement bundle" install they would otherwise have. Version 2.9.2 contains a patch for the issue.

> AFFECTED_PRODUCTS

ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.

> CVSS V3 METRICS

CVSS_VECTOR
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:N
EXPLOITABILITY
1.6
IMPACT
4.0

> MÉTRIQUES CVSS DÉTAILLÉES

CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:H/A:N
Métrique Valeur Interprétation
AV (Vecteur d'Attaque)
Attack Vector
Network (N)
Exploit possible à distance via réseau (HTTP, API, etc.)
AC (Complexité d'Attaque)
Attack Complexity
High (H)
Conditions spécifiques doivent être réunies pour exploiter
PR (Privilèges Requis)
Privileges Required
None (N)
Aucune authentification requise
UI (Interaction Utilisateur)
User Interaction
Required (R)
Nécessite une action utilisateur (clic lien, ouverture fichier, etc.)
S (Périmètre)
Scope
Changed (C)
Impact s'étend au-delà du composant compromis
C (Impact Confidentialité)
Confidentiality Impact
None (N)
Aucune divulgation d'informations
I (Impact Intégrité)
Integrity Impact
High (H)
Modification totale des données possible
A (Impact Disponibilité)
Availability Impact
None (N)
Aucune interruption de service

> RÉSUMÉ DES IMPACTS

Confidentialité
None
Aucune divulgation d'informations
Intégrité
High
Modification totale des données possible
Disponibilité
None
Aucune interruption de service

> WEAKNESSES

CWE-22 CWE-59

> CWE DETAILED DESCRIPTIONS

CWE-22: Improper Limitation of a Pathname to a Restricted Directory - The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory. | CWE-59: Improper Link Resolution Before File Access - The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

> GITHUB SECURITY ADVISORY

GHSA-hg88-v3cw-3qrh MODERATE

Sparkle: Binary delta apply intermediate-symlink traversal in malicious .delta

AFFECTED PACKAGES:
SWIFT / github.com/sparkle-project/Sparkle
<= 2.9.1
Fixed in: 2.9.2

> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)

Sparkle: Binary delta apply intermediate-symlink traversal in malicious .delta

AFFECTED PACKAGES:
Unknown / Unknown
66 versions affected
ALIASES:
GHSA-hg88-v3cw-3qrh

> HISTORIQUE DES MODIFICATIONS

Première apparition
21/07/2026 14:16
Source: NVD
📊 ENRICHISSEMENT 01/11/2026 06:59
CWE
Champ modifié: Description CWE
Ancienne valeur:
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') - The product uses external input to construct a pathname that is intended to identify a file or directory that i...
Nouvelle valeur:
CWE-22: Improper Limitation of a Pathname to a Restricted Directory - The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneat...
📊 ENRICHISSEMENT 01/08/2026 06:01
CWE
Champ modifié: Description CWE
Ancienne valeur:
N/A
Nouvelle valeur:
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') - The product uses external input to construct a pathname that is intended to identify a file or directory that i...
Total des modifications: 2 Dernière mise à jour: 5 days ago

> REFERENCES

https://github.com/sparkle-project/Sparkle/commit/fe7b718d0736f3e139e374e26fbca9...
https://github.com/sparkle-project/Sparkle/security/advisories/GHSA-hg88-v3cw-3q...
« BACK_TO_HOME