Skip to main content

BACnet Stack CVE-2026-41502

| EUVDEUVD-2026-25624 HIGH
Out-of-bounds Read (CWE-125)
2026-04-24 GitHub_M
8.7
CVSS 4.0 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify BACnet/IP device on UDP 47808
  2. Delivery
    Send crafted RPM request with 5-byte truncated object ID
  3. Exploit
    Trigger off-by-one read in rpm_decode_object_id()
  4. Execution
    Cause segmentation fault
  5. Impact
    Crash embedded device requiring reboot

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Vulnerability requires the ReadPropertyMultiple (RPM) confirmed service handler to be enabled in the BACnet Stack application-this is the default configuration in bacnet-stack reference server implementations. Exploitation succeeds against any device with network-reachable BACnet/IP services (UDP port 47808) running library versions before 1.4.3. No authentication, special user interaction, or non-default configuration is required per the CVSS vector (AV:N/AC:L/PR:N/UI:N), making this exploitable against default deployments. Exploitation is limited to denial of service impact-the one-byte out-of-bounds read does not facilitate code execution or privilege escalation on typical embedded platforms with memory protection. Devices must be processing BACnet protocol requests to be vulnerable; systems with RPM service explicitly disabled at the application layer are not affected.

Impact

Real-world risk assessment reveals moderate priority despite the high CVSS score. The CVSS v4.0 vector (AV:N/AC:L/PR:N/UI:N) confirms remote unauthenticated exploitation with low complexity, and the VA:H rating reflects the severe availability impact on embedded devices. However, several factors mitigate urgency: the vulnerability only causes a one-byte out-of-bounds read leading to denial of service rather than remote code execution (VC:N/VI:N indicates no confidentiality or integrity impact); no CISA KEV listing exists; no EPSS score is provided but absence of public weaponization suggests low observed exploitation; the affected service must be explicitly enabled (though it is default-enabled in reference implementations). The primary concern is operational disruption to critical building infrastructure-crashed BACnet devices can disable HVAC, fire systems, or physical access controls. Organizations using bacnet-stack in production embedded systems should prioritize patching, while those using vendor-supplied BACnet devices should verify firmware incorporates the fix. The confined blast radius (single-byte read) reduces likelihood of chaining with other vulnerabilities, but repeated exploitation could enable persistent availability attacks against building automation networks.

Exploit ScenarioDerived

An attacker on the building automation network or with routable access to BACnet/IP services sends a specially crafted ReadPropertyMultiple request to an embedded BACnet controller running vulnerable bacnet-stack library code. The malicious packet contains a truncated 5-byte object identifier sequence that bypasses the apdu_len validation check but triggers an out-of-bounds read when rpm_decode_object_id() accesses the sixth byte position. On memory-protected embedded systems, this causes an immediate segmentation fault and device crash, requiring manual reboot and disrupting HVAC control, lighting automation, or access control functions managed by the affected controller.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 24, 2026

Remote denial of service in BACnet Stack library versions before 1.4.3 allows unauthenticated attackers to crash embedded building automation devices by sending a malformed ReadPropertyMultiple request with a truncated object identifier. The off-by-one buffer read vulnerability triggers crashes on resource-constrained BACnet devices running the default-enabled RPM service handler. CVSS v4.0 scores this 8.7 (High) based on network attack vector and high availability impact, though no public exploit code or active exploitation has been identified at time of analysis.

RemediationAI

Upgrade BACnet Stack library to version 1.4.3 or later, which contains the vendor-released fix for the rpm_decode_object_id() bounds checking logic. The patch is available through the project's GitHub repository at https://github.com/bacnet-stack/bacnet-stack with details in security advisory GHSA-7545-3fpx-4xw3. For embedded systems requiring extensive validation cycles before firmware updates, implement compensating controls: disable the ReadPropertyMultiple service handler if RPM functionality is not operationally required (modify service handler registration in application code), or deploy network segmentation to restrict BACnet/IP traffic (UDP port 47808) to trusted building automation network segments only using firewalls or VLANs. Note that disabling RPM may break building management system integrations relying on bulk property reads for efficiency. Network filtering reduces attack surface but does not prevent exploitation from compromised devices within the trusted zone. Organizations using vendor-supplied BACnet devices should contact manufacturers to obtain firmware updates incorporating the bacnet-stack 1.4.3 library fix.

Affected VersionsENISA

bacnet-stack 1.4.0, < 1.4.3

Affected Packages

euvd bacnet_stack_1_4_0 fix: 1.4.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

BACnet (Building Automation and Control Networks) is an ASHRAE/ANSI/ISO standard protocol widely deployed in building management systems for HVAC, lighting, and access control. The bacnet-stack library provides an open-source C implementation targeting embedded systems. The vulnerability resides in the rpm_decode_object_id() function within src/bacnet/rpm.c, which handles ReadPropertyMultiple (RPM) service requests. The function implements insufficient bounds checking: it validates apdu_len < 5 but subsequently accesses array indices 0-5 (six bytes total), creating a classic off-by-one error classified as CWE-125 (Out-of-bounds Read). When processing the context tag (1 byte), object identifier (4 bytes), and opening tag validation (apdu[5]), a crafted 5-byte input passes validation but triggers a one-byte read beyond the allocated buffer boundary, exposing adjacent memory contents or causing segmentation faults on memory-protected systems.

Know when Bacnet Stack gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

GitHub Advisory PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

4
Patch released
Apr 28, 2026 - 15:35 nvd
Patch available
Patch available
Apr 24, 2026 - 21:02 EUVD
CVSS changed
Apr 24, 2026 - 20:22 NVD
8.7 (HIGH)
CVE Published
Apr 24, 2026 - 19:40 nvd
HIGH 8.7

DescriptionGitHub Advisory

BACnet Stack is a BACnet open source protocol stack C library for embedded systems. Prior to 1.4.3, an off-by-one out-of-bounds read vulnerability in bacnet-stack's ReadPropertyMultiple service decoder allows unauthenticated remote attackers to read one byte past an allocated buffer boundary by sending a crafted RPM request with a truncated object identifier. The vulnerability is in rpm_decode_object_id(), which checks apdu_len < 5 but then accesses all 6 byte positions (indices 0-5) - consuming 1 byte for the context tag, 4 bytes for the object ID, then reading apdu[5] for the opening tag check. A 5-byte input passes the length check but causes a 1-byte OOB read, leading to crashes on embedded BACnet devices. The vulnerability exists in src/bacnet/rpm.c and affects any deployment that enables the ReadPropertyMultiple confirmed service handler (enabled by default in the reference server). This vulnerability is fixed in 1.4.3.

Executive ViewAI

Why It Matters

CVE-2026-41502 is a remote denial-of-service vulnerability in BACnet Stack library (versions before 1.4.3) that allows unauthenticated attackers to crash building automation devices through malformed network requests. This affects organizations operating connected HVAC, fire suppression, access control, or other critical building systems, potentially disrupting facility operations and safety compliance.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict network access to BACnet devices using firewalls to block untrusted sources from sending ReadPropertyMultiple requests; (2) Isolate BACnet devices on dedicated network segments separate from general IT networks; (3) Disable the ReadPropertyMultiple (RPM) service handler if operationally feasible; (4) Monitor BACnet traffic logs for malformed requests with truncated object identifiers. Monitor vendor advisories from BACnet device manufacturers for patch availability.

Threat Intelligence Overview

EPSS Score
0.1%
Top 66% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy