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.
Published: 2026-09-21
Score: 9.9 Critical
EPSS: n/a
KEV: No
Impact: Root code execution via unauthorized plugin install
Action: Immediate Patch
AI Analysis

Impact

The vulnerability allows any authenticated user to invoke /api/core/tasks/start and trigger InstallPlugin, UnInstallPlugin, or UpgradeAll tasks. The plugin name and version fields are used unvalidated to build a pip package specification, and the task worker runs pip with root privileges. Thus a low‑privileged account can install, remove, or upgrade arbitrary Python packages on the host, achieving execution with root rights and full compromise.

Affected Systems

Ajenti server administration panel (ajenti:ajenti) prior to version 2.2.16. All installations of Ajenti that have not applied the 2.2.16 release are vulnerable.

Risk and Exploitability

The CVSS score of 9.9 marks this as critical. EPSS data is unavailable, but the lack of enforcement of plugin‑management authorization and the worker’s root execution make exploitation straightforward once an attacker has access to the authenticated API. The vulnerability is not listed in CISA KEV yet but could be targeted by attackers immediately. The likely attack vector is a remote authenticated request to the API, though an attacker already in the local network could also trigger the tasks.

Generated by OpenCVE AI on September 21, 2026 at 18:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Install Ajenti 2.2.16 or later, which removes the authorization check and sanitises plugin inputs.
  • If an upgrade is temporarily impractical, restrict the /api/core/tasks/start endpoint to administrators only by adjusting the server’s access control lists.
  • Require plugin names and version strings to be validated against an allow list and enforce that the worker process runs with the least privileges necessary, not as root.

Generated by OpenCVE AI on September 21, 2026 at 18:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 21 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
First Time appeared Ajenti
Ajenti ajenti
Vendors & Products Ajenti
Ajenti ajenti

Mon, 21 Sep 2026 17:00:00 +0000

Type Values Removed Values Added
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.
Title Ajenti: Privilege escalation to root via unauthenticated/unauthorized plugin install task
Weaknesses CWE-862
References
Metrics cvssV3_1

{'score': 9.9, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-21T18:57:20.885Z

Reserved: 2026-08-25T14:59:32.746Z

Link: CVE-2026-79920

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-21T17:18:59.567

Modified: 2026-09-21T19:17:11.323

Link: CVE-2026-79920

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-21T19:00:08Z

Weaknesses