CVE-2026-22849

4.8 MEDIUM

📋 TL;DR

This stored cross-site scripting (XSS) vulnerability in Saleor e-commerce platform allows malicious staff members to inject HTML/JavaScript into rich text fields. The injected scripts execute when other staff members view the content, potentially stealing authentication tokens. All Saleor deployments with version 3.0.0 through 3.22.26 (excluding patched versions) are affected.

💻 Affected Systems

Products:
  • Saleor e-commerce platform
Versions: 3.0.0 through 3.22.26 (excluding 3.20.108, 3.21.43, 3.22.27)
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All deployments with rich text editing enabled are vulnerable. The vulnerability exists in the backend HTML sanitization logic.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Malicious staff member steals admin tokens, gains full system access, compromises customer data, and takes over the entire e-commerce platform.

🟠

Likely Case

Privilege escalation where lower-privileged staff members steal higher-privileged tokens, leading to unauthorized administrative access.

🟢

If Mitigated

Limited to staff member account compromise if proper segmentation exists, but could still lead to data exposure.

🌐 Internet-Facing: MEDIUM - Storefronts are internet-facing but exploitation requires staff access; customer impact depends on where rich text fields are displayed.
🏢 Internal Only: HIGH - Primary attack vector is through staff dashboards where malicious staff can target other staff members.

🎯 Exploit Status

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

Exploitation requires staff-level access. Attack involves simple HTML/JavaScript injection into rich text fields that lack backend sanitization.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.20.108, 3.21.43, or 3.22.27

Vendor Advisory: https://docs.saleor.io/security/#editorjs--html-cleaning

Restart Required: Yes

Instructions:

1. Backup your Saleor instance. 2. Update to version 3.20.108, 3.21.43, or 3.22.27 using your package manager. 3. Restart all Saleor services. 4. Verify the update completed successfully.

🔧 Temporary Workarounds

Client-side HTML cleaner

all

Implement client-side HTML sanitization for all rich text inputs before submission

🧯 If You Can't Patch

  • Implement strict input validation and HTML sanitization at the application layer
  • Restrict staff permissions and implement principle of least privilege for rich text editing

🔍 How to Verify

Check if Vulnerable:

Check if Saleor version is between 3.0.0 and 3.22.26 (excluding patched versions) and rich text editing is enabled

Check Version:

python -c "import saleor; print(saleor.__version__)" or check package.json

Verify Fix Applied:

Verify version is 3.20.108, 3.21.43, or 3.22.27 and test rich text fields for HTML injection

📡 Detection & Monitoring

Log Indicators:

  • Unusual HTML/JavaScript patterns in rich text field submissions
  • Multiple failed authentication attempts from new locations

Network Indicators:

  • Unexpected outbound connections after staff members view rich text content

SIEM Query:

source="saleor" AND (message="*<script>*" OR message="*javascript:*") AND field="rich_text"

🔗 References

📤 Share & Export