HSEC-2023-0008

Stored XSS in hledger-web

An issue was discovered in hledger-web < 1.23. A Stored Cross-Site Scripting (XSS) vulnerability exists in toBloodhoundJson that allows an attacker to execute JavaScript by encoding user-controlled values in a payload with base64 and parsing them with the atob function.

hledger-web forms sanitise obvious JavaScript, but not obfuscated JavaScript (see OWASP Filter Evasion Cheat Sheet). This means hledger-web instances, especially anonymously-writable ones like demo.hledger.org, could be loaded with malicious JavaScript to be executed by subsequent visitors.

Reported by Gaspard Baye and Hamidullah Muslih. Fix by Arsen Arsenović.

Info

Published
July 22, 2023
Modified
July 22, 2023
CAPECs
< none >
CWEs
87
Keywords
web, xss, historical
Aliases
CVE-2021-46888
Related
< none >
References
[REPORT] https://github.com/simonmichael/hledger/issues/1525
[INTRODUCED] https://github.com/simonmichael/hledger/commit/ec51d28839b2910eea360b1b8c72904b51cf7821
[EVIDENCE] https://www.youtube.com/watch?v=QnRO-VkfIic
[FIX] https://github.com/simonmichael/hledger/pull/1663

Affected

hledger-web
CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Versions
>=0.24 && <1.23
Declarations
< none >