Path Traversal bei der Lesezeichen-Wiederherstellung in Shiny for Python
Die Originalmeldung wurde seit der Erstellung dieser Erklärung geändert. Prüfen Sie die aktuellen technischen Daten und die Originalmeldung unten.
Auswirkung
Der Pfad zur Lesezeichen-Wiederherstellung in Shiny for Python übernahm den vom Client übergebenen Query-String-Wert _state_id_ und verband ihn ohne Validierung mit dem serverseitigen Lesezeichen-Verzeichnis (<cwd>/shiny_bookmarks/<id>). Ein Wert mit Pfadsegmenten wie .. oder ein absoluter Pfad konnte daher dazu führen, dass der Server input.json und values.json aus einem Verzeichnis außerhalb des Lesezeichen-Speichers öffnete und verarbeitete.
Bei einer Standardanwendung wurde der Wiederherstellungsversuch immer dann unternommen, wenn der Client einen URL-Query-String übermittelte – selbst wenn Lesezeichen deaktiviert waren (bookmark_store="disable") – weshalb keine Opt-in-Konfiguration erforderlich war. Für solche Anwendungen besteht die Auswirkung in einer nicht authentifizierten serverseitigen Abfrage auf Existenz und JSON-Gültigkeit von durch den Angreifer gewählten Pfaden, beschränkt auf diese beiden Dateinamen.
Anwendungen, die mit bookmark_store="server" konfiguriert sind und ui.input_file() verwenden, sind schwerwiegender betroffen. Der Restore-Handler für Dateieingaben kopiert Dateien aus dem Wiederherstellungsverzeichnis, wodurch der Inhalt einer vom Angreifer gewählten Datei innerhalb eines gewählten Verzeichnisses in die Anwendung eingelesen werden konnte.
Betroffene Versionen
1.4.0 bis 1.6.3. Die Lesezeichenfunktion wurde in 1.4.0 eingeführt; frühere Versionen enthalten den betroffenen Pfad nicht und sind nicht betroffen.
Danksagung
Gemeldet von @0xRenSec.).
Was zu tun ist
Patches
Behoben in 1.6.4. Upgrade mit:
pip install --upgrade shiny
Der Fix validiert Lesezeichen-IDs anhand einer Zulassungsliste – eines einzelnen Pfadsegments, das [A-Za-z0-9_-]+ entspricht und weder Pfadtrennzeichen, ..-Elternverweise noch absolute Pfade enthalten kann –, bevor die ID zum Erstellen eines Dateisystempfads verwendet wird. Von Shiny generierte Lesezeichen-IDs sind von dieser Einschränkung nicht betroffen. Die Wiederherstellung wird zudem an einer zentralen Stelle von der Anwendungs-Einstellung bookmark_store abhängig gemacht, sodass sie bei deaktivierten Lesezeichen nicht mehr ausgeführt wird und der Festplatten-Wiederherstellungspfad nur unter bookmark_store="server" berücksichtigt wird.
Problemumgehungen
Es gibt keine Konfigurationsänderung, die dies in einer betroffenen Version behebt: Der Wiederherstellungspfad wurde selbst mit bookmark_store="disable" ausgeführt. Bereitstellungen, die nicht sofort aktualisiert werden können, können den Parameter _state_id_ an einem Reverse-Proxy oder Load-Balancer aus eingehenden Query-Strings entfernen, wodurch der betroffene Codepfad nicht mehr erreicht werden kann.
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| Python (PyPI) | shiny | >= 1.4.0, < 1.6.4 | 1.6.4 |
Verweise
- https://github.com/posit-dev/py-shiny/security/advisories/GHSA-47c3-hpmg-7j6p
- https://github.com/posit-dev/py-shiny/commit/1d8ecb46cbc9621b7dc8812111d26692e086b376
- https://github.com/posit-dev/py-shiny
- https://github.com/posit-dev/py-shiny/releases/tag/v1.6.4
- https://pypi.org/project/shiny
- https://github.com/advisories/GHSA-47c3-hpmg-7j6p
- https://nvd.nist.gov/vuln/detail/CVE-2026-108258
- CVSS-Vektor
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N- Schwäche (CWE)
CWE-22- Plattform
- Python (PyPI)
- Paket
shiny- Veröffentlicht
- 09.10.2026
- Aktualisiert
- 15.10.2026 18:17
Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.
OSV / GitHub Advisory Database - PYSEC-2026-4300 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-47c3-hpmg-7j6p - CC BY 4.0
Schwachstellenhistorie: shiny
Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
Dies ist die einzige bekannte Schwachstelle dieses Pakets.
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.