Vulnerability advisory

GHSA-5vrp-638w-p8m2

Magento LTS vulnerable to stored Cross-site Scripting (XSS) in admin system configs

Published Updated OSV record ↗

Also known as CVE-2024-41676

Severity
  • CVSS 3.xCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:L/A:N
  • CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N

Affected versions

Description

Impact

This XSS vulnerability is about the system configs

  • design/header/welcome
  • design/header/logo_src
  • design/header/logo_src_small
  • design/header/logo_alt

They are intended to enable admins to set a text in the two cases, and to define an image url for the other two cases. But because of previously missing escaping allowed to input arbitrary html and as a consequence also arbitrary JavaScript.

While this is in most usage scenarios not a relevant issue, some people work with more restrictive roles in the backend. Here the ability to inject JavaScript with these settings would be an unintended and unwanted privilege.

Patches

Has the problem been patched? What versions should users upgrade to?

The problem is patched with Version 20.10.1 or higher.

Workarounds

Is there a way for users to fix or remediate the vulnerability without upgrading?

Possible mitigations are

  • Restricting access to the System Configs
  • checking templates where these settings are used to apply proper html filtering
For Users relying on this possibility

Some Users might actually rely on the ability to use html there. You can restore the previous behavior by making use of the new introduced ->getUnescapedValue() method on this escaped elements. Developers should have a look at the newly introduced Mage_Core_Model_Security_HtmlEscapedString

Credit

Credit goes to Aakash Adhikari @justlife4x4 for finding this issue

References

  • Codex
  • Claude Code
  • VS Code
  • GitHub Copilot
  • Cursor
  • Cline
  • Windsurf
  • Google Anti-gravity
  • OpenCode
  • Pi
  • Gemini CLI
  • Hermes Agent
  • Zed
  • Junie
  • Qwen Code
  • Kiro
  • Kilo Code
  • Factory Droid

Set up GitHits for your agents

Run this command:

<> bash
npx githits@latest init

What happens next:

  1. Opens your browser to authorize GitHits
  2. Asks whether to set up GitHits at the user or project level
  3. Detects your supported AI coding tools
  4. Lets you choose which tools to configure
  5. Configures the selected tools