BACnet Stack: Undefined-behavior signed left shift in `decode_signed32()`
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- None · None · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA.
Summary
BACnet Stack is a BACnet open source protocol stack C library for embedded systems. Prior to 1.4.3, decode_signed32() in src/bacnet/bacint.c reconstructs a 32-bit signed integer from four APDU bytes using signed left shifts. When any of the four bytes has bit 7 set (value ≥ 0x80), the left-shift operation overflows a signed int32_t, which is undefined behavior per the C standard. This is flagged thousands of times per minute by UndefinedBehaviorSanitizer on any BACnet input containing signed-integer property values with high-bit-set bytes. This vulnerability is fixed in 1.4.3.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| bacnet-stack | bacnet-stack | before 1.4.3 | 1.4.3 | Patch available | CNA |
- bacnet-stack Vendorbacnet-stack Affected before 1.4.3 Fixed in 1.4.3 Patch available CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:bacnetstack:bacnet_stack:*:*:*:*:*:*:*:* | before 1.4.3 | Vulnerable | bacnet-stack |
- cpe:2.3:a:bacnetstack:bacnet_stack:*:*:*:*:*:*:*:* Versions before 1.4.3 Vulnerable ·bacnet-stack
Remediation
- Fix · CNA bacnet-stack (bacnet-stack) Fixed in 1.4.3
Timeline
- 2026-10-02 Threatist record created from CVE-2026-40279
References
More bacnet-stack Bacnet Stack vulnerabilities
- TI-2026-30089 BACnet Stack: Out-of-Bounds Read in ReadPropertyMultiple Property Decoder via Deprecated Tag Parser CVSS 4.0HIGH 8.7
- TI-2026-30088 BACnet Stack: Off-by-One Out-of-Bounds Read in ReadPropertyMultiple Object ID Decoder CVSS 4.0HIGH 8.7
- TI-2026-30063 BACnet Stack: Out-of-Bounds Read in WritePropertyMultiple Decoder via Deprecated Tag Parser CVSS 4.0HIGH 8.7
- TI-2026-21234 BACnet Stack WriteProperty decoding length underflow leads to OOB read and crash CVSS 4.0HIGH 7.8
- TI-2026-17579 BACnet Stack Improperly Limits Pathnames to a Restricted Directory CVSS 3.1HIGH 7.5
- TI-2025-41018 BACnet-stack MS/TP reply matcher OOB read CVSS 3.1HIGH 7.5
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences