CVE-2026-111731
WysokieCVSS 8.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
P-Net w wersjach przed 1.0.3 wchodzi w nieskończoną pętlę podczas obsługi żądania odczytu rekordu PDPortDataCheck z podslotem 0 (cały moduł). Pętla po portach nigdy nie przechodzi do następnego portu, więc żądanie nigdy się nie kończy, a urządzenie przestaje odpowiadać.
Ocena ryzyka
Zdalny nieuwierzytelniony atakujący może wykorzystać tę podatność do wywołania odmowy usługi. Skutkuje to niedostępnością urządzenia w sieci przemysłowej.
Rekomendacja
Zaktualizuj bibliotekę P-Net do wersji 1.0.3 lub nowszej. Monitoruj ruch sieciowy pod kątem nietypowych żądań odczytu rekordów.
Inne podatności w P-Net
Zobacz wszystkie- CVE-2026-111732Krytyczne
P-Net przed wersją 1.0.3, gdy zbudowany z włączoną opcją PNET_OPTION_AR_VENDOR_BLOCKS, odczytuje długość danych z pola żądania ARVendorBlock, które nie jest częścią definicji bloku, i używa jej jako liczby bajtów do skopiowania do bufora o stałym rozmiarze, bez porównania z rozmiarem bufora lub długością bloku. Spreparowane żądanie Connect powoduje zapis poza granicami bufora, co może prowadzić do awarii (odmowa usługi) lub potencjalnie dowolnego wykonania kodu. Opcja ta jest domyślnie wyłączona.
- CVE-2026-115795Średnie
P-Net w wersjach przed 1.0.3 nie sprawdza, czy w odebranych danych znajduje się kompletny nagłówek bloku przed odczytem kolejnego bloku w żądaniach DCP Set i Identify. Jeśli ostatni blok kończy się na końcu bufora odbiorczego, długość następnego bloku jest odczytywana poza buforem. Dodatkowo blok DCP Set o długości mniejszej niż dwubajtowy kwalifikator powoduje niedomiar długości i przetwarzanie bloku jako 65534 bajtów. Może to spowodować awarię (odmowa usługi) lub ujawnienie niewielkiej ilości pamięci. Wymaga dostępu sieciowego z sąsiedztwa.
- CVE-2026-115794Niskie
P-Net przed 1.0.3 przekazuje do callbacku alarmowego aplikacji długość danych wyliczoną z pola długości części zmiennej odebranej ramki alarmowej RTA bez sprawdzenia jej względem długości odebranej ramki. Krótka ramka może spowodować, że callback otrzyma długość do 65507 bajtów. Aplikacja kopiująca zgłoszoną liczbę bajtów odczytuje dane poza buforem odbioru. Atakujący musi mieć ustanowioną relację aplikacyjną i wymaga dostępu sieciowego z sąsiedztwa. Aplikacje niekorzystające z danych alarmowych nie są dotknięte.
- CVE-2026-115793Wysokie
P-Net w wersjach przed 1.0.3 nie zwalnia sesji RPC przydzielonej dla żądania wskazującego nieznany interfejs lub UUID obiektu i nie uruchamia dla niej limitu czasu. Powtarzane żądania z różnymi UUID wyczerpują dostępne sesje, po czym urządzenie przestaje odpowiadać na nowe żądania RPC, w tym Endpoint Mapper Lookup i Connect, aż do restartu.
- CVE-2026-112200Wysokie
P-Net w wersjach przed 1.0.3 nie zwalnia Application Relationship (AR) ani sesji RPC, gdy żądanie RPC zostanie odrzucone z powodu nieprawidłowej kolejności bajtów (endianness) reprezentacji danych. Sesja i jej AR pozostają przydzielone, więc powtarzane żądania wyczerpują dostępne sesje, po czym urządzenie przestaje odpowiadać na nowe żądania RPC, w tym Connect, aż do restartu.
- CVE-2026-111736Wysokie
P-Net w wersjach przed 1.0.3 dereferencjonuje wskaźnik NULL AR w funkcji pf_fspm_cm_read_ind() podczas obsługi niejawnego żądania odczytu bez prawidłowego UUID docelowego AR dla indeksu rekordu specyficznego dla użytkownika, jeśli aplikacja zarejestrowała callback odczytu. Zdalny nieuwierzytelniony atakujący może wysłać takie żądanie, aby spowodować awarię urządzenia.
- CVE-2026-111735Wysokie
P-Net w wersjach przed 1.0.3 zawiera niedomiar liczby całkowitej w funkcji pf_cpm_c_data_ind(). Podczas obsługi odebranej ramki danych cyklicznych, gdy konsument jest w stanie FRUN lub RUN, przesunięcie statusu APDU było obliczane jako długość ramki minus 4 przy użyciu arytmetyki 16-bitowej, bez sprawdzenia, czy ramka jest wystarczająco długa. Spreparowana krótka ramka powoduje zawinięcie przesunięcia, w wyniku czego funkcja odczytuje poza buforem odbioru.
- CVE-2026-111734Wysokie
Biblioteka P-Net w wersjach przed 1.0.3 nie sprawdza długości odebranej ramki Ethernet w funkcji pf_eth_recv() przed odczytem EtherType, tagów VLAN i FrameID PROFINET. Pętla przetwarzania tagów VLAN nie ma górnego ograniczenia, więc skrócona ramka lub ramka składająca się wyłącznie z tagów VLAN powoduje odczyt poza buforem odbiorczym.
- CVE-2026-111733Wysokie
P-Net w wersjach przed 1.0.3 wykonuje dereferencję wskaźnika NULL AR podczas obsługi niejawnego żądania odczytu bez prawidłowego identyfikatora UUID docelowego AR dla indeksu rekordu wymagającego AR (indeksy specyficzne dla AR 0xE000-0xEFFF oraz oczekiwane dane identyfikacyjne slotu lub podslotu). Zdalny nieuwierzytelniony atakujący może wysłać takie żądanie, aby spowodować awarię urządzenia.
- CVE-2026-111730Wysokie
P-Net w wersjach przed 1.0.3 nie waliduje pola LengthPeerStationName bloku CheckPeers w funkcji get_check_peer(). Odebrana długość (do 255) jest używana do kopiowania danych do 241-bajtowego bufora nazwy stacji peera i umieszczenia bajtu NUL, więc spreparowany blok zapisuje do 15 bajtów poza bufor.
Oryginalny opis (angielski, źródło NVD)
P-Net before 1.0.3 enters an infinite loop when handling a read request for the PDPortDataCheck record with subslot 0 (whole module). The loop over the ports never advanced to the next port, so the request never completes and the device stops responding. A remote unauthenticated attacker can use this to cause a denial of service.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

