FastNetMon Community Edition through 1.2.9 has out-of-bounds memory access because it incorrectly parses BGP path attributes with the extended length flag set. In src/bgp_protocol.hpp, the parse_raw_bgp_attribute() function correctly identifies when extended_length_bit is set and sets length_of_length_field to 2, but then reads only a single byte for the attribute value length (attribute_value_length = value[2] at line 173). Per RFC 4271 Section 4.3, when the Extended Length bit is set, the Attribute Length field is two octets and the value should be read as a 16-bit big-endian integer from value[2] and value[3]. As a result, any attribute longer than 255 bytes has its length silently truncated to the low byte (e.g., 300 bytes = 0x012C is read as 0x2C = 44 bytes). The remaining 256 bytes are then misinterpreted as subsequent attributes, causing cascading parse failures and potential out-of-bounds memory access.
Metrics
Affected Vendors & Products
References
History
Tue, 26 May 2026 17:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Pavel-odintsov
Pavel-odintsov fastnetmon |
|
| Vendors & Products |
Pavel-odintsov
Pavel-odintsov fastnetmon |
Tue, 26 May 2026 16:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Title | FastNetMon Community Edition BGP Attribute Length Parsing Vulnerability Causing OOB Access | |
| Weaknesses | CWE-119 |
Tue, 26 May 2026 15:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | FastNetMon Community Edition through 1.2.9 has out-of-bounds memory access because it incorrectly parses BGP path attributes with the extended length flag set. In src/bgp_protocol.hpp, the parse_raw_bgp_attribute() function correctly identifies when extended_length_bit is set and sets length_of_length_field to 2, but then reads only a single byte for the attribute value length (attribute_value_length = value[2] at line 173). Per RFC 4271 Section 4.3, when the Extended Length bit is set, the Attribute Length field is two octets and the value should be read as a 16-bit big-endian integer from value[2] and value[3]. As a result, any attribute longer than 255 bytes has its length silently truncated to the low byte (e.g., 300 bytes = 0x012C is read as 0x2C = 44 bytes). The remaining 256 bytes are then misinterpreted as subsequent attributes, causing cascading parse failures and potential out-of-bounds memory access. | |
| References |
|
Status: PUBLISHED
Assigner: mitre
Published:
Updated: 2026-05-26T15:22:07.299Z
Reserved: 2026-05-22T00:00:00.000Z
Link: CVE-2026-48685
No data.
Status : Received
Published: 2026-05-26T16:16:26.570
Modified: 2026-05-26T16:16:26.570
Link: CVE-2026-48685
No data.
OpenCVE Enrichment
Updated: 2026-05-26T17:00:11Z