Skip to main content

Hestia Control Panel EUVDEUVD-2026-101308

| CVE-2026-108390 CRITICAL
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-10-14 GitHub_M
9.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged panel user with web domain
  2. Delivery
    Inject single quote in custom document-root to forge PATH field in web.conf
  3. Exploit
    Plant malicious 'column' executable in injected search path
  4. Execution
    Invoke panel Search feature triggering root v-search-user-object
  5. Impact
    Execute arbitrary code as root

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
Exploitation Conditions

Requires: (1) a valid authenticated Hestia panel account at only low privilege (PR:L), (2) the user owning at least one web domain so they can write a custom document-root value, (3) injecting a single quote into that document-root value - unescaped by update_object_value() in func/main.sh - to append an attacker-controlled PATH field to the user's web.conf, and (4) invoking the panel's standard Search feature, which runs the root-privileged v-search-user-object script that loads the forged field via parse_object_kv_list_non_eval() (which permits reserved shell-variable names like PATH) and then calls 'column' without an absolute path. The attacker must also stage a malicious 'column' executable within the injected search path. Limiting factors that reduce real-world exposure: exploitation is confined to affected versions 1.9.7-1.10.4; it is unavailable to fully anonymous attackers (a provisioned account with web-domain capability is mandatory), making multi-tenant/shared-hosting and malicious-insider scenarios the realistic threat model; no end-user interaction by an admin is needed since the low-priv attacker triggers Search themselves.

Impact

This is a genuine high-priority vulnerability, not a CVSS-inflated paper risk. The input CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, 9.9) is internally consistent with the description: a low-privileged but authenticated panel user (PR:L) reaches a root-privileged script over the network, with a scope change (S:C) from the panel user context to full host root - a textbook privilege-escalation-to-RCE. The attack complexity is genuinely low (AC:L): the only prerequisite is owning a web domain and supplying a single quote in a document-root value, with no race or special timing. No EPSS score, CISA KEV entry, or explicit POC flag was provided in the input, so exploitation-probability and in-the-wild signals are ABSENT rather than low - this should be read as 'unmeasured,' not 'safe.' The third-party reference (ravindulakmina.pages.dev) and the public vendor security advisory (GHSA-r9q4-pmcm-5qqf) with a full commit diff mean the mechanism is openly documented and readily reproducible by a skilled analyst, which materially raises practical exploitability even though no packaged exploit is confirmed. A notable aggravating factor: this is a RESIDUAL flaw - the description states v1.9.7's parse_object_kv_list_non_eval() reintroduced the sink that CVE-2026-84984 had fixed, so environments that patched the earlier CVE may wrongly assume they are safe. The main mitigating factor is PR:L: an attacker must first hold a valid panel account with a web domain, limiting exposure to multi-tenant/shared-hosting deployments and insiders rather than fully anonymous internet attackers.

Exploit ScenarioDerived

A customer on a shared Hestia hosting server (a legitimate low-privileged panel user with a web domain) sets a custom document-root value containing a single quote, breaking out of the quoting in web.conf to inject an attacker-controlled PATH field. They place a malicious executable named 'column' in that path, then click the panel's ordinary Search feature; the root-privileged v-search-user-object script parses the forged field, overrides PATH, and invokes 'column' without an absolute path, running the attacker's binary as root. No weaponized public exploit is confirmed in the provided data, but the vendor advisory and a third-party write-up document the full technique and the fixing commit is public.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.7% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Authenticated low-privileged users of Hestia Control Panel 1.9.7 through 1.10.4 who own at least one web domain can escalate to root by injecting a single quote into a custom document-root value, which update_object_value() fails to escape before writing it to the user's web.conf file. The forged PATH field is later loaded by the root-privileged v-search-user-object script via parse_object_kv_list_non_eval() - which allows reserved shell-variable names and replaces PATH globally - and the subsequent invocation of 'column' without an absolute path executes an attacker-supplied binary placed in the injected search path, yielding arbitrary code execution as root with a scope change (S:C) and full confidentiality, integrity and availability impact. The flaw is fixed in Hestia Control Panel 1.10.5; no public exploit code was identified at time of analysis, and the realistic threat model is multi-tenant/shared hosting or a malicious insider rather than an anonymous attacker, since a provisioned panel account with web-domain capability is mandatory.

RemediationAI

Upgrade Hestia Control Panel to version 1.10.5 or later; this is the vendor-released patch that removes the argument-injection sink and the unsafe PATH/name-resolution behavior, and the specific fix is captured in upstream commit 4d86018660f35a1d64a0ae819bc5ee700949a287 and advisory GHSA-r9q4-pmcm-5qqf (further background at https://ravindulakmina.pages.dev/advisories/cve-2026-108390-hestiacp-apostrophe-to-root). Because exploitation requires a valid low-privileged panel account that owns a web domain, interim compensating controls should target that prerequisite: temporarily withhold web-domain/plan provisioning or custom document-root editing rights from untrusted panel users (side effect: customers cannot create or relocate sites), audit existing per-user web.conf files for unexpected PATH or other reserved-variable keys and remove them (side effect: manual, non-persistent, and easily re-added by an attacker who still holds domain rights), and, if the Search feature is not essential to tenants, restrict or disable its availability to low-privileged accounts until the upgrade is applied. Administrators who cannot patch immediately can also apply the hardening logic from the upstream commit to their /bin/v-search-* scripts - anchoring path validation, quoting expansions and invoking 'column' via an absolute path - accepting that this is an unsupported, manually maintained change that will be overwritten by future package updates. No vendor-released fix short of the 1.10.5 upgrade should be relied upon, and no public exploit code was identified at time of analysis, though the disclosed details are sufficient for a competent attacker to reconstruct the chain.

Affected VersionsENISA

hestiacp 1.9.7, < 1.10.5

Affected Packages

euvd hestiacp fix: 1.10.5

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

The root cause class is CWE-88 (Improper Neutralization of Argument Delimiters / argument injection) rather than classic shell-metacharacter command injection. Hestia's administrative shell library function update_object_value() in func/main.sh writes key/value pairs into per-user configuration files such as web.conf but does not escape embedded single quotes, so an attacker-controlled document-root string can terminate the intended value and append an additional key - specifically a reserved shell variable name such as PATH. The root-privileged routine v-search-user-object then consumes the file through parse_object_kv_list_non_eval(), a helper introduced in version 1.9.7 to replace the raw 'eval' sink that CVE-2026-84984 addressed; that helper blocks ordinary code evaluation but still permits reserved shell-variable names to be set and performs a global PATH replacement, so the attacker's search path is inherited by child processes. The vulnerability is completed because the script calls the external 'column' utility without an absolute path, allowing the injected PATH entry to shadow the legitimate binary and run an attacker-staged executable with root privileges. The upstream fix in commit 4d86018660f35a1d64a0ae819bc5ee700949a287 hardens the related v-search-fs-object and v-search-object scripts (anchored case-based path validation, quoted parameter expansion, removal of eval, and renamed field lists), eliminating the injection and unsafe name-resolution chain.

Know when Hestiacp 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 (GitHub_M) PRIMARY 9.9 CRITICAL
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

Authenticated low-priv panel user (PR:L) exploits over the network (AV:N) with no special timing (AC:L), escalating out of the user context to root (S:C) for full host compromise (C:H/I:H/A:H).

3.1 AV:N/AC:L/PR:L/UI:N/S:C/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:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 14, 2026 - 18:05 EUVD
CVE Published
Oct 14, 2026 - 17:17 cve.org
CRITICAL 9.9

DescriptionCVE.org

Hestia Control Panel is a lightweight and powerful control panel for the modern web. From version 1.9.7 through 1.10.4, update_object_value() in func/main.sh does not escape single quotes when writing a custom document-root value to a user's web.conf file, allowing a low-privileged authenticated panel user with a web domain to inject an additional PATH field. When the user invokes the ordinary Search feature, the root-privileged v-search-user-object script loads the forged field through parse_object_kv_list_non_eval(), which permits reserved shell-variable names and globally replaces PATH before invoking column without an absolute path. By placing a malicious column executable in the injected search path, the user can execute arbitrary code as root. This residual vulnerability was introduced when version 1.9.7 replaced the raw eval sink addressed by CVE-2026-84984 with parse_object_kv_list_non_eval(), and it is fixed in version 1.10.5.

Technical POC Analysis

The flaw is a chained CWE-88 argument-delimiter injection plus CWE-427 uncontrolled search path.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Hestia Control Panel versions 1.9.7 through 1.10.4 contain a critical privilege-escalation flaw that allows a low-privileged user with a hosted web domain to gain root-level control of the server. This creates severe risk for shared-hosting providers and multi-tenant environments, where a single malicious tenant or insider could compromise all hosted accounts and underlying infrastructure. No public exploit identified at time of analysis, but a vendor fix is available in version 1.10.5.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.7%
Top 49% exploitable
Prevalence
Low
niche open-source hosting control panel, limited enterprise footprint
Data Quality
6 sources
Confidence: High

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.7%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2021-3797 CRITICAL POC
9.8 Sep 15

hestiacp is vulnerable to Use of Wrong Operator in String Comparison. Rated critical severity (CVSS 9.8), this vulnerabi

CVE-2022-2636 HIGH POC
8.8 Aug 05

Improper Control of Generation of Code ('Code Injection') in GitHub repository hestiacp/hestiacp prior to 1.6.6. Rated h

CVE-2022-2550 HIGH POC
8.8 Jul 27

OS Command Injection in GitHub repository hestiacp/hestiacp prior to 1.6.5. Rated high severity (CVSS 8.8), this vulnera

CVE-2022-1509 HIGH POC
8.8 Apr 28

Command Injection Vulnerability in GitHub repository hestiacp/hestiacp prior to 1.5.12. Rated high severity (CVSS 8.8),

CVE-2026-43634 HIGH POC
8.7 May 19

Authentication security bypass in HestiaCP 1.2.0 through 1.9.4 allows unauthenticated remote attackers to spoof their so

CVE-2023-5839 HIGH POC
7.8 Oct 29

Privilege Chaining in GitHub repository hestiacp/hestiacp prior to 1.8.9. Rated high severity (CVSS 7.8), this vulnerabi

CVE-2022-2626 HIGH POC
7.2 Aug 05

Incorrect Privilege Assignment in GitHub repository hestiacp/hestiacp prior to 1.6.6. Rated high severity (CVSS 7.2), th

CVE-2020-10966 MEDIUM POC
6.5 Mar 25

In the Password Reset Module in VESTA Control Panel through 0.9.8-25 and Hestia Control Panel before 1.1.1, Host header

CVE-2023-5084 MEDIUM POC
6.1 Sep 20

Cross-site Scripting (XSS) - Reflected in GitHub repository hestiacp/hestiacp prior to 1.8.8. Rated medium severity (CVS

CVE-2023-3479 MEDIUM POC
6.1 Jun 30

Cross-site Scripting (XSS) - Reflected in GitHub repository hestiacp/hestiacp prior to 1.7.8. Rated medium severity (CVS

CVE-2022-0986 MEDIUM POC
6.1 Mar 16

Reflected Cross-site Scripting (XSS) Vulnerability in GitHub repository hestiacp/hestiacp prior to 1.5.11. Rated medium

CVE-2022-0752 MEDIUM POC
6.1 Mar 04

Cross-site Scripting (XSS) - Generic in GitHub repository hestiacp/hestiacp prior to 1.5.9. Rated medium severity (CVSS

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