GHSA-2fwp-32cj-g3x4: BACnet Stack: Uninitialized Value Use in AtomicReadFile-ACK Record-Access Encoder Causes Response Corruption and Conditional Information Disclosure
BACnet Stack is a BACnet open source protocol stack C library for embedded systems. From versions 1.4.0 to before 1.4.4, and 1.5.0 to before 1.5.1, an uninitialized value use vulnerability in bacnet-stack's AtomicReadFile record-access ACK encoder allows unauthenticated remote attackers to corrupt the encoded OCTET STRING length and payload boundary in network responses by sending a crafted AtomicReadFile request that reaches a successful record-access path. This issue has been patched in versions 1.4.4 and 1.5.1.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.4.4 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.5.1
Event History
Frequently Asked Questions
Which deployments are affected?
BACnet Stack versions 1.4.0 through 1.4.3 and 1.5.0 are affected. The issue is fixed in versions 1.4.4 and 1.5.1.
What must an attacker do to trigger the issue?
An unauthenticated remote attacker must send a crafted AtomicReadFile request that reaches a successful record-access processing path. No privileges or user interaction are required.
What is the practical impact of successful exploitation?
The crafted request can corrupt the encoded OCTET STRING length and payload boundary in the response. This can conditionally disclose information through the malformed network response.
What should be done if affected versions are in use?
Upgrade to BACnet Stack 1.4.4 or 1.5.1, as appropriate for the deployed release line.