Safeguard
Vulnerability Analysis•

CVE-2026-93659: High Stored XSS in Concrete CMS Community Store

Concrete CMS Community Store before 2.7.8 stores unescaped checkout fields that run script in manager sessions (CVSS 8.1). Update to 2.7.8 or later.

Safeguard Security Team
3 min read

CVE-2026-93659 is a high severity (CVSS 8.1) stored cross-site scripting flaw in Concrete CMS Community Store before 2.7.8. Unauthenticated visitors can store script in order fields that later run in a manager's browser session. The fix is Community Store 2.7.8.

What's affected

The record says Community Store before 2.7.8 is affected, and the project has a v2.7.8 release with a commit titled to add escaping of values. The weakness is CWE-79, cross-site scripting.

The record describes customer supplied order fields, including billing name, email and phone, being rendered without HTML escaping in checkout and admin views. An unauthenticated attacker can store script there. It runs when an authenticated manager opens the order, which the record says can be used to create rogue accounts or pull data out.

The repository's v2.7.7 order slip template is among the references, which suggests 2.7.7 and earlier are in scope. I could not read the release notes page in full, so confirm the exact range against the project's changelog.

How to check if you're exposed

Community Store is a Concrete CMS add-on. Check the installed version in the dashboard's add-on or package list, or read the version value in the package's controller file.

grep -n "pkgVersion" packages/community_store/controller.php

Anything below 2.7.8 is in scope. If you manage the code through Composer, check your lock file for the community_store package.

Then look at recent orders for odd content in the billing name, email or phone fields, such as markup instead of plain text.

What to do now

  1. Update Community Store to 2.7.8 or later and clear caches.
  2. Review recent orders for unexpected markup in billing fields. If you find any, treat sessions that opened those orders as exposed.
  3. Review the list of manager accounts and recent account creation for anything you do not recognize.
  4. Ask store managers to sign out and back in after the update, and to avoid opening orders with odd content until the patch is live.
  5. Consider a Content Security Policy for the admin area to limit what injected script can do.

Why it matters

Stored XSS is high value for attackers when the victim is a privileged user. The visitor never needs an account. They only need to place an order, and the payload waits in the database until a manager looks at it. CWE-79 comes down to output that should have been escaped for the HTML context and was not.

The record does not flag exploitation and the CVE is not in CISA's catalog. The scoring reflects the need for a manager to open the page. In a shop that processes orders daily, that is not a strong barrier.

Quick check

Do attackers need an account on my store?

No. The record describes unauthenticated attackers storing script through checkout fields.

What fixes it?

Community Store 2.7.8, which adds escaping of values according to the project's commit.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.