Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP request to page rendering protected image
-
ExploitTemplate invokes image manipulation method (ScaleWidth/Convert)
-
ExecutionDBFile::getURL() fires and writes unauthorized session access grant
-
ImpactRetrieve protected file content using granted session token
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the Silverstripe site uses the "protected" file visibility setting - files set to "public" are not affected since there is no permission boundary to bypass. The vulnerable code path fires when templates render images stored via DBFile (including standard Silverstripe File/Image DataObjects) using manipulation methods such as ScaleWidth(), FitMax(), or Convert(), which internally invoke DBFile::getURL() or DBFile::getSourceURL(). No authentication is required; any unauthenticated HTTP session that causes a protected image variant to be generated triggers the grant. Sites that do not use protected file visibility at all, or that do not render image variants in templates, are not exposed. The scope of exposed content is limited to files the incorrect grant covers - typically the specific image variant rendered, not arbitrary files. |
| Impact | The CVSS 5.3 Medium score with vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N signals a low-complexity, unauthenticated, network-exploitable flaw, but impact is bounded to partial confidentiality loss. EPSS at 0.03% (8th percentile) and SSVC exploitation status of "none" both confirm no observed active exploitation, making this a lower real-world priority than the network-accessible CVSS vector alone might imply. The SSVC automatable flag (yes) indicates the access grant can be triggered predictably and at scale - any unauthenticated page request that causes image variant rendering fires the vulnerable code path - which is a meaningful amplifier. Technical impact is partial: only files under "protected" visibility are exposed, limiting scope to sites that actually configure file protection. No conflict between data sources is observed; all signals are internally consistent. Patch versions are confirmed and available, making remediation straightforward. |
| Exploit ScenarioDerived | An unauthenticated visitor loads a public-facing Silverstripe page that renders a protected image in its template. The template call invokes ScaleWidth() to generate a resized variant, which internally triggers DBFile::getURL(); the module incorrectly writes a session-level access grant. The attacker's browser session now holds an authorization token for that protected file and any variant derived from it, enabling direct retrieval of the asset URL without legitimate permission. No exploit code is publicly available, but the attack is fully automatable via any standard HTTP client. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 24, 2026
Protected file access bypass in Silverstripe Assets Module allows unauthenticated remote visitors to read files that should be restricted by the CMS file permission system. When image variants are generated via template rendering - for example calling ScaleWidth() or Convert() - the DBFile::getURL() and DBFile::getSourceURL() methods incorrectly insert an access grant into the current HTTP session, nullifying the "protected" visibility setting for those files. Versions prior to 2.4.5 and 3.0.0-rc1 through 3.1.2 are affected; patches exist at 2.4.5 and 3.1.3. No public exploit has been identified at time of analysis, and EPSS is very low at 0.03%, but SSVC flags the attack as automatable.
RemediationAI
Upgrade silverstripe/assets to version 2.4.5 (for 2.x deployments) or 3.1.3 (for 3.x deployments) via Composer: composer update silverstripe/assets. Full vendor guidance is at https://www.silverstripe.org/download/security-releases/cve-2026-24749. Post-upgrade, developers who use DBFile directly in $db configurations on DataObject classes that do not subclass File and had set those files to "protected" visibility must now add explicit access grants in application code, since the incorrect implicit grant will no longer fire. If explicit grants are undesirable, change those file fields to "public" visibility - note this trade-off makes the files publicly readable without any session check. No workaround that avoids template image rendering is practical for most sites; patching is the only reliable remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Silverstripe Assets is a required Composer package (silverstripe/assets) for the Silverstripe CMS Framework, responsible for managing file storage, access control, and image manipulation. The module supports two visibility modes - "public" and "protected" - where protected files require an explicit access grant before a session can retrieve them. CWE-863 (Incorrect Authorization) identifies the root cause: the session-based grant mechanism fires incorrectly during image variant creation. Specifically, when DBFile::getURL() or DBFile::getSourceURL() is called - as happens automatically when Silverstripe templates invoke manipulation methods like ScaleWidth() or Convert() - the module writes a session-level access grant without verifying whether the requesting user is authorized to view the underlying protected asset. The CPE string cpe:2.3:a:silverstripe:silverstripe-assets covers the affected package across both the 2.x and 3.x release lines.
Know when Silverstripe Assets 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
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Network-reachable via standard template rendering, no authentication or user interaction needed; impact is read-only access to protected files, no integrity or availability consequence.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
The Silverstripe Assets Module is a required component of Silverstripe Framework. In versions prior to 2.4.5 and 3.0.0-rc1 through 3.1.2, images rendered in templates or otherwise accessed via DBFile::getURL() or DBFile::getSourceURL() incorrectly add an access grant to the current session, which bypasses file permissions. This usually happens when creating an image variant, for example using a manipulation method like ScaleWidth() or Convert(). Note that if developers use DBFile directly in the $db configuration for a DataObject class that doesn't subclass File, and if they were setting the visibility of those files to "protected", those files will now need an explicit access grant to be accessed. If developers do not want to explicitly provide access grants for these files in their apps (i.e. they want these files to be accessible by default), they should use the "public" visibility. This issue has been fixed in versions 2.4.5 and 3.1.3.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-23275
GHSA-jgcf-rf45-2f8v
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB