CVE-2025-65501CVE-2025-65501是libcoap 4.3.5版本中的一个空指针解引用漏洞。该漏洞存在于coap_dtls_info_callback()函数中,当SSL_get_app_data()返回NULL时,程序未进行适当的空指针检查就直接使用该返回值,导致空指针解引用错误。攻击者可以通过构造恶意的DTLS握手请求来触发此漏洞,成功利用后可导致使用libcoap的服务进程崩溃,从而造成拒绝服务(DoS)影响。由于该漏洞需要用户交互触发(UI:R),攻击场景相对受限,但在DTLS通信场景中仍具有实际威胁。此漏洞影响使用libcoap进行DTLS加密通信的IoT设备、嵌入式系统和相关网络应用,CVSS评分4.3属于中等严重程度。
漏洞核心问题在于libcoap的DTLS处理回调函数coap_dtls_info_callback()中缺乏空指针安全检查。在DTLS握手过程中,该函数调用SSL_get_app_data()获取应用数据,但未验证返回值是否为NULL就直接进行解引用操作。当攻击者发送特定的DTLS握手请求使得SSL_get_app_data()返回NULL时,后续对该空指针的操作将导致程序崩溃。攻击者需要构造精心设计的DTLS ClientHello消息,触发服务端在握手过程中调用coap_dtls_info_callback(),此时传入的SSL对象关联的app_data为NULL,从而触发漏洞。由于该漏洞位于底层的OpenSSL回调函数中,任何使用libcoap进行DTLS通信的服务都可能受到影响。修复方案需要在调用SSL_get_app_data()后立即检查返回值是否为NULL,如果是NULL则返回适当的错误码而非继续执行。