CVE-2026-51536
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 39 - wyżej niż 39% wszystkich znanych CVE
Streszczenie
W OpENer 2.3.0 (commit 76b95cf) podczas parsowania pakietów CIP (Common Industrial Protocol) parametr długości jest niespójnie typowany w stosie wywołań. Długość obliczona jako int jest przekazywana do funkcji oczekującej EipInt16 (16-bitowa liczba całkowita ze znakiem), co przy złośliwym pakiecie może prowadzić do przepełnienia lub ujemnej wartości. Ujemna długość omija kontrolę granic i powoduje przepełnienie bufora stosu w DecodePaddedEPath.
Ocena ryzyka
Atakujący może zdalnie spowodować awarię lub przejęcie kontroli nad urządzeniem przemysłowym wykorzystującym OpENer, co w środowisku produkcyjnym grozi zatrzymaniem procesów, uszkodzeniem sprzętu lub naruszeniem bezpieczeństwa.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę OpENer do wersji zawierającej poprawkę lub zastosować tymczasowe reguły firewall/blokujące ruch CIP z niezaufanych źródeł.
Inne podatności w OpENer
Zobacz wszystkie- CVE-2026-51541Krytyczne
W bibliotece OpENer 2.3.0 (commit 76b95cf) wykryto podatność polegającą na odczycie poza dozwolonym obszarem pamięci podczas parsowania wiadomości CIP. Atakujący może wysłać poprawną ramkę ENIP SendRRData z bardzo krótkim ładunkiem CIP, w którym pole path_size wskazuje na więcej słów ścieżki niż faktycznie dostępnych. Ponieważ parser ufa kontrolowanemu przez atakującego polu path_size i kontynuuje dekodowanie segmentów ścieżki bez sprawdzania granic pozostałej długości, odczytuje dane poza końcem bufora odbiorczego na stosie.
- CVE-2026-51540Krytyczne
W bibliotece OpENer w wersji 2.3.0 (do commitu 76b95cf) wykryto krytyczną podatność powodującą uszkodzenie pamięci. Problem wynika z niedomiaru liczby całkowitej podczas przetwarzania połączonych wiadomości jawnych (SendUnitData).
- CVE-2026-51538Krytyczne
W bibliotece OpENer 2.3.0 (commit 76b95cf) wykryto podatność polegającą na nieprawidłowej kontroli dostępu podczas obsługi sesji enkapsulacji. Serwer sprawdza jedynie, czy identyfikator sesji istnieje na globalnej liście, ale nie weryfikuje, czy należy on do konkretnego połączenia TCP wysyłającego żądanie. Umożliwia to atakującemu przejęcie sesji innego klienta i ominięcie mechanizmów kontroli dostępu.
- CVE-2026-51535Wysokie
W bibliotece OpENer w wersji 2.3.0 (commit 76b95cf) wykryto podatność na wyczerpanie zasobów (odmowę usługi) w pętli przetwarzania sieciowego. Atakujący może wysłać specjalnie spreparowane pakiety, powodując nadmierne zużycie CPU lub pamięci.
- CVE-2026-51221Wysokie
Podatność przepełnienia bufora w funkcji Get_Attribute_List biblioteki OpENer od EIPStackGroup (commit 76b95c) umożliwia atakującemu spowodowanie odmowy usługi (DoS) poprzez wysłanie spreparowanego pakietu Common Packet Format (CPF).
- CVE-2026-10703Średnie
W bibliotece EIPStackGroup OpENer do wersji 2.3.0 wykryto podatność use-after-free w funkcji CreateMessageRouterRequestStructure pliku cipmessagerouter.c w komponencie SendRRData Handler. Atak może być przeprowadzony zdalnie, a exploit został ujawniony publicznie.
Oryginalny opis (angielski, źródło NVD)
In OpENer 2.3.0 (commit 76b95cf) when parsing incoming CIP (Common Industrial Protocol) network packets, the length parameter is inconsistently typed across the call stack. Specifically, an upstream length calculated as an int is passed to a downstream function that expects an EipInt16 (a 16-bit signed integer). If a maliciously crafted packet with specific length fields is processed, the length parameter can overflow or be truncated into a negative value. This negative length bypasses subsequent bounds checking (due to signed/unsigned comparison issues) and is ultimately used in memory operations, leading to a Stack Buffer Overflow when reading data in DecodePaddedEPath.

