CVE-2025-24531OpenSC pam_pkcs11是OpenSC项目中的一个PAM(可插拔认证模块)组件,专门用于智能卡认证。在0.6.13之前的版本中,pam_sm_authenticate()函数存在严重的安全缺陷。该函数在处理各种错误情况时(如智能卡在登录前发生错误),会错误地返回PAM_IGNORE而不是正确的认证失败状态。PAM_IGNORE返回码会告诉PAM系统忽略这个模块的认证结果,继续使用其他认证方式。这种行为允许攻击者在特定场景下绕过智能卡认证机制,成功登录系统。此漏洞需要本地访问权限,但由于认证绕过可能导致未授权访问,因此被评定为中危级别。攻击者可以利用此漏洞在拥有物理访问权限的情况下,通过触发智能卡错误来绕过认证流程。
漏洞位于OpenSC pam_pkcs11的pam_sm_authenticate()函数中。该函数在处理智能卡认证过程中的错误时,错误地返回PAM_IGNORE。具体问题包括:1) 当智能卡在登录前发生错误(如卡片移除、PIN错误等)时,函数返回PAM_IGNORE;2) 各种内部错误处理路径都存在相同问题;3) PAM_IGNORE会让PAM框架跳过此模块的认证结果,等同于认证成功。攻击者需要:1) 拥有系统的本地访问权限;2) 能够在登录过程中与智能卡读卡器交互;3) 触发特定错误条件使函数返回PAM_IGNORE。成功利用后,攻击者可以在没有有效智能卡凭证的情况下获得系统访问权限。修复版本为0.6.13,建议所有用户升级。