Medium, CVSS 6.9PyPIAmendedPublished
Shiny for Python has path traversal in bookmark restore
CVE-2026-108258 · GHSA-47c3-hpmg-7j6p
- Affected
- PyPI shiny >= 1.4.0, <= 1.6.3
- Fixed in
- 1.6.4· Vendor fix available
- Issue
- Impact Shiny for Python's bookmark-restore path accepted a client-supplied stateid query-string value and joined it into the server-side bookmark directory (<cwd/shinybookmarks/<id) without validating it. A value containing .. path segments, or an absolute path, could therefore cause the server to open and parse input.json and values.json from a directory outside the bookmark store. On a default application the restore was attempted whenever the client supplied a URL query string — including when bookmarking was disabled (bookmarkstore="disable") — so no opt-in configuration was required. For such applications the impact is an unauthenticated, server-side probe for the existence and JSON-validity of attacker-chosen paths, constrained to those two file names. Applications configured with bookmarkstore="server" and using ui.inputfile() are affected more seriously. The file-input restore handler copies files out of the restore directory, so the contents of an attacker-selected file name…
Recommended action: Upgrade to 1.6.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.