Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
The probability is the direct output of the EPSS model, and conveys an overall sense of the threat of exploitation in the wild. The percentile measures the EPSS probability relative to all known EPSS scores. Note: This data is updated daily, relying on the latest available EPSS model version. Check out the EPSS documentation for more details.
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applicationsLearn about Improper Input Validation vulnerabilities in an interactive lesson.
Start learningUpgrade tauri-plugin-shell
to version 2.2.1 or higher.
tauri-plugin-shell is a plugin that allows you to spawn child processes and manage files and URLs using their default application.
Affected versions of this package are vulnerable to Improper Input Validation of allowed protocols in the open
endpoint. An attacker can execute arbitrary code on the system by passing untrusted input that specifies dangerous protocols such as file://
, smb://
, or nfs://
.
Note:
This is only exploitable if the open
endpoint is directly exposed to application users or if code execution occurs in the frontend of a Tauri application.
This vulnerability can be mitigated by setting the shell plugin configuration value open
to true
, which restricts the allowed protocols to mailto
, http
and https
. Alternatively, defining a non-matching regex or removing shell:default
and all instances of shell:allow-open
from the capabilities can prevent the use of the open
endpoint.
This is a windows specific proof of concept.
Use create-tauri-app
to make a new Tauri app;
Run tauri add shell
to add the shell plugin;
Execute await window.__TAURI_INTERNALS__.invoke("plugin:shell|open", {path: "file:///c:/windows/system32/calc.exe"});
in the developer console;
Observe the calculator being executed.