Sceawere
Vulnerability Detail
CVE-2026-79920UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
Ajenti Improper Authorization Root Execution
Vulnerability Metadata
- Severity
- Critical
- Score / CVSS
- 9.9
- Creation Date
- 3h ago
- Vendor
- ajenti
- Product
- ajenti
- Attack Type
- CWE-862: Missing Authorization
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
- Attack Complexity
- LOW
Narrative and Response
Description
Ajenti is a Linux & BSD modular server admin panel. Prior to version 2.2.16, any authenticated user can call /api/core/tasks/start to enqueue InstallPlugin, UnInstallPlugin, or UpgradeAll from plugins/plugins/tasks.py without plugin-management authorization. InstallPlugin and UnInstallPlugin construct a pip package specification from unvalidated name and version fields, and the task worker invokes pip while running as root. A low-privileged user can therefore select or manipulate a package installed with root privileges and can install, remove, or upgrade plugins without administrative permission, resulting in root code execution and full host compromise. This issue is fixed in version 2.2.16.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "9.9",
"pubDate": "2026-09-21T17:18:59.567Z",
"pubdate": "2026-09-21T17:18:59.567Z",
"executiveSummary": "Ajenti versions prior to 2.2.16 are susceptible to an improper authorization vulnerability that allows low-privileged, authenticated users to perform unauthorized administrative tasks.\nThe vulnerability originates from the /api/core/tasks/start endpoint, which fails to enforce mandatory plugin-management authorization checks when invoking sensitive functions.\nBy manipulating parameters within InstallPlugin, UnInstallPlugin, or UpgradeAll tasks, an attacker can force the system's task worker—which operates with root privileges—to execute arbitrary commands via the pip package manager.\nThis flaw facilitates remote code execution (RCE) with root-level permissions, enabling full host compromise. Because the task worker runs as root, any arbitrary package or command specified by the attacker is executed with maximum system privileges.\nExploitation requires an authenticated session, though the attacker does not require administrative rights to trigger the vulnerability. The risk to affected systems is critical, as it effectively bypasses the server's security model to grant the attacker complete control over the underlying Linux or BSD operating system.",
"technicalDetails": "The vulnerability resides in the core task management logic of Ajenti, specifically within plugins/plugins/tasks.py. The application provides an API endpoint at /api/core/tasks/start that allows users to enqueue various administrative tasks, including plugin lifecycle management.\nThe root cause is a failure in the authorization logic: the backend processes calls to InstallPlugin, UnInstallPlugin, and UpgradeAll without verifying if the authenticated requester possesses the required 'plugin-management' administrative privileges.\nThe exploitation flow initiates when a low-privileged user sends a crafted request to /api/core/tasks/start. Because the input validation for the plugin name and version fields in the InstallPlugin and UnInstallPlugin functions is insufficient, an attacker can supply malicious strings that influence the construction of the pip package specification.\nWhen the task is enqueued, the Ajenti task worker picks up the request. Critically, this task worker runs with root privileges. When the worker invokes pip to perform the requested installation or uninstallation, the shell commands or package specifications supplied by the attacker are executed in the context of the root user.\nThis mechanism allows an attacker to inject arbitrary commands via shell meta-characters or manipulate the package installation process to force the system to download and execute malicious code from an attacker-controlled repository or local directory. As pip itself can execute arbitrary code during the installation process (e.g., via setup.py execution), the attacker achieves remote code execution.\nThe impact of this vulnerability is total system compromise. Once the attacker successfully triggers the task worker, they gain the ability to install backdoors, exfiltrate data, modify system configurations, or terminate services, all while maintaining the identity of the root user. The flaw affects all Ajenti versions prior to 2.2.16 and does not require complex network conditions beyond an existing authenticated user session."
}