CVE-2026-95627 PUBLISHED

Tauri framework v2 Dialog plugin auto-expands the filesystem scope with attacker-controlled recursion

Assigner: JFROG
Reserved: 22.09.2026 Published: 23.09.2026 Updated: 23.09.2026

When a Tauri application uses the dialog plugin's file or folder picker, an attacker with JavaScript execution (XSS) can force the scope expansion to be recursive, granting read/write access to an entire directory tree after a single user click on a normal-looking OS file dialog. The user has no indication that recursive access was granted, and the expanded scope cannot be revoked for the lifetime of the application.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N
CVSS Score: 7.7

Product Status

Vendor Tauri
Product tauri-plugin-dialog
Versions Default: unaffected
  • affected from 2.0.0 to * (incl.)

Solutions

The fix is to stop taking the recursion flag from the caller. Grant what was actually chosen: the one file, or the one folder and nothing below it. An app that genuinely needs a recursive grant can ask for one in its own Rust code, where the frontend cannot reach it.

Credits

  • Yuval Moravchick finder
  • JFrog Security Research coordinator

References

Problem Types

  • CWE-732: Incorrect Permission Assignment for Critical Resource CWE

Impacts

  • Script in the webview gets read and write access to a whole directory tree, after one click on a dialog that looked completely normal. Aim it at the home folder and that is everything the user owns. The script does not need any privileges of its own to ask; an XSS in content the app renders is enough.