Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify store download URL scheme
-
DeliveryEnumerate sequential order and file IDs
-
ExploitCompute md5 token from order timestamp
-
ExecutionRequest /store_download endpoint
-
ImpactRetrieve other customers' digital goods
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Applies to Concrete CMS Community Store before 2.7.8 with digital/downloadable products enabled (the download-token feature in Utilities/Download.php). Exploitation is remote and unauthenticated (PR:N/UI:N) against default configurations wherever digital goods are sold. The practical limiting factor is that the token is md5 of the order's creation timestamp at one-second resolution, so the attacker must know or brute-force the exact second an order was created, and must enumerate valid order/file ID pairs; legacy orders created before patching remain exploitable via the md5 fallback path until superseded. |
| Impact | This is a genuine, high-priority confidentiality flaw despite the absence of exploitation telemetry. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H) scores 8.7 and is consistent with the description: an unauthenticated network attacker enumerates sequential order and file IDs and computes the download token, which the code (confirmed in source at Download.php) derives as md5(order creation timestamp 'Y-m-d H:i:s') rather than a random value - CWE-340 (predictability of a security token). No EPSS score, no CISA KEV listing, and no public POC are present in the input, so this is not confirmed as actively exploited; the appropriate status is 'no public exploit identified at time of analysis.' The one signal that partially tempers AC:L is that the token is the md5 of the order timestamp to one-second precision, so an attacker must know or brute-force the exact creation second of a victim order - practical when order times are inferable (e.g. from receipts, RSS, or narrow windows) but not entirely free, which is worth verifying against the vendor advisory. Impact is strictly confidentiality (VI:N/VA:N): retrieval of digital goods purchased by other customers, with no integrity or availability effect. The patch is confirmed available (v2.7.8 / commit a71138d adds a random 32-char getString security code and validates against it, with an md5 fallback for legacy orders). Net: a real, easy-to-understand data-exposure bug in a patched release - prioritize patching for anyone running Community Store, but it is a targeted data-theft risk rather than mass-exploitation infrastructure. |
| Exploit ScenarioDerived | An unauthenticated attacker browses a Concrete CMS store selling digital downloads, notes that download URLs follow /store_download/{fileID}/{orderID}/{md5(order timestamp)}, then iterates sequential order and file IDs while computing candidate md5 tokens from guessed order-creation seconds. On a match, the server serves another customer's purchased digital file. No public POC is referenced, but the VulnCheck advisory documents the predictable-token mechanism and the vulnerable source lines make reconstruction straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Predictable digital-product download tokens in the Concrete CMS Community Store package before 2.7.8 allow unauthenticated remote attackers to download files belonging to other customers. The token protecting each download URL is an MD5 hash of the order's creation timestamp - a value with only one-second resolution - so an attacker who can enumerate valid order and file identifiers can brute-force the token and retrieve purchased digital goods. The flaw is remotely exploitable without authentication or user interaction (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, vendor-assigned CVSS 4.0 score 8.7) and affects any Concrete CMS site selling downloadable products with this package; no public exploit code was identified at time of analysis, though the deterministic token construction makes weaponization trivial once identifiers are known.
RemediationAI
Upgrade the Community Store package to version 2.7.8 or later (vendor-released patch: 2.7.8; the fixing commit is a71138db250d5c207e49fe3f1287241f04e3f747, available from the project's GitHub repository and the v2.7.8 release tag). After upgrading, orders created before patching retain a fallback code path in Download.php that still validates the old MD5 timestamp token because their oSecurityCode column is null, so those orders remain guessable until their download window lapses - consider shortening the download validity threshold, manually invalidating or reissuing outstanding legacy download links, or disabling downloads for pre-patch orders if the site cannot tolerate the residual exposure. Where upgrading is not immediately possible, restrict or disable the store_download endpoint (blocking requests to /store_download/* at the web server or WAF) as a compensating control, accepting that legitimate customers will be unable to download their purchases; alternatively require authenticated access to the download route if the storefront supports it, at the cost of breaking anonymous-guest checkout downloads. Because exploitation only requires enumerating sequential order and file IDs plus brute-forcing a one-second timestamp window, log and alert on repeated /store_download/ requests with varying IDs or hashes, and treat any such pattern as a likely compromise of customer purchase data. Vendor advisory details are at https://www.vulncheck.com/advisories/concrete-cms-community-store-before-2.7.8-predictable-digital-download-token.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is an instance of CWE-340 (Generation of Predictable Numbers or Identifiers). In Community Store's src/CommunityStore/Utilities/Download.php, the download URL exposed to buyers took the form /store_download/{fileID}/{orderID}/{hash}, where the hash was computed as md5($order->getOrderDate()->format('Y-m-d H:i:s')) - that is, a non-salted digest of the order's creation timestamp truncated to whole seconds. Because both the file ID and order ID are sequential, low-entropy integers that appear directly in the URL, the only secret component is the hash, whose pre-image space is limited to a plausible window of order-creation seconds. Download.php line 45 implemented verification that compared the supplied hash against the recalculated MD5 timestamp, so an attacker only needed to guess the correct second, not to compromise any cryptographic material. The underlying application (Concrete CMS, the PHP framework the package extends) is not itself affected; the CPE cpe:2.3:a:concretecms-community-store:community_store:*:*:*:*:*:*:*:* covers all Community Store versions before the fix. The upstream commit a71138db250d5c207e49fe3f1287241f04e3f747 replaces the derived token with a 32-character random string stored in a new nullable oSecurityCode column on the Order entity (generated via Concrete's helper/validation/identifier service at order creation) and adds a legacy fallback: when oSecurityCode is null - i.e. for orders placed before the upgrade - verification still falls back to the old md5-of-timestamp comparison. That fallback preserves backward compatibility but keeps pre-patch orders exposed until their download window expires.
Know when Community Store gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Remote unauthenticated token prediction yields confidential customer downloads (C:H); no integrity or availability impact; AC:L per predictable token, though second-precision timestamp brute force nudges toward AC:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Concrete CMS Community Store before 2.7.8 derives digital product download tokens from order creation timestamps instead of random values, making tokens predictable. Unauthenticated attackers can enumerate sequential order and file identifiers to calculate valid download tokens and retrieve digital goods purchased by other customers.
Executive ViewAI
Concrete CMS sites using the Community Store package before 2.7.8 face unauthenticated remote disclosure of purchased digital files because download tokens are predictable. This affects any organization selling downloadable products through the affected package, exposing customer order/file relationships and potentially confidential or licensed content. Leadership should care because exploitation requires no credentials or user action, and the vendor-released patch to 2.7.8 is available.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-84524
GHSA-4m3m-829w-5q37
NVD
CVE.org
EPSS
Exploit-DB