CVE-2024-34340
Critical · 9.1CVSS
9.1
EPSS
1.1%
Published
May 14, 2024
CISA due date
—
Cloudanix analysis
A flaw in the way the monitoring tool checks passwords lets attackers log in without knowing the real password, giving them full access to sensitive network information.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- Application
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The compat_password_verify function performs a loose equality comparison ($md5 == $hash) between an MD5 hash of user-supplied input and the stored password hash, enabling type juggling that can authenticate an attacker without the correct password.
Why it matters to the business
Attackers can gain unauthorized access to the monitoring platform, exposing operational data, network topology, and device credentials while bypassing all authentication controls.
How an attack unfolds
An unauthenticated attacker submits a crafted password value during login; the server computes its MD5 and compares it loosely to the database hash; type juggling causes the comparison to succeed, granting a valid session without knowledge of the real password.
How to fix it
Upgrade Cacti to version 1.2.27 or later; on Debian 11 apply the fixed package version 5.10.191-1 for the affected component.
How to confirm the fix worked
Confirm the installed Cacti version is 1.2.27 or newer; verify that password verification logic uses strict comparison (===) or modern password_hash/password_verify functions.
Typical attack path
- Identify a Cacti login endpoint
- Craft a password input that triggers MD5 type juggling against the stored hash
- Submit the value via the authentication form
- Obtain a valid authenticated session
- Access or modify monitoring data and device configurations
How to detect it
Review web server and application logs for successful authentication events without corresponding failed attempts or from unexpected source IPs; look for login requests containing numeric or specially formatted password fields around the time of the vulnerability disclosure.
What your security team should do
- Immediately upgrade all Cacti instances to the fixed version
- Audit authentication logs for anomalous successful logins prior to the upgrade
- Restrict network access to the Cacti web interface until patched
- Review stored password hashes and consider forcing password resets after remediation
The record
Cacti provides an operational monitoring and fault management framework. Prior to version 1.2.27, Cacti calls `compat_password_hash` when users set their password. `compat_password_hash` use `password_hash` if there is it, else use `md5`. When verifying password, it calls `compat_password_verify`. In `compat_password_verify`, `password_verify` is called if there is it, else use `md5`. `password_verify` and `password_hash` are supported on PHP < 5.5.0, following PHP manual. The vulnerability is in `compat_password_verify`. Md5-hashed user input is compared with correct password in database by `$md5 == $hash`. It is a loose comparison, not `===`. It is a type juggling vulnerability. Version 1.2.27 contains a patch for the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | cacti | 0 | 1.2.16+ds1-2+deb11u4 |
| Debian:12 | cacti | 0 | 1.2.24+ds1-1+deb12u3 |
| Debian:13 | cacti | 0 | 1.2.27+ds1-1 |
| SUSE:Package Hub 12 | cacti | 0 | 1.2.27-bp155.2.9.1 |
| SUSE:Package Hub 12 | cacti-spine | 0 | 1.2.27-bp155.2.9.1 |
| SUSE:Package Hub 15 SP5 | cacti | 0 | 1.2.27-bp155.2.9.1 |
| SUSE:Package Hub 15 SP5 | cacti-spine | 0 | 1.2.27-bp155.2.9.1 |
| SUSE:Package Hub 15 SP6 | cacti | 0 | 1.2.27-bp156.2.3.1 |
| SUSE:Package Hub 15 SP6 | cacti-spine | 0 | 1.2.27-bp156.2.3.1 |
| Ubuntu:20.04:LTS | cacti | 0 | No fix |
| Ubuntu:20.04:LTS | cacti | 0 | 1.2.10+ds1-1ubuntu1.1 |
| Ubuntu:22.04:LTS | cacti | 0 | No fix |
| Ubuntu:22.04:LTS | cacti | 0 | 1.2.19+ds1-2ubuntu1.1 |
| Ubuntu:24.04:LTS | cacti | 0 | No fix |
| Ubuntu:24.04:LTS | cacti | 0 | 1.2.26+ds1-1ubuntu0.1 |
| Ubuntu:Pro:14.04:LTS | cacti | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | cacti | 0 | 0.8.8b+dfsg-5ubuntu0.2+esm2 |
| Ubuntu:Pro:16.04:LTS | cacti | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | cacti | 0 | 0.8.8f+ds1-4ubuntu4.16.04.2+esm2 |
| Ubuntu:Pro:18.04:LTS | cacti | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | cacti | 0 | 1.1.38+ds1-1ubuntu0.1~esm3 |
| openSUSE:Leap 15.5 | cacti | 0 | 1.2.27-bp155.2.9.1 |
| openSUSE:Leap 15.5 | cacti-spine | 0 | 1.2.27-bp155.2.9.1 |
| openSUSE:Leap 15.6 | cacti | 0 | 1.2.27-bp156.2.3.1 |
| openSUSE:Leap 15.6 | cacti-spine | 0 | 1.2.27-bp156.2.3.1 |
| openSUSE:Tumbleweed | cacti | 0 | 1.2.27-1.1 |
Related vulnerabilities
- CVE-2025-24367 Cacti is an open source performance and fault management framework. Also affects cacti
- CVE-2024-54146 Cacti is an open source performance and fault management framework. Also affects cacti
- CVE-2024-48910 DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. Also affects cacti
- CVE-2024-47875 DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. Also affects cacti
- CVE-2024-43365 Cacti is an open source performance and fault management framework. Also affects cacti
- CVE-2024-43364 Cacti is an open source performance and fault management framework. Also affects cacti
- CVE-2024-43362 Cacti is an open source performance and fault management framework. Also affects cacti
- CVE-2024-43363 Cacti is an open source performance and fault management framework. Also affects cacti