IPBUF安全漏洞报告
English
CVE-2025-11561 CVSS 8.8 高危

CVE-2025-11561 SSSD Kerberos本地认证插件权限提升漏洞

披露日期: 2025-10-09

漏洞信息

漏洞编号
CVE-2025-11561
漏洞类型
权限提升/身份冒充
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
System Security Services Daemon (SSSD) - Linux Active Directory集成组件

相关标签

SSSDKerberosActive Directory权限提升身份冒充LinuxRed Hat身份认证域控安全CVE-2025-11561

漏洞概述

CVE-2025-11561是Red Hat安全团队发现的一个高危安全漏洞,存在于Linux系统中System Security Services Daemon(SSSD)与Active Directory(AD)集成的Kerberos本地认证流程中。该漏洞源于SSSD默认配置下启用了sssd_krb5_localauth_plugin插件,但该插件存在向an2ln插件回退的机制缺陷。攻击者利用此缺陷,可以在具备修改特定AD属性(如userPrincipalName或samAccountName)权限的情况下,冒充域中的特权用户,实现对已加入域的Linux主机的未授权访问或权限提升。该漏洞的CVSS 3.1评分为8.8分,属于高危级别,其攻击向量为网络,认证要求为低权限,无需用户交互,对机密性、完整性和可用性均产生高影响。此漏洞对使用SSSD进行AD身份验证的企业Linux环境构成严重威胁,可能导致整个域控制范围内的Linux系统被攻击者控制。Red Hat已发布多个安全公告(RHSA-2025:19610、19847、19848、19849、19850)来修复此问题,涉及多个受影响的RHEL版本。

技术细节

该漏洞的技术核心在于SSSD的Kerberos本地认证插件(sssd_krb5_localauth_plugin)的工作机制。在默认配置中,sssd_krb5_localauth_plugin负责将Kerberos主体名称(如user@REALM)映射到本地Unix用户名,以便进行本地认证。然而,该插件在处理某些边缘情况时会回退到an2ln(anonymous to local name)插件进行名称转换。

an2ln插件的设计目的是将匿名Kerberos主体转换为本地用户名,但其转换逻辑存在缺陷。当攻击者控制了AD中的userPrincipalName或samAccountName属性后,可以构造特殊的属性值,使得sssd_krb5_localauth_plugin在处理过程中触发回退到an2ln插件。an2ln插件会将这些恶意构造的属性值解析为与系统特权账户(如root)相对应的本地用户名。

具体利用流程为:1)攻击者首先获取对AD中目标用户对象的写权限,通常通过权限滥用或社工手段;2)修改目标用户的userPrincipalName或samAccountName属性为精心构造的值;3)当该用户尝试通过Kerberos认证登录Linux主机时,SSSD调用sssd_krb5_localauth_plugin进行名称映射;4)由于属性值异常,插件回退到an2ln;5)an2ln将恶意属性值解析为root或其他特权账户的本地名称;6)认证成功后,攻击者获得目标Linux主机的特权访问权限。整个攻击过程无需复杂的客户端工具,仅需对AD属性的修改权限即可实施。

攻击链分析

STEP 1
初始访问
攻击者获取Active Directory中目标用户对象的写权限,可以通过权限滥用、凭据泄露或社会工程等手段获得修改userPrincipalName或samAccountName属性的能力。
STEP 2
属性篡改
攻击者修改目标AD用户的userPrincipalName或samAccountName属性,构造能够触发sssd_krb5_localauth_plugin回退到an2ln插件的特殊值,通常设置为能够解析为特权账户(如root)的字符串。
STEP 3
触发认证
攻击者使用修改后的AD账户通过Kerberos认证尝试登录已加入域的Linux目标主机,SSSD调用sssd_krb5_localauth_plugin进行Kerberos主体到本地用户名的映射。
STEP 4
插件回退
由于属性值异常,sssd_krb5_localauth_plugin回退到an2ln插件进行名称转换,an2ln将恶意构造的属性值解析为系统特权账户的本地用户名。
STEP 5
权限提升
认证成功后,攻击者以特权用户身份获得对Linux主机的访问权限,实现权限提升和未授权访问,可进一步进行横向移动、数据窃取或持久化操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11561 PoC - SSSD Kerberos Local Auth Plugin Privilege Escalation # This PoC demonstrates the concept of exploiting the sssd_krb5_localauth_plugin # fallback to an2ln plugin for impersonating privileged users. # Prerequisites: # - Valid AD account with write permission to userPrincipalName or samAccountName # - Target Linux host joined to AD domain via SSSD # - Default SSSD configuration with sssd_krb5_localauth_plugin enabled import subprocess import sys def check_sssd_config(): """Check if sssd_krb5_localauth_plugin is enabled and an2ln fallback exists""" config_paths = [ "/etc/sssd/sssd.conf", "/etc/sssd/conf.d/" ] for path in config_paths: try: with open(path, 'r') as f: content = f.read() if "sssd_krb5_localauth_plugin" in content: print(f"[+] Found SSSD config at {path}") if "an2ln" in content: print("[!] an2ln fallback plugin detected - VULNERABLE") return True except FileNotFoundError: continue return False def exploit_concept(): """ Conceptual exploit steps: 1. Modify AD user attributes (userPrincipalName/samAccountName) to a value that triggers an2ln fallback 2. The malicious attribute value should resolve to a privileged local user (e.g., 'root') 3. When the modified user authenticates via Kerberos on Linux, sssd_krb5_localauth_plugin falls back to an2ln 4. an2ln maps the crafted value to the privileged local username 5. Authentication succeeds with elevated privileges """ print("[*] CVE-2025-11561 Exploitation Concept") print("[*] Step 1: Verify target is vulnerable") if not check_sssd_config(): print("[-] Target does not appear vulnerable") sys.exit(1) print("[*] Step 2: Modify AD user attributes via LDAP/ADSI") print(" Example using ldapmodify:") print(' dn: CN=victim,CN=Users,DC=domain,DC=com') print(' changetype: modify') print(' replace: userPrincipalName') print(' userPrincipalName: [email protected]') print("[*] Step 3: Trigger Kerberos authentication on target Linux host") print(" ssh -o GSSAPIAuthentication=yes user@target_host") print("[*] Step 4: Verify privilege escalation") print(" id # Should show root or privileged user") if __name__ == "__main__": exploit_concept() # Mitigation: Apply Red Hat security updates: # RHSA-2025:19610, RHSA-2025:19847, RHSA-2025:19848, RHSA-2025:19849, RHSA-2025:19850 # Or disable sssd_krb5_localauth_plugin in sssd.conf

影响范围

Red Hat Enterprise Linux 8 (SSSD相关组件)
Red Hat Enterprise Linux 9 (SSSD相关组件)
Red Hat Enterprise Linux 10 (SSSD相关组件)
所有使用默认SSSD配置并启用sssd_krb5_localauth_plugin的Linux发行版

防御指南

临时缓解措施
在无法立即应用安全更新的情况下,建议采取以下临时缓解措施:1)在SSSD配置文件(/etc/sssd/sssd.conf)中显式设置sssd_krb5_localauth_plugin = sssd_krb5_localauth_plugin,并禁用an2ln回退;2)在AD中收紧对userPrincipalName和samAccountName属性的写权限,确保只有特权管理员可以修改这些属性;3)监控SSSD日志中的异常名称映射行为,及时发现潜在的利用尝试;4)对所有域加入的Linux主机进行安全审计,识别可能已被利用的系统。

参考链接

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