# CVE-2026-51153: QD stored cross-site scripting in task handler

Source: https://junglewise.ai/threats/cve-2026-51153-qd-stored-cross-site-scripting-in-task-handler  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-31. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-51153 · Severity: medium · CVSS 5.4 · Published 2026-08-31

QD is an HTTP task automation framework used to schedule and execute HTTP requests based on HAR templates. A stored XSS vulnerability in the task execution handler allows a low-privileged attacker to inject malicious JavaScript that executes when another user runs a task, enabling cookie theft, session hijacking, or unauthorized actions within the application.

## Quick answers

**Is CVE-2026-51153 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-51153 being exploited in the wild.

**How severe is CVE-2026-51153?** Medium severity, with a CVSS score of 5.4, published 31 August 2026.

**Which products and versions are affected?** QD QD 20220208 through 20250803.

**Is there a fix for CVE-2026-51153?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**How is CVE-2026-51153 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-51153?** Check whether anything you run is named in the advisory. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

A stored XSS vulnerability exists in TaskRunHandler.post() (web/handlers/task.py) where task log content is rendered into HTML responses using Python % string formatting without HTML encoding. The vulnerability stems from rendering untrusted data from the logtmp variable, which is populated either from exception strings or from new_env["variables"]["__log__"] — a value controlled by attackers through the template extract_variables mechanism. An authenticated attacker can craft a malicious HAR template that extracts arbitrary HTML/JavaScript via the api://util/unicode endpoint and stores it in the __log__ variable; when a victim runs the task via /task/&lt;taskid&gt;/run, the embedded script executes in the victim's browser with full application context. The attack requires low-level authentication but not administrative privileges; a user interaction (task execution) is needed for the stored payload to execute.

## Affected products

- QD QD 20220208 through 20250803

## Timeline

- 2026-08-31: disclosed
- 2026-07-28: other: Public proof-of-concept published on GitHub

## References

- [https://gist.github.com/kurokoleung/9fc51b02c85c2f466bf4ea72c62ba343](https://gist.github.com/kurokoleung/9fc51b02c85c2f466bf4ea72c62ba343)
- [https://qd-today.github.io/qd/](https://qd-today.github.io/qd/)
