FastNetMon Community Edition w wersji do 1.2.9 zawiera błąd off-by-one prowadzący do heap-based buffer overflow w klasie dynamic_binary_buffer_t. Podatność pozwala atakującemu na zdalne wykonanie kodu przez wysłanie spreparowanego ruchu sieciowego do instancji FastNetMon.
▸ Pokaż oryginał (EN)
FastNetMon Community Edition through 1.2.9 contains an off-by-one heap-based buffer overflow in the dynamic_binary_buffer_t class (src/dynamic_binary_buffer.hpp). Five methods (append_dynamic_buffer, append_data_as_pointer, append_data_as_object_ptr, memcpy_from_ptr, memcpy_from_object_ptr) use an incorrect bounds check of the form 'if (offset + length > maximum_internal_storage_size + 1)' instead of the correct 'if (offset + length > maximum_internal_storage_size)'. This allows writing exactly one byte past the end of the heap-allocated buffer. The class is used pervasively in BGP message encoding/decoding, NetFlow template processing, and Flow Spec NLRI construction. An attacker who can send network traffic (NetFlow, sFlow, IPFIX, or BGP) to a FastNetMon instance can trigger this overflow, potentially achieving arbitrary code execution by corrupting heap metadata. Notably, the append_byte() method uses the correct bounds check, confirming the inconsistency.
Pięć metod klasy dynamic_binary_buffer_t (append_dynamic_buffer, append_data_as_pointer, append_data_as_object_ptr, memcpy_from_ptr, memcpy_from_object_ptr) stosuje błędne sprawdzenie warunków granicznych w postaci 'if (offset + length > maximum_internal_storage_size + 1)' zamiast poprawnego 'if (offset + length > maximum_internal_storage_size)'. Skutkuje to możliwością zapisania dokładnie jednego bajtu poza końcem bufora alokowanego na stercie (heap). Klasa ta jest szeroko używana podczas kodowania i dekodowania wiadomości BGP, przetwarzania szablonów NetFlow oraz budowania komunikatów Flow Spec NLRI. Atakujący może wywołać przepełnienie poprzez wysłanie spreparowanych pakietów NetFlow, sFlow, IPFIX lub BGP do podatnej instancji FastNetMon, co może prowadzić do uszkodzenia metadanych sterty i w konsekwencji do wykonania dowolnego kodu.
Atakujący bez uwierzytelnienia, zdalnie, może doprowadzić do wykonania dowolnego kodu (RCE) na serwerze z uruchomionym FastNetMon poprzez uszkodzenie metadanych sterty. Możliwa jest również utrata poufności, integralności i dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do instancji FastNetMon (NetFlow, sFlow, IPFIX, BGP) wyłącznie do zaufanych źródeł przy użyciu reguł firewall.
FastNetMon Community Edition w wersji do 1.2.9 włącznie (produkt: Pavel-Odintsov FastNetMon)
Podatność dotyczy wyłącznie edycji Community Edition. Błąd został potwierdzony przez fakt, że metoda append_byte() stosuje poprawne sprawdzenie warunków granicznych, co jednoznacznie wskazuje na niespójność implementacji w pozostałych pięciu metodach. Szczegóły techniczne opublikowane pod adresem lorikeetsecurity.com/blog/fastnetmon-cve-2026-48689-dynamic-buffer-off-by-one.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HPavel Odintsov Fastnetmon
APPPavel-Odintsov≤ 1.2.9
Powiązane podatności
FastNetMon: integer overflow w enkodowaniu BGP AS_PATH prowadzący do heap buffer overflow
Stack buffer overflow w FastNetMon — RCE przez BGP NLRI
Command injection w pluginie Juniper FastNetMon Community Edition
FastNetMon Community Edition through 1.2.9 contains an integer overflow vulnerability in the packet capture bu...
FastNetMon Community Edition through 1.2.9 contains multiple out-of-bounds reads in the BGP MP_REACH_NLRI IPv6...