CVE-2025-57156CVE-2025-57156是owntone-server项目中的一个高危安全漏洞,存在于dacp_reply_playqueueedit_clear函数中。该函数位于src/httpd_dacp.c源文件中,当处理特定的DACP协议请求时,由于缺少适当的空指针检查,可能导致空指针解引用错误。攻击者可以通过构造恶意的DACP请求消息,无需任何认证即可触发此漏洞。成功利用此漏洞将导致owntone-server服务崩溃,造成音乐播放队列管理功能不可用,从而实现拒绝服务攻击。由于CVSS评分达到7.5且攻击向量为网络级别,远程攻击者可以在无需用户交互和认证的情况下发起攻击,对服务的可用性造成严重影响。此漏洞影响owntone-server 28.12及之前版本,以及通过commit 6d604a1之前的版本。
该漏洞发生在owntone-server的DACP(DAAP Control Protocol)协议处理模块中。具体来说,dacp_reply_playqueueedit_clear函数在src/httpd_dacp.c文件中的实现存在缺陷。当函数处理来自客户端的playqueueedit_clear请求时,如果相关的播放队列状态对象未被正确初始化或已被释放,函数将尝试访问该对象的成员变量,从而触发空指针解引用。在C语言中,空指针解引用通常会导致程序崩溃(SIGSEGV信号),这是因为程序试图读取或写入一个无效的内存地址。攻击者可以通过发送精心构造的DACP请求消息到owntone-server的HTTP服务端口(默认为3689),触发dacp_reply_playqueueedit_clear函数中的这一缺陷。由于HTTP服务通常对外网开放,攻击者可以直接发送恶意请求而无需任何身份验证。修复此漏洞需要在函数执行前添加对相关指针的有效性检查,确保在访问对象成员前验证指针非空。