CVE-2024-36845
Medium · 4.3CVSS
4.3
EPSS
0.5%
Published
May 31, 2024
CISA due date
—
Cloudanix analysis
A bug in software that talks to industrial machines can be triggered by bad data to make those systems stop working, causing downtime.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Invalid pointer dereference in the modbus_receive() function of libmodbus allows a crafted message to trigger a crash, resulting in denial of service.
Why it matters to the business
Disruption of Modbus-based industrial control and automation systems, leading to operational downtime and potential process interruptions in environments relying on the library.
How an attack unfolds
An attacker sends a specially crafted message to a libmodbus instance or the unit-test-server, causing the invalid pointer access in modbus_receive() that crashes the service.
How to fix it
Upgrade libmodbus to a patched release that corrects pointer validation in modbus_receive(). Apply vendor updates across all deployments and test in staging before production rollout.
How to confirm the fix worked
Confirm the deployed libmodbus version includes the fix. Replay non-malicious and boundary-case Modbus messages in a controlled environment to verify the service no longer crashes.
Typical attack path
- Locate publicly reachable or internal libmodbus-based services
- Craft a malicious Modbus message targeting the receive function
- Transmit the message to trigger the invalid pointer dereference
- Observe service crash and repeat to sustain denial of service
How to detect it
Inspect process and application logs for unexpected terminations of services using libmodbus that coincide with inbound Modbus traffic. Correlate crash timestamps with network captures on Modbus ports.
What your security team should do
- Apply available libmodbus updates immediately in all environments
- Restrict network access to Modbus services using firewalls or segmentation
- Enable logging of Modbus traffic and process crashes for monitoring
The record
An invalid pointer in the modbus_receive() function of libmodbus v3.1.6 allows attackers to cause a Denial of Service (DoS) via a crafted message sent to the unit-test-server.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | libmodbus | 0 | No fix |
| Debian:11 | libmodbus | 0 | 3.1.6-2+deb11u1 |
| Debian:12 | libmodbus | 0 | No fix |
| Debian:13 | libmodbus | 0 | No fix |
| Ubuntu:20.04:LTS | libmodbus | 0 | No fix |
| Ubuntu:22.04:LTS | libmodbus | 0 | No fix |
| Ubuntu:24.04:LTS | libmodbus | 0 | No fix |
| Ubuntu:24.10 | libmodbus | 0 | No fix |
| Ubuntu:25.04 | libmodbus | 0 | No fix |
| Ubuntu:25.10 | libmodbus | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | libmodbus | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | libmodbus | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | libmodbus | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | libmodbus | 0 | No fix |
Related vulnerabilities
- CVE-2024-36844 libmodbus v3.1.6 was discovered to contain a use-after-free via the ctx->backend pointer. Also affects libmodbus
- CVE-2024-36843 libmodbus v3.1.6 was discovered to contain a heap overflow via the modbus_mapping_free()… Also affects libmodbus
- CVE-2024-34244 libmodbus v3.1.10 is vulnerable to Buffer Overflow via the modbus_write_bits function. Also affects libmodbus
- CVE-2023-26793 libmodbus v3.1.10 has a heap-based buffer overflow vulnerability in read_io_status… Also affects libmodbus
- CVE-2026-113795 pypdf is a free and open-source pure-python PDF library. CWE-400
- CVE-2026-83400 Vulnerability in the Oracle Java SE, Oracle GraalVM for JDK, Oracle GraalVM Enterprise… CWE-400
- CVE-2026-112400 Pillow is a Python imaging library. CWE-400
- CVE-2026-111766 markdown-it is a Markdown parser. CWE-400