CVE-2026-21448

9.8 CRITICAL

📋 TL;DR

Bagisto eCommerce platform versions before 2.3.10 are vulnerable to server-side template injection that can lead to remote code execution. When customers add addresses during checkout, they can inject malicious template code that executes in the admin view. This affects all Bagisto installations using vulnerable versions.

💻 Affected Systems

Products:
  • Bagisto
Versions: All versions prior to 2.3.10
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires customer account creation and checkout process access.

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full server compromise allowing attackers to execute arbitrary code, steal sensitive data, install malware, or pivot to other systems.

🟠

Likely Case

Data theft, website defacement, or installation of cryptocurrency miners or backdoors.

🟢

If Mitigated

Limited impact if proper input validation and output encoding are implemented, though template injection could still leak sensitive information.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Requires customer account but no special privileges. Template injection to RCE is well-documented.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.3.10

Vendor Advisory: https://github.com/bagisto/bagisto/security/advisories/GHSA-5j4h-4f72-qpm6

Restart Required: No

Instructions:

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

🔧 Temporary Workarounds

Input Validation for Address Fields

all

Implement strict input validation on address form fields to reject template syntax.

Disable Customer Registration

all

Temporarily disable new customer registrations to prevent exploitation.

🧯 If You Can't Patch

  • Implement WAF rules to block template injection patterns in POST requests.
  • Restrict customer account creation and implement manual approval process.

🔍 How to Verify

Check if Vulnerable:

Check Bagisto version in composer.json or via 'php artisan --version'. If version is below 2.3.10, system is vulnerable.

Check Version:

grep '"bagisto/bagisto"' composer.json | grep -o '"[0-9]\+\.[0-9]\+\.[0-9]\+"'

Verify Fix Applied:

Confirm version is 2.3.10 or higher and test address form with template injection attempts that should be rejected.

📡 Detection & Monitoring

Log Indicators:

  • Unusual template syntax in address fields
  • Suspicious POST requests to checkout/address endpoints
  • Unexpected PHP/system commands in logs

Network Indicators:

  • HTTP requests containing template injection patterns like {{, {%
  • Outbound connections from web server to unknown IPs

SIEM Query:

source="web_logs" AND (uri="/checkout/address" OR uri="/customer/address") AND (body="{{.*}}" OR body="{%.*%}")

🔗 References

📤 Share & Export