Vulnerability Details CVE-2026-21870
BACnet Protocol Stack library provides a BACnet application layer, network layer and media access (MAC) layer communications services. In 1.4.2, 1.5.0.rc2, and earlier, an off-by-one stack-based buffer overflow in the ubasic interpreter causes a crash (SIGABRT) when processing string literals longer than the buffer limit. The tokenizer_string function in src/bacnet/basic/program/ubasic/tokenizer.c incorrectly handles null termination for maximum-length strings. It writes a null byte to dest[40] when the buffer size is only 40 (indices 0-39), triggering a stack overflow.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.0
EPSS Ranking 1.7%
CVSS Severity
CVSS v3 Score 5.5
Products affected by CVE-2026-21870
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.6
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.7
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.8
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.0.9
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.1.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.1.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.2.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.2.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.2.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.2.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.2.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.2.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.2.6
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.3.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.3.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.3.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.3.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.3.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.3.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.3.6
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.4.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.4.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.4.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.4.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.4.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.4.6
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.4.7
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.6
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.7
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.8
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.5.9
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.6.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.6.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.6.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.6.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.6.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.6.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.7.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.7.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.7.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.8.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.8.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.8.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.8.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.8.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.8.6
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.8.7
-
cpe:2.3:a:bacnetstack:bacnet_stack:0.9.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.0.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.1.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.1.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.1.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.2.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.3
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.4
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.5
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.6
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.7
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.3.8
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.4.0
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.4.1
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.4.2
-
cpe:2.3:a:bacnetstack:bacnet_stack:1.5.0