Py Shiny
Monthly
Unauthenticated path traversal in the bookmark-restore handler of Shiny for Python 1.4.0 through 1.6.3 lets a remote attacker supply a crafted _state_id_ query-string value containing parent-directory ('..') segments or an absolute path, causing the server to join it into the server-side shiny_bookmarks directory and open input.json and values.json from outside the bookmark store. On default applications - including those configured with bookmark_store='disable' - this requires no authentication and no opt-in configuration and yields a limited-confidentiality probe of file existence and JSON validity, but when an application is configured with bookmark_store='server' and uses ui.input_file(), the file-input restore handler can copy and expose an attacker-selected file from an attacker-selected directory. The issue is fixed in 1.6.4, and no public exploit code or active exploitation has been identified at time of analysis.
Unauthenticated path traversal in the bookmark-restore handler of Shiny for Python 1.4.0 through 1.6.3 lets a remote attacker supply a crafted _state_id_ query-string value containing parent-directory ('..') segments or an absolute path, causing the server to join it into the server-side shiny_bookmarks directory and open input.json and values.json from outside the bookmark store. On default applications - including those configured with bookmark_store='disable' - this requires no authentication and no opt-in configuration and yields a limited-confidentiality probe of file existence and JSON validity, but when an application is configured with bookmark_store='server' and uses ui.input_file(), the file-input restore handler can copy and expose an attacker-selected file from an attacker-selected directory. The issue is fixed in 1.6.4, and no public exploit code or active exploitation has been identified at time of analysis.