CVE-2026-35175: 
Python vulnerability analysis and mitigation

Overview

CVE-2026-35175 is an authorization bypass vulnerability in Ajenti, an open-source web-based server administration panel, that allows authenticated non-superuser accounts to install custom packages without proper privilege checks. It affects all versions of the ajenti-panel pip package prior to 2.2.15 and is classified as CWE-862 (Missing Authorization). The vulnerability was published on April 1, 2026, by researcher Thien225409 and added to the GitHub Advisory Database on April 3, 2026. It carries a CVSS v3.1 base score of 6.5 (Medium) and a CVSS v4.0 base score of 7.2 (High) (GitHub Advisory, Ajenti Advisory).

Technical details

The root cause is a missing authorization check (CWE-862) in Ajenti's package installation functionality when the auth_users plugin is used as the authentication method. The application fails to verify whether the authenticated user holds superuser privileges before permitting the installation of custom packages, allowing any valid user account to perform a privileged administrative action. The attack is network-based, requires only low-level authenticated access, and involves no user interaction, making it straightforward to exploit once credentials are obtained (GitHub Advisory, Ajenti Advisory).

Impact

Successful exploitation allows a low-privileged authenticated user to install arbitrary custom packages on the server managed by Ajenti, resulting in a high integrity impact on the vulnerable system. This could enable an attacker to introduce malicious software, backdoors, or unauthorized system modifications, potentially leading to full server compromise or lateral movement within the environment. Confidentiality and availability impacts are rated low to moderate under CVSS v4.0, reflecting secondary risks from installed malicious packages (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code or evidence of in-the-wild exploitation has been reported as of the time of this report. The EPSS score is approximately 0.061% (0.023% per GitHub Advisory), placing it in the 7th percentile for exploitation likelihood within 30 days. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires valid credentials for an Ajenti instance using the auth_users authentication plugin, limiting the attack surface to authenticated users (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify internet-facing Ajenti panel instances (typically running on port 8000) using tools like Shodan or Censys, and confirm they are running versions prior to 2.2.15 with the auth_users authentication plugin enabled.
  2. Authentication: Log in to the Ajenti panel using any valid non-superuser account credentials obtained through phishing, credential stuffing, or other means.
  3. Access package installation endpoint: Navigate to the package management section of the Ajenti web interface, which should normally be restricted to superuser accounts.
  4. Install malicious package: Submit a request to install a custom (potentially malicious) package. Due to the missing authorization check, the server processes the request without verifying superuser status.
  5. Achieve persistence or escalation: The installed package executes with server-level privileges, potentially enabling a backdoor, reverse shell, or further privilege escalation on the underlying host (GitHub Advisory, Ajenti Advisory).

Indicators of compromise

  • Logs: Ajenti application logs showing package installation actions performed by non-superuser accounts; unexpected POST requests to package management API endpoints from low-privileged user sessions.
  • File System: Presence of unexpected or unrecognized packages installed on the server; new files or binaries in system directories not associated with legitimate administrative activity.
  • Process: Unusual processes spawned following a package installation event, particularly those initiated by the Ajenti service account; unexpected network connections from newly installed software.
  • Network: Outbound connections from the Ajenti server to unknown external hosts shortly after a package installation event by a non-superuser account.

Mitigation and workarounds

The vulnerability is fixed in Ajenti version 2.2.15, released March 31, 2026. Users should upgrade the ajenti-panel pip package to version 2.2.15 or later as soon as possible. As a temporary workaround, administrators can restrict Ajenti access to trusted users only, avoid using the auth_users plugin with untrusted accounts, or limit network access to the Ajenti panel via firewall rules until the upgrade can be applied (GitHub Advisory, Ajenti Release).

Additional resources


Source: This report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-v2f8-6655-7grjCRITICAL10
  • Python logoPython
  • vibe-trading-ai
NoYesOct 02, 2026
CVE-2026-105782HIGH7.5
  • Python logoPython
  • scrapy
NoYesOct 06, 2026
GHSA-v853-p72q-4cfwHIGH7.5
  • Python logoPython
  • quart
NoYesOct 05, 2026
CVE-2026-105751MEDIUM6.9
  • Python logoPython
  • docling
NoYesOct 05, 2026
CVE-2026-105750MEDIUM5.9
  • Python logoPython
  • docling
NoYesOct 05, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management