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ć.