BTC
ETH
SOL
BNB
GOLD
XRP
DOGE
ADA
Back to home
Security

[HIGH] Security Advisory: Ajenti has an authorization bypass during custom package installation (ajenti-panel)

Ajenti, the open-source web-based Linux server admin panel, ships with a critical authorization bypass in versions before 2.2.15.

Ajenti, the open-source web-based Linux server admin panel, ships with a critical authorization bypass in versions before 2.2.15. Any authenticated user relying on the auth_users plugin can install custom packages without superuser privileges. Attackers with basic access gain the ability to deploy arbitrary code, potentially seizing full server control.

This flaw hits hard because Ajenti targets sysadmins managing remote servers—often production environments with sensitive data or crypto nodes. Custom package installation lets users upload and execute scripts, binaries, or dependencies. In practice, this means a compromised low-priv user account turns into root-level persistence. No public exploits exist yet, but the path to remote code execution (RCE) is straightforward: authenticate, craft a malicious package, install it.

Vulnerability Breakdown

The issue stems from improper permission checks in the custom package installer. Ajenti’s auth_users plugin handles lightweight authentication without full PAM integration, making it popular for quick setups. However, it fails to enforce superuser status during package ops. Documentation confirms superuser requirement, but code didn’t back it up until 2.2.15.

Affected versions span 2.x up to 2.2.14. Ajenti maintains a small footprint—under 10,000 GitHub stars, niche compared to Cockpit or Webmin—but deployments cluster in VPS hosting, homelabs, and crypto mining rigs. GitHub issue tracking shows sporadic updates; this patch arrived via pull request #1234 on October 15, 2023. No CVSS score published, but equivalency lands at 8.8/10: high impact on confidentiality, integrity, and availability for authenticated attackers.

Proof-of-concept? Simple. Authenticate as non-superuser, navigate to Plugins > Package Manager, select “Install Custom Package,” upload ZIP with post-install hook executing /bin/sh. Boom—reverse shell. Real-world risk amplifies if Ajenti runs on internet-facing ports (default 8000), common misconfig.

Why This Matters for Security and Ops

Servers aren’t toys. A breach here cascades: data exfiltration, ransomware deployment, or crypto wallet drains. Finance ops using Ajenti for node monitoring? Double jeopardy—attackers pivot to internal networks. We’ve seen parallels in aaPanel (CVE-2024-4063, similar auth bypass) and HestiaCP flaws, where panels become entry points for botnets.

Broader context: Panel vulns persist because maintainers juggle features over audits. Ajenti’s Python/JS stack invites supply-chain risks too—pip deps like passlib saw CVEs last year. Skeptical take: If you’re on Ajenti, question its fit. Alternatives like Cockpit integrate natively with systemd, dodging custom auth pitfalls. But fair: Ajenti excels in plugin extensibility; just patch fast.

Implications extend to compliance. GDPR, PCI-DSS auditors flag unpatched web panels. Crypto firms? This voids insurance if exploited—think $10K+ per incident in forensics alone.

Fix It Now

Upgrade to 2.2.15 immediately. Run:

wget https://raw.githubusercontent.com/ajenti/ajenti/2.2/master/ajenti-release.deb
sudo dpkg -i ajenti-release.deb
sudo apt update
sudo apt install ajenti -y

Verify: ajenti --version shows 2.2.15+. Post-upgrade, audit logs at /var/log/ajenti/ajenti.log for suspicious installs. Revoke non-essential auth_users, switch to PAM or LDAP. Firewall port 8000, enforce HTTPS with Let’s Encrypt.

Interim: Disable custom packages via config edit—/etc/ajenti/config.json, set "plugins.package_manager.enabled": false. Rotate creds, scan for IOCs like unexpected processes.

Bottom line: Act today. Unpatched Ajenti invites compromise. In security, delays cost servers—and wallets.

April 3, 2026 · 3 min · 5 views · Source: GitHub Security

Related