CRITICAL🇬🇧 English

CVE-2026-51536

Stack Buffer Overflow w OpENer 2.3.0 przy parsowaniu pakietów CIP

CVSS 9.1pub. 2026-07-13upd. 2026-08-11

Podatność w bibliotece OpENer 2.3.0 umożliwia przepełnienie bufora stosu (stack buffer overflow) poprzez przetworzenie złośliwie spreparowanego pakietu CIP. Ze względu na brak uwierzytelnienia wymaganego do wyzwolenia błędu oraz krytyczny wynik CVSS 9.1, stanowi poważne zagrożenie dla systemów przemysłowych korzystających z protokołu EtherNet/IP.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Podczas parsowania przychodzących pakietów sieciowych CIP parametr długości jest niezgodnie typowany na kolejnych poziomach stosu wywołań — wartość obliczona jako int jest przekazywana do funkcji oczekującej typu EipInt16 (16-bitowa liczba całkowita ze znakiem). Spreparowany pakiet z odpowiednio dobranymi polami długości powoduje przepełnienie arytmetyczne (CWE-190) lub obcięcie wartości do ujemnej liczby. Ujemna wartość długości omija dalsze sprawdzanie granic ze względu na błąd porównania wartości ze znakiem i bez znaku (signed/unsigned comparison), a następnie jest bezpośrednio używana w operacjach pamięciowych w funkcji DecodePaddedEPath, prowadząc do stack buffer overflow.

Skutki

Atakujący zdalny, nieuwierzytelniony może doprowadzić do odmowy dostępu (DoS) poprzez awarie procesu lub potencjalnie wykonać arbitralny kod (RCE) w kontekście procesu obsługującego komunikację CIP. Podatność może prowadzić do utraty dostępności oraz naruszenia poufności danych przetwarzanych w pamięci procesu.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zalecane jest śledzenie aktualizacji w repozytorium projektu EIPStackGroup/OpENer (issue #563). Do czasu wdrożenia poprawki warto ograniczyć dostęp sieciowy do urządzeń obsługujących protokół CIP/EtherNet/IP za pomocą firewall lub segmentacji sieci przemysłowej.

Kogo dotyczy

OpENer w wersji 2.3.0 (commit 76b95cf)

Uwagi

Dostępny jest publiczny proof-of-concept opublikowany w serwisie GitHub (gist.github.com/MrAlaskan). Podatność dotyczy środowisk OT/ICS korzystających z protokołu EtherNet/IP, co zwiększa potencjalny wpływ na infrastrukturę przemysłową.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
  • Opener Project Opener

    APP
    Opener Project
    2.3.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Memory
CWE
Referencje

Powiązane podatności

CVE-2026-51541CRITICAL9.1PL ✓ten sam produkt

Out-of-bounds read w OpENer 2.3.0 — parsowanie wiadomości CIP/ENIP

CVE-2026-51538CRITICAL9.1PL ✓ten sam produkt

Błędna kontrola dostępu w OpENer — przejęcie sesji encapsulation

CVE-2026-51537CRITICAL9.1PL ✓ten sam produkt

Out-of-bounds read w EIPStackGroup OpENer — przetwarzanie ForwardOpen

CVE-2026-51540CRITICAL9.8PL ✓ten sam produkt

Integer underflow w OpENer 2.3.0 — krytyczne uszkodzenie pamięci (RCE)

CVE-2022-43604CRITICAL10.0PL ✓ten sam produkt

RCE przez out-of-bounds write w OpENer EtherNet/IP Stack