CVE-2025-46955

5.4 MEDIUM

📋 TL;DR

A stored Cross-Site Scripting (XSS) vulnerability in Adobe Experience Manager allows low-privileged attackers to inject malicious JavaScript into vulnerable form fields. When victims browse pages containing the compromised fields, their browsers execute the attacker's scripts. This affects AEM versions 6.5.22 and earlier.

💻 Affected Systems

Products:
  • Adobe Experience Manager
Versions: 6.5.22 and earlier
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Requires low-privileged attacker access to vulnerable form fields; affects both author and publish instances.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal session cookies, perform actions as authenticated users, redirect to malicious sites, or install malware via drive-by downloads.

🟠

Likely Case

Session hijacking, credential theft, defacement of web pages, or data exfiltration from user browsers.

🟢

If Mitigated

Limited impact with proper input validation, output encoding, and Content Security Policy (CSP) headers in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated low-privileged access; stored XSS typically has straightforward exploitation vectors.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 6.5.23 or later

Vendor Advisory: https://helpx.adobe.com/security/products/experience-manager/apsb25-48.html

Restart Required: Yes

Instructions:

1. Backup your AEM instance. 2. Apply the latest AEM Service Pack (6.5.23+). 3. Restart the AEM service. 4. Verify the update via the AEM welcome screen or OSGi console.

🔧 Temporary Workarounds

Implement Content Security Policy

all

Add CSP headers to restrict script execution from untrusted sources.

Add 'Content-Security-Policy' header in web server configuration or AEM dispatcher.

Input Validation Filter

all

Deploy custom servlet filters to sanitize user input in form fields.

Implement and deploy a custom XSS filter in AEM's OSGi configuration.

🧯 If You Can't Patch

  • Restrict low-privileged user access to vulnerable form fields via AEM permissions.
  • Monitor and audit user submissions in form fields for suspicious script patterns.

🔍 How to Verify

Check if Vulnerable:

Check AEM version via the welcome screen (http://<host>:<port>/welcome.html) or OSGi console; versions 6.5.22 or earlier are vulnerable.

Check Version:

curl -s http://<host>:<port>/system/console/status-productinfo | grep 'Adobe Experience Manager'

Verify Fix Applied:

Confirm version is 6.5.23 or later and test form fields with safe XSS payloads to ensure sanitization.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to form endpoints with script tags or JavaScript payloads in parameters.
  • Error logs showing blocked script execution if CSP is enabled.

Network Indicators:

  • HTTP requests containing script injection patterns in form data.
  • Outbound connections to suspicious domains from user browsers after visiting AEM pages.

SIEM Query:

source="aem_access.log" AND (method="POST" AND uri="/content/forms/af/*" AND (body="<script>" OR body="javascript:"))

🔗 References

📤 Share & Export