CVE-2024-22117
NoneCVSS
—
EPSS
0.5%
Published
Nov 26, 2024
CISA due date
—
Cloudanix analysis
A flaw in how the monitoring tool assigns numbers to new web links on maps lets one user block everyone else from adding more links, disrupting team updates to monitoring views.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Application
- Class
- Race Condition
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability allows manipulation of the sequential sysmapelementurlid assignment logic during URL insertion into map elements; an attacker can force an ID collision by manually supplying sysmapelementurlid + 1, causing subsequent legitimate inserts to fail because the application always reads the current maximum ID before incrementing.
Why it matters to the business
Teams lose the ability to collaboratively maintain network maps and linked URLs inside Zabbix, which can delay monitoring configuration changes and increase operational friction for organizations relying on dynamic map elements.
How an attack unfolds
An authenticated user with map-editing rights obtains the current highest sysmapelementurlid from the database, then submits a new URL while supplying a fabricated higher value; the application stores the supplied ID, so every later attempt by any user to add another URL reads the inflated ID and the next increment is already taken, blocking further additions.
How to fix it
Upgrade Zabbix to the commit f383737f1083e25756c6afaaa8abff05ad11eb50 or later; the fix replaces the read-increment-store pattern with an atomic database sequence or transaction-guarded insert that eliminates the manual-ID bypass.
How to confirm the fix worked
After upgrade, confirm that concurrent URL additions to the same map element succeed without manual ID manipulation and that the database no longer permits direct insertion of an arbitrary sysmapelementurlid that skips future legitimate increments.
Typical attack path
- Obtain map edit permissions in Zabbix
- Query the current maximum sysmapelementurlid for the target map element
- Submit a new URL record while supplying sysmapelementurlid + 1
- Observe that subsequent URL additions by any user fail with duplicate-key or constraint errors
How to detect it
Search application and database logs for insert attempts into the sysmapelementurl table that contain manually supplied sysmapelementurlid values; look for sequences of failed inserts due to duplicate key violations immediately after a single record with an out-of-sequence ID appears.
What your security team should do
- Apply the fixed commit immediately on all Zabbix instances that allow map editing
- Restrict map-editing privileges to the smallest possible set of trusted accounts
- Monitor database audit logs for unexpected sysmapelementurlid values that exceed normal sequential growth
- Test map-element URL insertion under concurrent load after patching to verify atomic behavior
The record
When a URL is added to the map element, it is recorded in the database with sequential IDs. Upon adding a new URL, the system retrieves the last sysmapelementurlid value and increments it by one. However, an issue arises when a user manually changes the sysmapelementurlid value by adding sysmapelementurlid + 1. This action prevents others from adding URLs to the map element.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | zabbix | 0 | 1:5.0.44+dfsg-1+deb11u1 |
| Debian:12 | zabbix | 0 | No fix |
| Debian:13 | zabbix | 0 | 1:7.0.5+dfsg-1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | zabbix | 0 | 4.0.12-4.32.1 |
| Ubuntu:20.04:LTS | zabbix | 0 | No fix |
| Ubuntu:22.04:LTS | zabbix | 0 | No fix |
| Ubuntu:24.10 | zabbix | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | zabbix | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | zabbix | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | zabbix | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | zabbix | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | zabbix | 0 | No fix |
Related vulnerabilities
- CVE-2024-36465 A low privilege (regular) Zabbix user with API access can use SQL injection vulnerability… Also affects zabbix
- CVE-2024-36464 When exporting media types, the password is exported in the YAML in plain text. Also affects zabbix
- CVE-2024-42330 The HttpRequest object allows to get the HTTP headers from the server's response after… Also affects zabbix
- CVE-2024-42333 The researcher is showing that it is possible to leak a small amount of Zabbix Server… Also affects zabbix
- CVE-2024-42332 The researcher is showing that due to the way the SNMP trap log is parsed, an attacker… Also affects zabbix
- CVE-2024-42331 In the src/libs/zbxembed/browser.c file, the es_browser_ctor method retrieves a heap… Also affects zabbix
- CVE-2024-36467 An authenticated user with API access (e.g.: user with default User role), more… Also affects zabbix
- CVE-2024-36463 The implementation of atob in "Zabbix JS" allows to create a string with arbitrary… Also affects zabbix