/

CVE-2026-70375

Severity:

HIGH RISK

(8.8)

OS Command Injection (CWE-78) in HashBrown Git Deployer

CVE-2026-70375

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Remote Code Execution

Severity:

HIGH RISK

(8.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

HashBrown CMS contains an OS command injection vulnerability in its Git deployer because the configured branch value is inserted directly into a shell command without adequate escaping. A user who can modify a project's Git deployer settings may cause commands to execute when deployment-related operations trigger repository synchronization.

Affected context

The vulnerability occurs in HashBrown CMS deployments using the Git deployer component through version 1.4.6. It becomes risky when an attacker can configure or modify a project's Git deployer settings and the application subsequently performs an operation that invokes repository synchronization, such as media uploads or content saves.

Exploit preconditions

  • Attack surface: Git deployer configuration and subsequent deployment-related operations
  • Required access: Permission to create or modify a project's Git deployer settings
  • Trigger point: Repository synchronization performed at the start of deployer operations
  • Why exploitation is possible: The configured branch value is interpolated into a shell command without robust argument separation or shell metacharacter handling

Why this happens

The underlying bug is command construction from attacker-influenced configuration data. GitDeployer builds a shell command by concatenating the branch value into a command string, while validation does not comprehensively prevent shell control characters or command substitutions. This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, because input is interpreted by a shell as command syntax rather than treated solely as a data argument.

Potential impact

  • An attacker may execute arbitrary operating-system commands with the application's privileges
  • The application host or deployment worker could be compromised
  • Repository contents, credentials, or deployment artifacts could be exposed or altered
  • Malicious changes could be introduced into published content or downstream systems
  • The compromised process could be used for further lateral movement, depending on available permissions

General mitigation guidance

Mitigation generally focuses on preventing configuration values from becoming shell syntax.

Common defensive patterns include:

  • Invoke Git through an argument-based process API rather than a shell command string
  • Treat branch names as data and enforce a strict allowlist or repository-specific branch-name policy
  • Apply validation before any command construction or process execution
  • Reduce the privileges of the application and deployment process
  • Keep deployer credentials and repository access scoped to the minimum required operations
  • Restrict which users or roles can modify Git deployer settings
  • Avoid relying on single-character filtering as a substitute for safe process invocation

How teams detect issues like this

Organizations can look for:

  • Static analysis findings where configuration fields are concatenated into shell commands
  • Code review signals involving command execution APIs, shell-enabled process spawning, and string interpolation
  • Tests using shell metacharacters and command-substitution syntax as validation cases, without executing them in production
  • Audit events showing unexpected changes to Git deployer settings or branch configuration
  • Runtime monitoring for unusual child processes, command interpreters, or outbound connections from the CMS process
  • Policy enforcement requiring argument-vector process APIs and restricting shell execution in application code

Automated security scanning and code review tools may help identify these patterns when configured for command-injection rules.

Sources

SourceLink
cve.turansec.uzcve.turansec.uz/advisories/TRN-B571F773
github.comgithub.com/HashBrownCMS/hashbrown-cms

Frequently asked

questions

Exploitability depends on how the CMS is deployed and exposed. An attacker generally needs authenticated or otherwise authorized access that permits modification of a project's Git deployer settings, after which a later deployer operation may trigger the vulnerable command.

No direct operating-system access is necessarily required. The relevant prerequisite is the ability to influence the branch configuration and cause the Git deployer to run.

The safest pattern is to execute Git through a process API that passes arguments separately, combined with strict validation and an allowlist for acceptable branch values.

Minimize shell invocation, treat configuration as untrusted input, review all command-building paths, restrict configuration privileges, and test process-execution code for shell interpretation risks.

Find out what's already
exploitable in your codebase.