OpENer 2.3.0 zawiera krytyczną podatność typu integer underflow w module przetwarzającym połączone komunikaty explicit (SendUnitData), prowadzącą do uszkodzenia pamięci. Brak wymagań uwierzytelnienia i sieciowy charakter ataku czynią tę podatność szczególnie niebezpieczną w środowiskach przemysłowych.
▸ Pokaż oryginał (EN)
OpENer 2.3.0 (master branch up to commit 76b95cf) is vulnerable to a severe memory corruption issue caused by an integer underflow in the processing of connected explicit messages (SendUnitData).
Podatność (CWE-191) polega na przepełnieniu całkowitym w dół (integer underflow) podczas przetwarzania przychodzących pakietów SendUnitData w protokole EtherNet/IP. Gdy atakujący prześle spreparowany komunikat, wartość liczbowa ulega zawinięciu poniżej zera, co skutkuje nieprawidłowym obliczeniem rozmiaru bufora lub indeksu pamięci. Prowadzi to do korupcji pamięci procesu, którą atakujący może potencjalnie wykorzystać do wykonania dowolnego kodu.
Atakujący zdalnie i bez uwierzytelnienia może doprowadzić do korupcji pamięci procesu, co w konsekwencji może umożliwić wykonanie dowolnego kodu (RCE), awarię urządzenia lub naruszenie integralności i poufności danych przetwarzanych przez stos EtherNet/IP.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się śledzenie repozytorium GitHub (EIPStackGroup/OpENer, issue #568) w celu uzyskania poprawki. Do czasu wdrożenia łatki należy ograniczyć dostęp sieciowy do portów EtherNet/IP (TCP/UDP 44818) wyłącznie do zaufanych hostów za pomocą firewall lub segmentacji sieci OT/IT.
OpENer 2.3.0, gałąź master do commitu 76b95cf (stos EtherNet/IP open-source projektu EIPStackGroup)
Podatność dotyczy oprogramowania open-source często wbudowywanego w przemysłowe urządzenia sieciowe (sterowniki PLC, bramy EtherNet/IP). Szczegóły techniczne wraz z proof-of-concept zostały opublikowane publicznie w serwisie GitHub (gist MrAlaskan).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HOpener 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
Błędna kontrola dostępu w OpENer — przejęcie sesji encapsulation
RCE przez out-of-bounds write w OpENer EtherNet/IP Stack