CVE-2026-21451

8.4 HIGH

📋 TL;DR

A stored Cross-Site Scripting (XSS) vulnerability in Bagisto eCommerce platform allows attackers to inject malicious JavaScript into CMS pages by bypassing input sanitization via HTTP POST manipulation. This affects all Bagisto installations prior to version 2.3.10, exposing administrators to session hijacking and account takeover when viewing or editing compromised pages.

💻 Affected Systems

Products:
  • Bagisto
Versions: All versions prior to 2.3.10
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects installations with CMS page editing functionality enabled (default configuration).

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete administrative account takeover leading to backend hijacking, data theft, and deployment of additional malicious payloads throughout the eCommerce platform.

🟠

Likely Case

Session hijacking of administrative users, credential theft, and unauthorized access to sensitive eCommerce data and customer information.

🟢

If Mitigated

Limited impact if proper Content Security Policy (CSP) headers are implemented and administrative access is restricted to trusted networks.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires authenticated access to CMS page editor, but bypass technique is straightforward via HTTP request manipulation.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.3.10

Vendor Advisory: https://github.com/bagisto/bagisto/security/advisories/GHSA-2mwc-h2mg-v6p8

Restart Required: No

Instructions:

1. Backup your Bagisto installation and database. 2. Update Bagisto to version 2.3.10 via composer: 'composer require bagisto/bagisto:2.3.10'. 3. Run database migrations if required: 'php artisan migrate'. 4. Clear cache: 'php artisan optimize:clear'.

🔧 Temporary Workarounds

Temporary Input Sanitization

all

Implement additional server-side input validation for CMS page content to strip script tags and JavaScript event handlers.

Restrict CMS Editor Access

all

Temporarily disable or restrict access to CMS page editing functionality to trusted administrators only.

🧯 If You Can't Patch

  • Implement strict Content Security Policy (CSP) headers to prevent JavaScript execution from untrusted sources.
  • Enable web application firewall (WAF) rules to detect and block XSS payloads in HTTP requests.

🔍 How to Verify

Check if Vulnerable:

Check Bagisto version via admin panel or by examining composer.json file for version <2.3.10.

Check Version:

php artisan --version or check composer.json

Verify Fix Applied:

Confirm version is 2.3.10 or higher and test CMS page editor with XSS payloads to ensure sanitization works.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to CMS endpoints with script tags or JavaScript payloads
  • Multiple failed login attempts followed by CMS page edits

Network Indicators:

  • HTTP requests containing script tags or JavaScript in CMS-related endpoints
  • Unusual outbound connections from administrative interfaces

SIEM Query:

source="web_logs" AND (uri_path="/admin/cms/*" OR uri_path="/cms/*") AND (http_method="POST") AND (request_body CONTAINS "<script>" OR request_body CONTAINS "javascript:")

🔗 References

📤 Share & Export