Skip to content

fix: add SQL length limit to prevent resource exhaustion - #13

Open
sha174n wants to merge 64 commits into
masterfrom
fix/sqllab-sql-limit
Open

sha174n wants to merge 64 commits into
masterfrom
fix/sqllab-sql-limit

Conversation

@sha174n

@sha174n sha174n commented Apr 1, 2026

Copy link
Copy Markdown
Owner

Summary

This PR addresses a SQL parser resource exhaustion vulnerability (CWE-400) in SQL Lab.

Previously, there was no limit on the length of the SQL query passed to the sqlglot parser in the execute, format, and cost estimation endpoints. A very large or specially crafted SQL query could cause the parser to consume excessive CPU or memory, leading to a Denial of Service (DoS).

Changes:

  • Added a new configuration SQLLAB_MAX_SQL_LENGTH (defaulting to 1MB).
  • Implemented a validator validate_sql_length in superset/sqllab/schemas.py.
  • Applied this validator to the sql field in ExecutePayloadSchema, FormatQueryPayloadSchema, and EstimateQueryCostSchema.
  • Added an integration test to verify the protection.

aminghadersohi and others added 30 commits March 30, 2026 11:26
…SL drops (apache#38934)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…pache#38955)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…mns (apache#38809)

Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
…matting (apache#38953)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ange record (apache#38883)

Signed-off-by: hainenber <dotronghai96@gmail.com>
apache#38968)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…socket/utils/client-ws-app (apache#38935)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…pache#38944)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…8403)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ocket (apache#38861)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…dded-sdk (apache#38864)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…end (apache#38875)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Rui Zhao <zhaorui@dropbox.com>
Co-authored-by: Joe Li <joe@preset.io>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
…frontend/cypress-base (apache#38919)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…superset-embedded-sdk (apache#38920)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…che#38981)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ines for `npm run check:custom-rules` (apache#38938)

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
dependabot Bot and others added 23 commits March 31, 2026 21:58
… 8.57.0 in /superset-websocket (apache#38540)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…-frontend (apache#38505)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Joe Li <joe@preset.io>
…nd (apache#38999)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…docs (apache#38998)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…websocket (apache#38995)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…are Jinja rendering (apache#38984)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
….5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (apache#38148)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
…pache#38438)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
…ontend (apache#38507)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
apache#38993)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…apache#39001)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ntal scroll (apache#39009)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
…in /superset-frontend/packages/generator-superset (apache#38383)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
….2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (apache#38149)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
…uperset-frontend (apache#38333)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
…frontend (apache#38510)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Joe Li <joe@preset.io>
…in /superset-frontend/plugins/legacy-preset-chart-deckgl (apache#38150)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.