EIPStackGroup OpENer 2.3.0 zawiera podatność out-of-bounds read (CWE-125) w module Connection Manager podczas obsługi żądań ForwardOpen protokołu CIP. Luka jest krytyczna, ponieważ jest zdalnie wyzwalalna bez uwierzytelnienia i może prowadzić do ujawnienia danych oraz odmowy usługi.
▸ Pokaż oryginał (EN)
EIPStackGroup OpENer 2.3.0 (commit 76b95cf) has an out-of-bounds read issue in Connection Manager handling of ForwardOpen requests when processing short malformed packets. An attacker can send a valid ENIP outer frame carrying a malformed CIP ForwardOpen/LargeForwardOpen request, causing the parser to continue reading fields even when request data is insufficient. This issue is remotely triggerable via network traffic and does not require authentication.
Atakujący wysyła poprawnie sformułowaną ramkę zewnętrzną ENIP (EtherNet/IP), która zawiera celowo zniekształcone żądanie CIP ForwardOpen lub LargeForwardOpen o zbyt małej długości. Parser Connection Managera nie weryfikuje poprawnie dostępnej ilości danych i kontynuuje odczyt pól poza granicami bufora, wchodząc w obszar pamięci wykraczający poza dostarczony pakiet. Atak nie wymaga żadnego uwierzytelnienia ani interakcji po stronie użytkownika.
Atakujący może doprowadzić do ujawnienia zawartości pamięci procesu (naruszenie poufności) lub spowodować awarię aplikacji i odmowę usługi (DoS). Ze względu na zdalną wyzwalalność bez uwierzytelnienia podatność stanowi poważne zagrożenie dla środowisk automatyki przemysłowej korzystających z protokołu EtherNet/IP.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu wdrożenia poprawki zaleca się ograniczenie dostępu sieciowego do urządzeń korzystających z biblioteki OpENer poprzez firewall oraz segmentację sieci przemysłowej, tak aby żądania EtherNet/IP (port TCP/UDP 44818) nie były dostępne z niezaufanych sieci.
EIPStackGroup OpENer w wersji 2.3.0 (commit 76b95cf)
Proof-of-concept opisujący podatność jest publicznie dostępny pod adresem wskazanym w referencjach (gist.github.com). Problem zgłoszono również w oficjalnym repozytorium projektu jako issue #564.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/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
Błędna kontrola dostępu w OpENer — przejęcie sesji encapsulation
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