Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid low-privilege Bolt credentials
-
DeliveryInject PHP into profile displayname field
-
ExploitRename cached .session file to /files/ with .php extension
-
ExecutionRequest rogue PHP file via HTTP GET
-
ImpactExecute web shell as web server user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated session with a valid Bolt backend account (PR:L) and depends on a specific multi-step chain: (1) the attacker must be able to edit their own user-profile displayname field, which backend templates render without sanitization; (2) the installation must expose the /async/browse/cache/.sessions and /async/folder/rename endpoints so cached .session files can be listed and renamed; and (3) the /files/ directory must be publicly web-accessible and able to serve/execute .php files, allowing a renamed session file to become a web shell. Limiting factors: valid credentials are mandatory (this is NOT unauthenticated), and it only affects Bolt CMS 3.7.0 and earlier - the 3.7.1 release specifically prevents renaming files to blacklisted filetypes, closing the chain. Because Bolt 3 is end-of-life, realistic risk is confined to legacy unpatched deployments. |
| Impact | This is a credentialed remote code execution flaw (CWE-94) in Bolt CMS ≤3.7.0, and the signals are mixed but lean toward genuine priority for anyone still running Bolt 3. The provided CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:P, VC:H/VI:H/VA:H, score 7.5) indicates a network-reachable attack that requires authentication (PR:L) plus specific attack preconditions (AT:P), with full confidentiality/integrity/availability impact on the vulnerable system and no scope change (SC:N). EPSS is notably high at 50.83% (98th percentile), and public exploit code is confirmed (Metasploit module and Exploit-DB 48296), so the exploitation probability and tooling maturity are strong corroborating signals of real-world usability. However, this is NOT CISA KEV-listed, so per the precision rules the correct characterization is 'publicly available exploit code exists' - do NOT treat it as confirmed active exploitation. The key tempering factors: the vulnerability requires valid low-privilege credentials (PR:L), and the product is end-of-life (Bolt 3 EOL after 31 December 2021) with a patched successor (3.7.1 / Bolt 4). The high EPSS reflects the age, public Metasploit coverage, and reliability of the exploit chain rather than evidence of mass active exploitation. Net: a real priority on exposed, authenticated Bolt 3.x instances, but the authentication requirement and EOL/low deployment footprint bound the blast radius versus an unauthenticated internet-wide bug. |
| Exploit ScenarioDerived | An attacker who has obtained valid Bolt backend credentials (e.g., a low-privileged editor account via phishing or credential reuse) injects PHP into the user-profile displayname field, which backend templates render unsanitized. Using the public Metasploit module (exploit/unix/webapp/bolt_authenticated_rce), they list and rename a cached .session file into the public /files/ directory with a .php extension, then request that file over HTTP to execute the injected code as the web server user. A working, publicly available exploit makes this a low-effort attack against any reachable, credentialed Bolt 3.x install. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 08, 2026
Authenticated remote code execution in Bolt CMS 3.7.0 and earlier lets any holder of a valid backend account chain an unsanitized profile displayname field, the /async/browse/cache/.sessions and /async/folder/rename file-management endpoints, and a publicly reachable /files/ directory into planting and executing a PHP web shell. Exploitation is multi-step and deployment-dependent - it requires credentials, exposed async endpoints, and a /files/ path that will serve or execute .php files - but publicly available exploit code exists, including a Rapid7 Metasploit module, and EPSS scores the issue at 50.83% (98th percentile). Bolt 3.7.1 closed the file-renaming leg of the chain, and Bolt 3 reached end-of-life on 31 December 2021, so realistic exposure is confined to legacy unpatched installations.
Earlier versions of this analysis (1)
Authenticated command injection in Pandora FMS network tools via select_ips parameter enables OS command execution on monitoring infrastructure.
RemediationAI
The vendor-released fix is Bolt CMS 3.7.1, which prevents renaming files to blacklisted filetypes and adds CSRF protection to the Preview page (release: https://github.com/bolt/bolt/releases/tag/3.7.1, installable from https://bolt.cm/distribution/archive/3.7/bolt-3.7.1.tar.gz per the release notes). Because Bolt 3 is end-of-life, upgrading within the 3.x line is a stopgap and the durable remediation is migration to a supported Bolt 4/5/6 release; note that major-version migrations are non-trivial and can break custom themes, extensions, and content models, so plan them as projects rather than hotfixes. Where neither is immediately possible, apply compensating controls that break the specific chain: configure the web server to refuse execution of PHP under /files/ (for nginx, a location block for /files/ with a PHP handler deny or an internal-only PHP location; for Apache, php_admin_flag engine off inside that directory) and verify uploaded/served content is returned as inert bytes - this is low-risk for content sites but will break legitimate PHP-based file workflows; restrict or block the /async/browse/cache/.sessions and /async/folder/rename routes at the reverse proxy or WAF for all but trusted administrator IPs, accepting that this degrades the backend file manager UI; remove or disable the displayname field for non-administrator roles so the injection point cannot be reached; and reduce the backend attack surface by tightening account issuance and applying MFA so no low-privilege credential can reach the user-profile editor. Finally, because the Metasploit module and Exploit-DB 48296 make the chain trivially reproducible by an authenticated insider, monitor Bolt access logs and the session cache directory for unexpected .php artifacts and alert on rename operations targeting web-accessible paths.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 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
Bolt is a PHP content management system built on Symfony/Silex components, and this issue is a code-injection chain (CWE-94) rather than a single memory-safety or deserialization bug. The root cause is that the user-profile displayname value is stored and then rendered into backend templates without output sanitization, so an authenticated editor can persist PHP source into a field that later reaches a server-side template context (see the user controller logic referenced at bolt/bolt 3.7 src/Controller/Backend/Users.php lines 279-311). The second component is Bolt's asynchronous file manager: /async/browse/cache/.sessions enumerates cached PHP session files written to disk, and /async/folder/rename moves them. Because there is no effective extension blacklist in 3.7.0 and earlier, an attacker can rename a .session file into the web-served /files/ directory with a .php extension, converting the injected displayname payload into an executable web shell that is then triggered by a crafted GET request. The 3.7.1 maintenance release (2020-05-07) addresses this directly via PR #7853, which adds CSRF checks on the Preview page and prevents renaming files to blacklisted filetypes, breaking the rename-to-PHP step. The associated Metasploit module (exploit/unix/webapp/bolt_authenticated_rce) and Exploit-DB 48296 both operate strictly post-authentication, confirming that credential possession is a hard prerequisite (CVSS PR:L / PR:L in the supplied vectors).
Know when Bolt 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:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable but needs valid credentials (PR:L) and a multi-step chain relying on accessible rename endpoints and a public executable /files/ dir (AC:H); attacker-driven so UI:N, and code runs within the same web authority (S:U) with full C/I/A impact.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
4DescriptionCVE.org
Bolt CMS versions 3.7.0 and earlier contain a chain of vulnerabilities that together allow an authenticated user to achieve remote code execution. A user with valid credentials can inject arbitrary PHP code into the displayname field of the user profile, which is rendered unsanitized in backend templates. The attacker can then list and rename cached session files via the /async/browse/cache/.sessions and /async/folder/rename endpoints. By renaming a .session file to a path under the publicly accessible /files/ directory with a .php extension, the attacker can turn the injected code into an executable web shell. Finally, the attacker triggers the payload via a crafted HTTP GET request to the rogue file.
NOTE: The vendor announced that Bolt 3 reached end-of-life after 31 December 2021.
Executive ViewAI
A high-severity flaw in legacy Bolt CMS installations (version 3.7.0 and earlier) allows an attacker holding a valid backend account to plant and run a PHP web shell on the web server, giving full control of the affected site. Publicly available exploit code - including a Rapid7 Metasploit module - and an EPSS score above the 98th percentile raise the likelihood of opportunistic scanning, though successful exploitation depends on internet-exposed administrative endpoints and a file directory that executes PHP. Leadership should care because exposure is concentrated in end-of-life systems that may still host customer-facing content, and a compromise there risks data theft, defacement, and a foothold into connected internal networks.
No vendor-released patch identified at time of analysis. Bolt 3.7.1 closed the file-renaming leg of the exploitation chain but the Bolt 3 line is end-of-life, so interim mitigations are required: restrict backend administrative access to trusted networks, block or disable the vulnerable /async endpoints via WAF or reverse proxy rules, configure /files/ to serve static content only with PHP execution disabled, remove or restrict unnecessary backend accounts, monitor for new or modified PHP files, and accelerate migration to a supported CMS version.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
The theme editor in Bolt before 2.2.5 does not check the file extension when renaming files, which allows remote authent
Bolt CMS contains a vulnerability in version 5.1.12 and below that allows an authenticated user with the ROLE_EDITOR pri
Bolt CMS <= 4.2 is vulnerable to Remote Code Execution. Rated high severity (CVSS 8.8), this vulnerability is remotely e
Cross Site Request Forgery (CSRF) in the bolt/upload File Upload feature in Bolt CMS 3.6.6 allows remote attackers to ex
Controller/Async/FilesystemManager.php in the filemanager in Bolt before 3.6.5 allows remote attackers to execute arbitr
In Bolt CMS before version 3.7.1, the filename of uploaded files was vulnerable to stored XSS. Rated medium severity (CV
Bolt 3.6.4 has XSS via the slug, teaser, or title parameter to editcontent/pages, a related issue to CVE-2017-11128 and
Bolt 3.7.0, if Symfony Web Profiler is used, allows XSS because unsanitized search?search= input is shown on the _profil
Bolt CMS <3.6.2 allows XSS via text input click preview button as demonstrated by the Title field of a Configured and Ne
In Puppet Bolt versions prior to 3.27.4, a path to escalate privileges was identified. Rated critical severity (CVSS 9.8
Bolt CMS 3.2.14 allows stored XSS via text input, as demonstrated by the Title field of a New Entry. Rated medium severi
Bolt CMS 3.2.14 allows stored XSS by uploading an SVG document with a "Content-Type: image/svg+xml" header. Rated medium
EUVD-2025-19905
GHSA-p9qc-8jjx-g8cg
NVD
CVE.org
EPSS
Exploit-DB