EIPStackGroup OpENer 2.3.0 (commit 76b95cf) zawiera podatność nieprawidłowej kontroli dostępu (CWE-284) w obsłudze sesji encapsulation. Atakujący sieciowy bez żadnego uwierzytelnienia może użyć cudzego session handle, aby ominąć mechanizmy kontroli dostępu serwera.
▸ Pokaż oryginał (EN)
EIPStackGroup OpENer 2.3.0 (commit 76b95cf) suffers from an Incorrect Access Control vulnerability in its handling of encapsulation sessions. When the server processes critical encapsulation commands, it verifies whether the provided session_handle exists in the global session list, but it fails to verify whether that handle belongs to the specific TCP connection issuing the request. Because there is no strong binding between a session handle and its originating socket, any attacker on the network can use a valid session handle created by another legitimate client to bypass access controls.
Serwer OpENer podczas przetwarzania krytycznych poleceń encapsulation sprawdza jedynie, czy podany session_handle istnieje na globalnej liście sesji, ale nie weryfikuje, czy dany uchwyt pochodzi od konkretnego połączenia TCP, które wysyła żądanie. Brak silnego powiązania między session handle a gniazdem sieciowym (socket) oznacza, że dowolny węzeł w sieci może pobrać lub odgadnąć prawidłowy session handle należący do legalnego klienta i użyć go we własnych żądaniach. Nie są wymagane żadne uprawnienia ani interakcja po stronie ofiary.
Atakujący może ominąć kontrolę dostępu i wykonywać krytyczne operacje encapsulation w imieniu innego, legalnego klienta, co prowadzi do nieautoryzowanego odczytu oraz modyfikacji danych (High Confidentiality, High Integrity zgodnie z wektorem CVSS).
Należy zastosować patche dostępne u producenta zgodnie z referencjami (zgłoszenie błędu: https://github.com/EIPStackGroup/OpENer/issues/565). Do czasu wydania poprawki zaleca się ograniczenie dostępu sieciowego do urządzeń korzystających z OpENer wyłącznie do zaufanych hostów (segmentacja sieci, firewall) oraz monitorowanie ruchu pod kątem anomalii w sesjach EtherNet/IP.
EIPStackGroup OpENer w wersji 2.3.0 (commit 76b95cf)
Publiczny proof-of-concept dostępny pod adresem https://gist.github.com/MrAlaskan/8156ca3acd6754a9f66efede0a1351f2, co podnosi praktyczne ryzyko wykorzystania podatności.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NOpener Project Opener
APPOpener Project2.3.0
Powiązane podatności
Out-of-bounds read w OpENer 2.3.0 — parsowanie wiadomości CIP/ENIP
Out-of-bounds read w EIPStackGroup OpENer — przetwarzanie ForwardOpen
Stack Buffer Overflow w OpENer 2.3.0 przy parsowaniu pakietów CIP
Integer underflow w OpENer 2.3.0 — krytyczne uszkodzenie pamięci (RCE)
RCE przez out-of-bounds write w OpENer EtherNet/IP Stack