Query and data-pipeline SQL-boundary batch¶
Signal: The 2026-05-08 22:15 UTC advisory scan added SQL construction failures in application search/aggregate APIs and data-pipeline I/O managers.
Advisory cluster¶
- Daptin aggregate raw SQL injection — GHSA-rw2c-8rfq-gwfv:
github.com/daptin/daptin <0.11.4acceptedcolumnandgroupquery parameters on/aggregate/:typenameand passed them intogoqu.L()raw SQL expressions. Any authenticated session could inject arbitrary expressions under the application's database privileges. - Dagster dynamic partition SQL injection — GHSA-mjw2-v2hm-wj34:
dagster <=1.13.0and related DuckDB, Snowflake, BigQuery, and DeltaLake I/O manager packages<=0.29.0interpolated dynamic partition key values into SQLWHEREclauses without escaping.
Why this matters¶
Column names, group keys, and partition labels are not data once they are spliced into SQL grammar. They become query structure. Parameter binding does not save code paths that intentionally drop user strings into raw identifier/expression positions.
Triage¶
- Patch Daptin to a fixed release beyond the affected
0.11.xrange and patch Dagster / I/O manager packages once upstream fixed versions are available. - Search for Daptin aggregate and fuzzy-search exposure to low-privilege or self-registered users.
- In Dagster, inventory jobs using dynamic partitions with DuckDB, Snowflake, BigQuery, or DeltaLake I/O managers; restrict
Add Dynamic Partitionsto trusted operators. - Hunt database logs for injected expressions in Daptin
column/groupparameters and suspicious partition keys containing quotes, comments, parentheses, semicolons, or SQL keywords. - Rotate database credentials if low-privilege app users could reach query APIs backed by broad database roles.
Durable controls¶
- Use allowlisted identifier maps for columns, grouping fields, table names, and partition-derived query fragments.
- Keep raw-SQL literal helpers (
goqu.L, string-formattedWHERE, manual SQL fragments) behind security review gates. - Give app and pipeline database credentials least-privilege views, not whole-database read/write authority.
- Treat metadata written by users or operators as untrusted until it has passed grammar-specific validation.