Reflected cross-site scripting issue in Datasette
Impact
The ?_trace=1 debugging feature in Datasette does not correctly escape generated HTML, resulting in a reflected cross-site scripting vulnerability.
This vulnerability is particularly relevant if your Datasette installation includes authenticated features using plugins such as datasette-auth-passwords as an attacker could use the vulnerability to access protected data.
Patches
Datasette 0.57 and 0.56.1 both include patches for this issue.
Workarounds
If you run Datasette behind a proxy you can workaround this issue by rejecting any incoming requests with ?_trace= or &_trace= in their query string parameters.
References
For more information
If you have any questions or comments about this advisory:
- Open a discussion in simonw/datasette
- Email us at
swillison+datasette @ gmail.com
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | datasette | < 0.56.1 | 0.56.1 |
References
- https://owasp.org/www-community/attacks/xss/#reflected-xss-attacks
- https://pypi.org/project/datasette/
- https://datasette.io/plugins/datasette-auth-passwords
- https://github.com/simonw/datasette/security/advisories/GHSA-xw7c-jx9m-xh5g
- https://github.com/simonw/datasette/issues/1360
- https://github.com/advisories/GHSA-gff3-739c-gxfq
- https://nvd.nist.gov/vuln/detail/CVE-2021-32670
- https://pypi.org/project/datasette
- https://github.com/pypa/advisory-database/tree/main/vulns/datasette/PYSEC-2021-89.yaml
- https://github.com/simonw/datasette
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N- Weakness (CWE)
CWE-79- Platform
- Python (PyPI)
- Package
datasette- Disclosed
- 07.06.2021
- Updated
- 11.10.2026 13:19
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2021-89 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-gff3-739c-gxfq - CC BY 4.0
OSV / GitHub Advisory Database - GHSA-xw7c-jx9m-xh5g - CC BY 4.0
Vulnerability history: datasette
All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 4
- First → latest
- 08.2020 11.2025
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- Medium 3
- Low 1
Disclosures per year
- 2020: 1
- 2021: 1
- 2022: 0
- 2023: 1
- 2024: 0
- 2025: 1
- 2026: 0
-
Reflected cross-site scripting issue in Datasette this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.