Sparkle 2.7.3 - Important security fixes for local exploits #2764
Replies: 2 comments 2 replies
-
A potential crash was reported/fixed in #2765 for apps that have a Team ID starting with a number. 2.7.3 and 2.8.0-beta.3 have been released with this fix. Please don't use 2.7.2 or 2.8.0-beta.2 |
Beta Was this translation helpful? Give feedback.
-
Hi, just some questions on some finer details about this.
Is there another way to disable PKG support without requiring a manual re-compilation? I prefer using the officially distributed Sparkle binaries since that seems to be what everyone uses and I like using the standardized way to set up Sparkle, but it does appear to be bundling a potential attack vector for a functionality that my app does not need. I do agree that even with the original unfixed vulnerability it required root permission for Autoupdate or user/password for the Installer XPC which does seem like a fairly unlikely exploit (if they get the user to run programs in root they can do a lot of other damage already).
Is there a reason why the Downloader XPC service should have the ability to download arbitrary URLs to such arbitrary folders? Is it just because that's how the contract between the Installer and Downloader works and the Installer prefers to set which folder it wants the files to be downloaded to and just tell the Downloader where to download to? It does seem like a powerful ability for a service to have if it's exposed for anyone to invoke (albeit now blocked by code signature requirement). Generally I'm also wondering what happens if we have an app that is not code signed. This is not an unlikely situation. A developer just doing local development is likely to build ad-hoc signed apps for local testing. Homebrew also distributes ad-hoc signed applications (that said, most Sparkle-enabled apps should usually be distributed via Homebrew casks instead of Homebrew but there are exceptions). Were the other protections enough without the code signature checks? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
2.7.3 includes important security fixes that addresses local privilege exploits (#2763). These issues and fixes have been identified/reported and reviewed by @Karmaz95 .
The nature of them can be exploited by installed malware running on the system and the in-depth details are as follows:
TCC bypass using the Downloader XPC Service:
XPC_SERVICE_BUNDLE_ID_PREFIX
and uncommentingDOWNLOADER_SANDBOXED_ENTITLEMENTS
)Root privilege escalation by letting Sparkle update an arbitrary bundle with an arbitrary package installer (pkg), which comes in two flavors:
SPARKLE_BUILD_PACKAGE_SUPPORT
(this is rarely done).One important consequence is that apps that install package updates may not be able to test Sparkle in a development environment easily where Sparkle's tools are often not specially signed. Please try testing Sparkle either from a notarized version of your app, or from a version of your app that was installed by your package installer.
This fix is also included in 2.8, which is also revamped for Tahoe compatibility.
I also updated the Security & Reliability page.
Beta Was this translation helpful? Give feedback.
All reactions