Podatność typu Null Pointer Dereference w bibliotece FreeCoAP 1.0 pozwala zdalnym atakującym na wywołanie odmowy usługi (DoS) oraz potencjalne wykonanie dowolnego kodu (RCE). Brak uwierzytelnienia i niski próg wejścia czynią tę lukę szczególnie niebezpieczną w środowiskach IoT korzystających z protokołu CoAP.
▸ Pokaż oryginał (EN)
Null Pointer Dereference in `coap_client_exchange_blockwise2` function in Keith Cullen FreeCoAP 1.0 allows remote attackers to cause a denial of service and potentially execute arbitrary code via a specially crafted CoAP packet that causes `coap_msg_get_payload(resp)` to return a null pointer, which is then dereferenced in a call to `memcpy`.
Podatność tkwi w funkcji `coap_client_exchange_blockwise2`, która nie weryfikuje, czy wywołanie `coap_msg_get_payload(resp)` zwróciło wartość NULL. Atakujący wysyła specjalnie spreparowany pakiet CoAP, który powoduje zwrócenie wskaźnika NULL przez tę funkcję. Następnie NULL pointer jest wyłuskiwany (dereferencja) w wywołaniu `memcpy`, co prowadzi do awarii procesu lub — w sprzyjających okolicznościach — do wykonania arbitralnego kodu.
Atakujący może doprowadzić do natychmiastowego crashu aplikacji (DoS) lub, w określonych warunkach, wykonać dowolny kod na atakowanym systemie (RCE) bez konieczności posiadania jakichkolwiek uprawnień.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się śledzenie zgłoszenia błędu pod adresem https://github.com/keith-cullen/FreeCoAP/issues/37 oraz ograniczenie dostępu sieciowego do usług CoAP wyłącznie do zaufanych źródeł jako środek tymczasowy.
Keith-Cullen FreeCoAP w wersji 1.0
Dostępny jest publiczny proof-of-concept opublikowany na GitHub Gist (https://gist.github.com/dqp10515/fe80005e2fb58ed8ada178ac017e4ad4), co zwiększa praktyczne ryzyko wykorzystania podatności.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HKeith Cullen Freecoap
APPKeith-Cullen1.0
Powiązane podatności
Buffer overflow w FreeCoAP umożliwia RCE lub DoS przez spreparowany pakiet
Błąd NULL pointer dereference w FreeCoAP — DoS i ujawnienie informacji
An issue in the server_handle_regular function of the test_coap_server.c file within the FreeCoAP project allo...