CVE-2026-48689
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 48 - wyżej niż 48% wszystkich znanych CVE
Streszczenie
FastNetMon Community Edition do wersji 1.2.9 zawiera przepełnienie bufora sterty o jeden bajt w klasie dynamic_binary_buffer_t. Pięć metod używa nieprawidłowego sprawdzenia granic, co pozwala na zapis o jeden bajt poza przydzielonym buforem. Atakujący wysyłający ruch sieciowy (NetFlow, sFlow, IPFIX lub BGP) może wywołać to przepełnienie, potencjalnie prowadząc do zdalnego wykonania kodu.
Ocena ryzyka
Atakujący może wykorzystać tę podatność do uszkodzenia pamięci sterty i uzyskania zdalnego wykonania kodu na serwerze FastNetMon, co może prowadzić do pełnej kompromitacji systemu monitorującego.
Rekomendacja
Należy zaktualizować FastNetMon Community Edition do wersji 1.2.10 lub nowszej, gdy tylko będzie dostępna, oraz ograniczyć dostęp do usług sieciowych tylko do zaufanych źródeł.
Inne podatności w FastNetMon
Zobacz wszystkie- CVE-2026-48691Krytyczne
Przepełnienie liczby całkowitej w FastNetMon Community Edition do wersji 1.2.9 w enkoderze atrybutu BGP AS_PATH prowadzi do przepełnienia bufora sterty.
- CVE-2026-48687Krytyczne
FastNetMon Community Edition do wersji 1.2.9 zawiera podatność na wstrzykiwanie poleceń systemu operacyjnego w pluginie integracji z routerami Juniper. Funkcja _log() w pliku src/juniper_plugin/fastnetmon_juniper.php (linie 117-118) konstruuje polecenia powłoki poprzez konkatenację parametru $msg bezpośrednio w wywołaniach exec(). Parametr $msg zawiera niesanetyzowane dane pochodzące z argumentów wiersza poleceń argv[1] do argv[3], reprezentujących adres IP ataku, kierunek i siłę.
- CVE-2026-48686Krytyczne
FastNetMon Community Edition do wersji 1.2.9 zawiera przepełnienie bufora na stosie w dekoderze BGP NLRI. Funkcja decode_bgp_subnet_encoding_ipv4_raw() w src/bgp_protocol.cpp odczytuje prefix_bit_length bezpośrednio z pakietu BGP bez walidacji, czy jest <= 32 dla prefiksów IPv4. Wartość ta jest przekazywana do how_much_bytes_we_need_for_storing_certain_subnet_mask(), która oblicza ceil(prefix_bit_length / 8), zwracając do 32 bajtów dla prefix_bit_length równego 255. Wynik jest używany jako argument długości w memcpy() kopiującym do 4-bajtowej zmiennej stosowej uint32_t (prefix_ipv4), powodując przepełnienie bufora o maksymalnie 28 bajtów, co może być wykorzystane do wykonania dowolnego kodu. Dodatkowo, niezweryfikowany prefix_bit_length jest przekazywany do convert_cidr_to_binary_netmask_local_function_copy(), gdzie przesunięcie (32 - cidr) z cidr > 32 powoduje niezdefiniowane zachowanie.
- CVE-2026-48682Średnie
FastNetMon Community Edition do wersji 1.2.9 zawiera odczyt poza zakresem w parserze pakietów IPv4. W pliku src/simple_packet_parser_ng.cpp, po walidacji, że pakiet zawiera co najmniej 20 bajtów, kod przesuwa wskaźnik o 4 * IHL bez sprawdzenia, czy IHL >= 5 i czy dostępne są odpowiednie bajty. IHL o wartości 15 przy tylko 20 bajtach powoduje odczyt 40 bajtów poza zakresem; IHL 0-4 prowadzi do błędnej interpretacji nagłówków.
- CVE-2026-48696Średnie
FastNetMon Community Edition do wersji 1.2.9 zawiera przepełnienie bufora. Jest to inna podatność niż CVE-2026-48686 i CVE-2026-48689.
- CVE-2026-48695Wysokie
FastNetMon Community Edition do wersji 1.2.9 zawiera podatność na wstrzykiwanie poleceń systemu operacyjnego w pluginie integracji z routerami MikroTik. Funkcja _log() w pliku src/mikrotik_plugin/fastnetmon_mikrotik.php (linie 107-108) konstruuje polecenia powłoki poprzez konkatenację parametru $msg bezpośrednio w wywołaniu exec(). Atakujący, który może wpływać na wartości argv[], może wstrzyknąć dowolne polecenia powłoki.
- CVE-2026-48694Wysokie
FastNetMon Community Edition do wersji 1.2.9 zawiera podatność iniekcji konfiguracji w pluginie integracji z routerami Juniper. Zmienna $IP_ATTACK (z argv[1]) jest bezpośrednio interpolowana do komend NETCONF bez walidacji, co pozwala atakującemu na wstrzyknięcie dodatkowych komend CLI Junipera poprzez znaki nowej linii. Może to prowadzić do modyfikacji tablic routingu, filtrów firewall, kont użytkowników i innych elementów konfiguracji.
- CVE-2026-48693Średnie
Podatność w FastNetMon Community Edition do wersji 1.2.9. Lokalny atakujący może wykorzystać przewidywalne ścieżki plików w /tmp do nadpisania dowolnych plików jako użytkownik FastNetMon (zazwyczaj root).
- CVE-2026-48692Wysokie
FastNetMon Community Edition do wersji 1.2.9 udostępnia serwer gRPC na porcie 50052 bez uwierzytelnienia. Atakujący z dostępem sieciowym może wykonywać krytyczne operacje, takie jak banowanie IP, odbanowywanie ataków oraz uruchamianie skryptów zewnętrznych.
- CVE-2026-48688Wysokie
FastNetMon Community Edition do wersji 1.2.9 zawiera wiele odczytów poza zakresem w dekoderze atrybutów BGP MP_REACH_NLRI IPv6. Funkcja decode_mp_reach_ipv6() nie sprawdza poprawności danych przed ich użyciem, co pozwala atakującemu na kontrolowanie długości pól i wywołanie odczytu poza przydzieloną pamięcią.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

