CVE-2026-96454: Pake grants unrestricted IPC access to every HTTPS origin loaded in generated applications
Pake turns a website into a desktop application built on Tauri. Every application it generates inherits two settings from the upstream template, and together they hand native functionality to untrusted web content.
The first is in src-tauri/capabilities/default.json, which grants IPC access with "remote": { "urls": ["https://."] }. That wildcard tells Tauri to accept IPC from any HTTPS origin, not just the site the application was built to wrap. The second is "withGlobalTauri": true in src-tauri/tauri.conf.json, which puts window.TAURI.core.invoke() in reach of ordinary page JavaScript.
Tauri's access control list only checks plugin commands, the ones prefixed with plugin:. Commands the application registers itself through generatehandler!, known as app commands, are never checked against the ACL. So once an origin holds IPC access, it can call every app command with nothing else standing in the way. Pake registers downloadfile as an app command, and it does not appear in the permissions list because it does not need to.
The practical effect is that any script running on any HTTPS page inside a Pake application can invoke the application's native commands. That includes third-party script the wrapped site loads on its own, such as analytics, advertising, or a compromised CDN. Anyone distributing their own Pake application gets the same access without asking for it. Chained with the path traversal in downloadfile that is tracked separately as CVE-2026-82635, this reaches arbitrary file write and persistent code execution.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Restrict IPC access to the specific origin the Pake application was built to wrap instead of granting access to every HTTPS origin.
Pake/Tauri capabilities remote.urls = only the wrapped site's origin; remove "https://*.*" - Configuration
Disable withGlobalTauri in src-tauri/tauri.conf.json so ordinary page JavaScript cannot access window.__TAURI__.core.invoke().
Pake/Tauri configuration withGlobalTauri = false
Event History
Frequently Asked Questions
Which deployments are exposed?
Applications generated by Pake inherit the affected upstream template settings. The exposure applies to HTTPS content loaded inside those generated applications, rather than being limited to the website the application was intended to wrap.
What does an attacker need to exploit this?
An attacker needs JavaScript to run on any HTTPS page loaded within the application. No privileges are required, but user interaction is required according to the supplied vector.
Are default generated settings affected?
Yes. The generated template grants remote IPC access to https://*.* and enables withGlobalTauri, making window.__TAURI__.core.invoke() available to ordinary page JavaScript.
Does Tauri's ACL prevent this access?
Not for application commands registered through generate_handler!. The ACL checks plugin commands prefixed with plugin:, while app commands such as download_file are not checked against that ACL.
How can I identify an affected generated application?
Inspect src-tauri/capabilities/default.json for a remote URL rule of https://*.* and src-tauri/tauri.conf.json for withGlobalTauri set to true. Also review app commands registered through generate_handler!, because remote content with IPC access can invoke them.