CVE-2025-65498CVE-2025-65498是libcoap项目中的一个中等严重性安全漏洞,该漏洞位于libcoap 4.3.5版本的src/coap_openssl.c文件中。具体问题发生在coap_dtls_generate_cookie()函数中,攻击者可以通过发送精心构造的DTLS握手数据包来触发该漏洞。当SSL_get_SSL_CTX()函数返回NULL时,代码未能正确处理这一异常情况,导致空指针解引用,最终造成应用程序崩溃或拒绝服务。该漏洞需要用户交互才能触发,攻击复杂度较低,远程攻击者可以利用此漏洞对使用libcoap库的IoT设备或服务进行拒绝服务攻击,影响CoAP协议通信的可用性。
漏洞根源在于libcoap的DTLS实现中对SSL上下文验证不足。在coap_dtls_generate_cookie()函数中,代码调用SSL_get_SSL_CTX()获取SSL上下文,但未检查返回值是否为NULL。当攻击者发送畸形的DTLS握手请求时,SSL上下文可能未被正确初始化或已被释放,导致该函数返回NULL。随后代码直接使用该空指针进行后续操作,触发空指针解引用。攻击者可通过发送特制的DTLS ClientHello数据包来利用此漏洞,无需认证即可触发崩溃。此漏洞影响所有使用libcoap进行DTLS通信的应用,包括IoT设备、边缘网关和云端CoAP服务。修复方案需在调用SSL_get_SSL_CTX()后添加空指针检查,确保上下文有效后再进行Cookie生成操作。