Executive brief
Dagster is an orchestration platform used to manage data workflows and pipelines. A security vulnerability in its internal communication server allows an attacker with access to that server to read sensitive files from the underlying system. This could lead to the exposure of credentials, API keys, or proprietary data, though the risk is primarily limited to environments where the server is exposed beyond its default local settings.
Technical details
A Local File Inclusion (LFI) vulnerability exists in the `dagster._grpc.impl.get_notebook_data` function within Dagster. The root cause is insufficient validation of the `notebook_path` field in `ExternalNotebookData` gRPC requests; the application only checks if the path ends with a `.ipynb` extension and fails to neutralize directory traversal sequences (e.g., `../`). An attacker with network access to the gRPC server can exploit this by appending `.ipynb` to a traversal string to bypass the extension check and read any file the Dagster process has permissions to access. While the gRPC server binds to localhost by default, the vulnerability is exploitable in custom or cloud deployments where the interface is exposed. The issue is fixed in version 1.10.16.
Affected products
- Dagster Labs Dagster < 1.10.16
Timeline
- 2025-05-14: disclosed: Vulnerability details shared by Gecko Security
- 2025-05-19: patched: Fix merged into master branch via PR 30002
- 2025-07-22: advisory: GitHub Advisory and CVE published
References
- https://github.com/dagster-io/dagster/pull/30002
- https://github.com/dagster-io/dagster
- https://www.gecko.security/blog/cve-2025-51481
- https://github.com/dagster-io/dagster/commit/3a3cec2b51577c4970e6fc4c199cda6418c09a9d
- https://github.com/pypa/advisory-database/tree/main/vulns/dagster-ge/PYSEC-2025-102.yaml