CVE-2026-96454
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:.
Leer descripción completaMostrar menos
Commands the application registers itself through generate_handler!, 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 download_file 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 download_file that is tracked separately as CVE-2026-82635, this reaches arbitrary file write and persistent code execution.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:N
- Puntuación base: 8.2
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.34%
- Percentil entre todas las CVEs puntuadas: 25
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
🎯 Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1203Exploitation for Client Executionexecution85 % - Impacto principal
T1078.004Cloud Accountsstealth · persistence · privilege escalation · initial access80 % - Impacto secundario
T1059.007JavaScriptexecution75 % - Impacto secundario
T1565.001Stored Data Manipulationimpact70 %
Sitio web empaquetado como app Tauri con IPC abierto a cualquier origen HTTPS e interacción del usuario requerida (UI:R). Permite invocar comandos nativos desde JavaScript no confiable, escalando a ejecución de código persistente.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
🛡️ Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (2)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-862, CWE-923
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-96454",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-96454",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-09-23T14:01:27.089525Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "reefs@jfrog.com",
"cvssData": {
"scope": "CHANGED",
"version": "3.1",
"baseScore": 8.2,
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:N",
"integrityImpact": "HIGH",
"userInteraction": "REQUIRED",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "LOW"
},
"impactScore": 4.7,
"exploitabilityScore": 2.8
}
]
},
"affected": [
{
"source": "reefs@jfrog.com",
"affectedData": [
{
"repo": "https://github.com/tw93/Pake",
"vendor": "tw93",
"product": "Pake",
"versions": [
{
"status": "affected",
"version": "0",
"versionType": "semver",
"lessThanOrEqual": "3.17.0"
}
],
"platforms": [
"macOS",
"Windows",
"Linux"
],
"packageName": "pake-cli",
"programFiles": [
"src-tauri/capabilities/default.json",
"src-tauri/tauri.conf.json"
],
"collectionURL": "https://registry.npmjs.org",
"defaultStatus": "affected"
}
]
}
],
"published": "2026-09-23T10:17:09.070",
"references": [
{
"url": "https://github.com/tw93/Pake",
"source": "reefs@jfrog.com"
},
{
"url": "https://github.com/tw93/Pake/blob/main/src-tauri/capabilities/default.json",
"source": "reefs@jfrog.com"
},
{
"url": "https://github.com/tw93/Pake/blob/main/src-tauri/tauri.conf.json",
"source": "reefs@jfrog.com"
},
{
"url": "https://github.com/tw93/Pake/releases/tag/V3.17.0",
"source": "reefs@jfrog.com"
},
{
"url": "https://v2.tauri.app/security/capabilities/",
"source": "reefs@jfrog.com"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "reefs@jfrog.com",
"description": [
{
"lang": "en",
"value": "CWE-862"
},
{
"lang": "en",
"value": "CWE-923"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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.\n\n\n\nThe 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.\n\n\n\nTauri's access control list only checks plugin commands, the ones prefixed with plugin:. Commands the application registers itself through generate_handler!, 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 download_file as an app command, and it does not appear in the permissions list because it does not need to.\n\n\n\nThe 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 download_file that is tracked separately as CVE-2026-82635, this reaches arbitrary file write and persistent code execution."
}
],
"lastModified": "2026-09-23T19:42:02.350",
"sourceIdentifier": "reefs@jfrog.com"
}