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](https://owasp.org/www-community/attacks/xss/#reflected-xss-attacks) vulnerability.
This vulnerability is particularly relevant if your Datasette installation includes authenticated features using plugins such as [datasette-auth-passwords](https://datasette.io/plugins/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
- [OWASP guide to reflected cross-site scripting](https://owasp.org/www-community/attacks/xss/#reflected-xss-attacks)
- [Datasette issue #1360](https://github.com/simonw/datasette/issues/1360)
For more information
If you have any questions or comments about this advisory:
- Open a discussion in [simonw/datasette](https://github.com/simonw/datasette/discussions)
- Email us at
swillison+datasette @ gmail.com
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| datasette PyPI | < 0.56.1 | 0.56.1 |
Details and references
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-79
- Also known as
- CVE-2021-32670, GHSA-gff3-739c-gxfq, PYSEC-2021-89
- github.com/simonw/datasette/security/advisories/GHSA-xw7c-jx9m-xh5g
- github.com/simonw/datasette/issues/1360
- datasette.io/plugins/datasette-auth-passwords
- github.com/advisories/GHSA-gff3-739c-gxfq
- github.com/pypa/advisory-database/tree/main/vulns/datasette/PYSEC-2021-89.yaml
- github.com/simonw/datasette
- owasp.org/www-community/attacks/xss/#reflected-xss-attacks
- pypi.org/project/datasette