Disclosed vulnerabilities
Fixed: Jun 4, 2025
CVE-2025-6050 Published: Jun 17, 2025

Stored Cross-Site Scripting (XSS) in Mezzanine CMS Admin Interface

4.8 Medium Severity CMS Mezzanine XSS
Alex Shleymovich Reported by Checkmarx Zero

Summary

Mezzanine CMS, in versions prior to 6.1.1, contains a Stored Cross-Site Scripting (XSS) vulnerability in the admin interface. The vulnerability exists in the displayable_links_js function, which fails to properly sanitize blog post titles before including them in JSON responses served via /admin/displayable_links.js. An authenticated admin user can create a blog post with a malicious JavaScript payload in the title field, then trick another admin user into clicking a direct link to the /admin/displayable_links.js endpoint, causing the malicious script to execute in their browser.

Product

This vulnerability affects Mezzanine CMS in versions prior to 6.1.1

Impact

This stored XSS vulnerability allows one authenticated admin user to execute malicious JavaScript code in another admin user’s browser session. The impact includes session hijacking, unauthorized actions, and data exfiltration within the admin interface. While the vulnerability is limited to admin-to-admin attacks, it poses significant risks in environments with multiple administrative privilege levels.

Steps to reproduce

  1. Log in to the Mezzanine admin interface with administrative privileges
  2. Navigate to Content → Blog posts
  3. Create a new blog post with a malicious JavaScript payload in the title field:
    <script>alert(document.cookie)</script>
  4. Save the blog post
  5. Create another blog post and edit its content
  6. While editing, use the Insert/edit link functionality in the content editor. This action automatically triggers a GET request to /admin/displayable_links.js
  7. Observe that the malicious script executes immediately due to the unsanitized content in the JSON response
  8. Direct another admin user to click on the link: http://[your-domain]/admin/displayable_links.js. This can be achieved by creating another blog post and inserting a direct link to the vulnerable endpoint in the content editor.

Remediation

A fix was released in commit 898630d, which includes proper HTML sanitization. Users are recommended to upgrade to version 6.1.1, which includes this fix.

Credit

This issue was discovered and reported by Checkmarx AppSec Analyst Alex Shleymovich.

Resources

  1. NVD
  2. Release Note
  3. Fix commit
  4. Disclosure

Stay connected and never miss a research update!