W bibliotece lib60870-C w wersji 2.4.0 istnieje podatność typu heap-based buffer overflow w ścieżce kodowania ramek FileSegment ASDU po stronie serwera. Błąd umożliwia atakującemu zdalne wykonanie kodu bez uwierzytelnienia, co czyni go szczególnie niebezpiecznym.
▸ Pokaż oryginał (EN)
A heap-based buffer overflow exists in lib60870-C 2.4.0 in the server-side FileSegment ASDU encoding path. The issue occurs because FileSegment_encode() validates only the standalone segment length via FileSegment_GetMaxDataSize() and does not verify the residual capacity of the current ASDU frame before encoding object fields and segment data
Funkcja FileSegment_encode() weryfikuje wyłącznie długość pojedynczego segmentu za pomocą FileSegment_GetMaxDataSize(), lecz nie sprawdza pozostałej pojemności bieżącej ramki ASDU przed zapisem pól obiektu i danych segmentu. W konsekwencji, przy odpowiednio spreparowanym żądaniu, dane mogą zostać zapisane poza granicą przydzielonego buforu na stercie (heap). Prowadzi to do heap-based buffer overflow sklasyfikowanego jako CWE-122.
Atakujący może doprowadzić do wykonania dowolnego kodu na podatnym serwerze (RCE), uzyskać pełną kontrolę nad systemem lub spowodować jego awarię. Wektor sieciowy bez wymagań uwierzytelnienia (AV:N/AC:L/PR:N/UI:N) oznacza, że exploit może być przeprowadzony zdalnie przez każdego nieuwierzytelnionego użytkownika.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się śledzenie repozytorium projektu (https://github.com/mz-automation/lib60870) oraz zgłoszenia issue #201 w celu uzyskania informacji o dostępności poprawki. Do czasu aktualizacji należy rozważyć ograniczenie dostępu sieciowego do usług korzystających z biblioteki na poziomie firewall.
lib60870-C w wersji 2.4.0 (biblioteka C do protokołu IEC 60870-5, projekt mz-automation/lib60870)
Podatność dotyczy biblioteki stosowanej w systemach automatyki przemysłowej (protokół IEC 60870-5), co może zwiększać potencjalny wpływ na infrastrukturę krytyczną. Szczegóły techniczne dostępne są w zgłoszeniu GitHub issue #201.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H