Atomic-Read-File RecordCount Stack-Based Out-of-Bounds Write in bacnet-stack
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| bacnet-stack | bacnet-stack | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bacnetstack | Bacnet Stack |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
No EPSS score available.
Key SSVC decision points have not yet been added.
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Bacnetstack
Bacnetstack bacnet Stack |
|
| Vendors & Products |
Bacnetstack
Bacnetstack bacnet Stack |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | BACnet Stack is a BACnet open source protocol stack C library for embedded systems. Prior to versions 1.4.4 and 1.5.1, there is a stack-based out-of-bounds write / stack-buffer-overflow in bacnet-stack when the server processes a malicious Atomic-Read-File request in record access mode. The bug is triggered on the real server side. A crafted request can set an excessively large RecordCount, which is later used as the loop bound for writing record data into a stack-allocated BACNET_ATOMIC_READ_FILE_DATA data structure. However, the stack object only has space for one fileData element. When the loop reaches i = 1, the code computes &data->fileData[1], which is already out of bounds, and the resulting invalid pointer is passed down to memmove(), causing a stack-buffer-overflow. This issue has been patched in versions 1.4.4 and 1.5.1. | |
| Title | Atomic-Read-File RecordCount Stack-Based Out-of-Bounds Write in bacnet-stack | |
| Weaknesses | CWE-121 | |
| References |
| |
| Metrics |
cvssV3_1
|