FastNetMon Community Edition through 1.2.9 contains multiple out-of-bounds reads in the BGP MP_REACH_NLRI IPv6 attribute decoder. The function decode_mp_reach_ipv6() in src/bgp_protocol.cpp contains a TODO comment at line 156 explicitly acknowledging 'we should add sanity checks to avoid reads after attribute memory block.' The function casts raw pointers to structure types without verifying sufficient data exists (line 158), uses the attacker-controlled length_of_next_hop field to determine memcpy size (line 181), and computes prefix_length by dereferencing a pointer calculated from multiple attacker-controlled offsets without bounds validation (line 189). The prefix_length is then used to calculate number_of_bytes_required_for_prefix which becomes a memcpy length (line 202) with no check against remaining buffer size.
Metrics
Affected Vendors & Products
References
History
Wed, 27 May 2026 00:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Title | Out-of-Bounds Read in FastNetMon BGP IPv6 Parser |
Tue, 26 May 2026 23:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Title | FastNetMon Community Edition BGP MP_REACH_NLRI IPv6 Decoder Out-of-Bounds Read | |
| Weaknesses | CWE-200 |
Tue, 26 May 2026 21:30:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
cvssV3_1
|
Tue, 26 May 2026 16:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Title | FastNetMon Community Edition BGP MP_REACH_NLRI IPv6 Decoder Out-of-Bounds Read | |
| First Time appeared |
Pavel-odintsov
Pavel-odintsov fastnetmon |
|
| Weaknesses | CWE-125 CWE-200 |
|
| Vendors & Products |
Pavel-odintsov
Pavel-odintsov fastnetmon |
Tue, 26 May 2026 15:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | FastNetMon Community Edition through 1.2.9 contains multiple out-of-bounds reads in the BGP MP_REACH_NLRI IPv6 attribute decoder. The function decode_mp_reach_ipv6() in src/bgp_protocol.cpp contains a TODO comment at line 156 explicitly acknowledging 'we should add sanity checks to avoid reads after attribute memory block.' The function casts raw pointers to structure types without verifying sufficient data exists (line 158), uses the attacker-controlled length_of_next_hop field to determine memcpy size (line 181), and computes prefix_length by dereferencing a pointer calculated from multiple attacker-controlled offsets without bounds validation (line 189). The prefix_length is then used to calculate number_of_bytes_required_for_prefix which becomes a memcpy length (line 202) with no check against remaining buffer size. | |
| References |
|
Status: PUBLISHED
Assigner: mitre
Published: 2026-05-26T00:00:00.000Z
Updated: 2026-05-26T20:52:49.002Z
Reserved: 2026-05-22T00:00:00.000Z
Link: CVE-2026-48688
Updated: 2026-05-26T20:51:41.423Z
Status : Undergoing Analysis
Published: 2026-05-26T16:16:26.903
Modified: 2026-05-26T21:16:42.763
Link: CVE-2026-48688
No data.
ReportizFlow