CVE-2026-97692: BACnet Stack: pre-auth out-of-bounds read that escalates to an out-of-bounds write into global memory

Published Nov 13, 2026
·
Updated

BACnet Stack is a BACnet open source protocol stack C library for embedded systems. Prior to versions 1.4.6, 1.5.2, and 1.6.1, the BACnet/SC message decoder walks the header-option list by following each option's MORE bit. Nothing rejects a list whose last option still has the MORE bit set, and the decode walk has no upper bound on how many options it processes. A single crafted BVLC-SC frame makes the walk advance one option past the end of the message and read message[messagelen], one byte out of bounds. When the bytes after the message carry more MORE-set option markers, the walk keeps going: it runs past the fixed 4-entry option array and writes decoded option fields out of bounds. On the server that decode array is the static global bscdm, so the out-of-bounds write lands in adjacent BSS. Both faults are reachable before authentication, from the first frame a peer sends on a BACnet/SC connection, and the bytes that follow the message are the same peer's prior-frame data. This issue has been patched in versions 1.4.6, 1.5.2, 1.6.1, and 1.7.0.

Affected Software

1 affected component
BACnet Stack<1.4.6, <1.5.2, <1.6.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 1.4.6
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 1.5.2
  3. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 1.6.1
  4. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 1.7.0

Event History

Nov 13, 2026
CVE Published
via MITRE·06:42 PM
Data Sourced
via MITRE·06:42 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Deployments using the BACnet/SC message decoder in BACnet Stack versions before 1.4.6, 1.5.2, or 1.6.1 are affected. The server-side decode array is a static global, so server deployments can experience writes into adjacent BSS memory.

2

Does an attacker need credentials or a prior authenticated session?

No. Both the out-of-bounds read and the subsequent out-of-bounds writes are reachable before authentication, starting with the first frame a peer sends on a BACnet/SC connection.

3

What conditions are required to trigger the out-of-bounds write?

An attacker sends a crafted BVLC-SC frame whose final header option retains the MORE bit. If bytes after the message contain additional MORE-set option markers, the decoder continues past its fixed four-entry option array and writes decoded fields out of bounds.

4

Which versions contain the fix?

The issue is patched in versions 1.4.6, 1.5.2, 1.6.1, and 1.7.0.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203