All research

Parsl: SQL injection in the monitoring dashboard

Parsl's monitoring visualization built SQL queries by pasting the workflow ID from the URL straight into the query string, with no parameterization.

Package
parsl (PyPI)
Affected
< 2026.01.05
Fixed in
2026.01.05
Weakness
CWE-89 SQL injection
Severity
Moderate, CVSS 3.1 score 5.3
Advisory
GHSA-f2mf-q878-gh58

Severity

5.3CVSS 3.1

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

What was the issue

Parsl is a Python library for parallel scientific workflows, with an optional web dashboard for monitoring runs. In parsl/monitoring/visualization/views.py, route handlers took workflow_id from the URL and inserted it into raw SQL strings with Python's % formatting, including a query passed to pd.read_sql_query.

Impact

Anyone who could reach a running monitoring dashboard could change the query. The advisory describes extracting data from the monitoring database with UNION-based injection, bypassing filters with boolean conditions, and slowing the service with expensive queries.

GitHub scored it 5.3 (Moderate), counting availability impact only, even though the advisory text describes data extraction as well.

What to do

Upgrade Parsl to 2026.01.05 or later, and keep the monitoring dashboard off untrusted networks.

Disclosure timeline

  1. Reported privately to the Parsl maintainers.

  2. Advisory and fixed release 2026.01.05 published.

  3. Published in NVD.

The takeaway. Internal dashboards get exposed eventually. Parameterized queries cost nothing and remove the whole bug class.

Coverage and references

More research.

All findings

Critical · 9.8Open sourceDec 2025

MCP Watch

A scanner for MCP servers passed the GitHub URL straight to a shell, so a crafted URL ran commands.

Read the finding

CriticalGovernmentOct 2025

Income Tax e-Filing Portal

Changing one PAN value returned another taxpayer's Aadhaar, bank accounts, and income. 135M+ accounts in scope.

Read the finding