Severity by source
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
8DescriptionGitHub Advisory
BACnet Stack is a BACnet open source protocol stack C library for embedded systems. Prior to 1.4.3, an out-of-bounds read vulnerability in bacnet-stack's WritePropertyMultiple service decoder allows unauthenticated remote attackers to read past allocated buffer boundaries by sending a truncated WPM request. The vulnerability stems from wpm_decode_object_property() calling the deprecated decode_tag_number_and_value() function, which performs no bounds checking on the input buffer. A crafted BACnet/IP packet with a truncated property payload causes the decoder to read 1-7 bytes past the end of the buffer, leading to crashes or information disclosure on embedded BACnet devices. This vulnerability is fixed in 1.4.3.
AnalysisAI
Out-of-bounds read in BACnet Stack library versions before 1.4.3 allows unauthenticated remote attackers to crash embedded BACnet devices or disclose memory contents by sending malformed WritePropertyMultiple (WPM) service requests over BACnet/IP. The flaw affects building automation and industrial control systems using the vulnerable C library. No public exploit identified at time of analysis, though the CVSS v4.0 score of 8.7 reflects high availability impact and network-accessible attack surface with low complexity.
Technical ContextAI
BACnet (Building Automation and Control Networks) is an ASHRAE/ISO protocol widely deployed in HVAC, lighting, fire safety, and industrial control systems. The bacnet-stack library provides an open-source C implementation for embedded devices. The vulnerability resides in the WritePropertyMultiple (WPM) service decoder function wpm_decode_object_property(), which calls the deprecated decode_tag_number_and_value() helper. This legacy function lacks input buffer boundary validation, a classic CWE-125 out-of-bounds read condition. When processing BACnet/IP packets (UDP port 47808 by default), a truncated property payload causes the decoder to read 1-7 bytes beyond the allocated buffer, triggering undefined behavior ranging from process crashes to memory content leakage. The affected CPE indicates all versions prior to 1.4.3 across all platforms.
RemediationAI
Upgrade BACnet Stack library to version 1.4.3 or later, which replaces the deprecated decode_tag_number_and_value() function with bounds-checked parsing logic. Obtain the patched version from the official GitHub repository at https://github.com/bacnet-stack/bacnet-stack and rebuild affected applications. For systems where immediate patching is infeasible, implement network-level compensating controls: restrict BACnet/IP traffic (UDP port 47808) to trusted building automation network segments using firewall ACLs or VLANs, deploy intrusion detection signatures for malformed WPM service requests with truncated payloads, and disable WritePropertyMultiple service support if not operationally required (trade-off: loss of batch property updates, may impact building management workflows). Monitor embedded device logs for unexpected restarts or parser errors as potential exploitation indicators. Inventory all BACnet-enabled devices to identify affected library versions, as many embedded systems do not expose version information via standard interfaces.
More in Bacnet Stack
View allUnauthenticated remote attackers can crash BACnet Stack prior to versions 1.5.0rc4 and 1.4.3rc2 by sending a malformed W
BACnet Protocol Stack library provides a BACnet application layer, network layer and media access (MAC) layer communicat
BACnet Stack is a BACnet open source protocol stack C library for embedded systems. [CVSS 7.5 HIGH]
The BACnet Protocol Stack library versions 1.4.2 and earlier contain an off-by-one buffer overflow in the ubasic interpr
Remote attackers can crash BACnet Stack-powered embedded devices (versions prior to 1.4.3) by sending malformed ReadProp
Remote denial of service in BACnet Stack library versions before 1.4.3 allows unauthenticated attackers to crash embedde
BACnet Stack prior to version 1.4.3 exhibits undefined behavior in the decode_signed32() function when processing signed
Same weakness CWE-125 – Out-of-bounds Read
View allSame technique Buffer Overflow
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-25621