listmonk Vulnerable to Stored XSS Leading to Admin Account Takeover
Description
listmonk is a standalone, self-hosted, newsletter and mailing list manager. Prior to version 6.0.0, lower-privileged user with campaign management permissions can inject malicious JavaScript into campaigns or templates. When a higher-privileged user (Super Admin) views or previews this content, the XSS executes in their browser context, allowing the attacker to perform privileged actions such as creating backdoor admin accounts. The attack can be weaponized via the public archive feature, where victims simply need to visit a link - no preview click required. Version 6.0.0 fixes the issue.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
github.com/knadh/listmonkGo | >= 1.1.1, < 6.0.0 | 6.0.0 |
github.com/knadh/listmonkGo | < 1.1.1-0.20251231125615-74dc5a01cfbb | 1.1.1-0.20251231125615-74dc5a01cfbb |
Affected products
1Patches
174dc5a01cfbbAdd sandboxing to campaign preview iframe.
1 file changed · +14 −8
frontend/src/components/CampaignPreview.vue+14 −8 modified@@ -18,7 +18,7 @@ </form> <iframe id="iframe" name="iframe" ref="iframe" :title="title" :src="isPost ? 'about:blank' : previewURL" - @load="onLoaded" /> + @load="onLoaded" sandbox="allow-scripts" /> </section> <footer class="modal-card-foot has-text-right"> <b-button @click="close"> @@ -61,6 +61,7 @@ export default { return { isVisible: true, isLoading: true, + formSubmitted: false, }; }, @@ -71,11 +72,15 @@ export default { }, // On iframe load, kill the spinner. - onLoaded(l) { - if (l.srcElement.contentWindow.location.href === 'about:blank') { + onLoaded() { + if (!this.isPost) { + this.isLoading = false; return; } - this.isLoading = false; + + if (this.formSubmitted) { + this.isLoading = false; + } }, }, @@ -98,11 +103,12 @@ export default { }, mounted() { - setTimeout(() => { - if (this.isPost) { + if (this.isPost) { + setTimeout(() => { this.$refs.form.submit(); - } - }, 100); + this.formSubmitted = true; + }, 100); + } }, }; </script>
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-jmr4-p576-v565ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-21483ghsaADVISORY
- github.com/knadh/listmonk/commit/74dc5a01cfbb12cf218cb33ddad8410c53e2e915ghsaWEB
- github.com/knadh/listmonk/releases/tag/v6.0.0ghsaWEB
- github.com/knadh/listmonk/security/advisories/GHSA-jmr4-p576-v565ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.