# N/A
## 概述
OpenSC pam_pkcs11 在版本 0.6.13 之前存在认证绕过漏洞,`pam_sm_authenticate()` 在多种错误情况下错误地返回 `PAM_IGNORE`,导致身份验证被跳过。
## 影响版本
- OpenSC pam_pkcs11 版本 < 0.6.13
## 细节
`pam_sm_authenticate()` 函数在处理身份验证过程中,当发生错误(例如智能卡在登录前触发错误)时,未正确返回错误码,而是返回 `PAM_IGNORE`。该行为导致 PAM 框架忽略该模块的验证结果,可能继续后续流程或视为通过验证。
## 影响
攻击者可利用此漏洞在身份验证失败或设备异常时绕过认证,获得未授权访问。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: Releases · OpenSC/pam_pkcs11 -- 🔗来源链接
标签:
神龙速读:
### 关键漏洞信息
#### Release 0.6.13 (Feb 6, 2025)
- **CVE-2025-24032**:
- 修复了可能的认证绕过漏洞
- 默认使用签名验证认证(感谢 Frank Morgner)
- **CVE-2025-24531**:
- 修复了可能的认证绕过漏洞
- 恢复原始 `card_only` / `wait_for_card` 行为(感谢 Matthias Gerstner, Frank Morgner)
这些漏洞说明在之前的版本中存在可以通过某些方式绕过认证的问题,已经在 0.6.13 版本中修复。
标题: pam_pkcs11 0.6.12 allows authentication bypass in error situations · Advisory · OpenSC/pam_pkcs11 · GitHub -- 🔗来源链接
标签:
神龙速读:
### 关键信息摘要
#### 漏洞概要
- **漏洞名称**: pam_pkcs11 0.6.12 allows authentication bypass in error situations
- **发布日期**: 2025-02-09
- **报告人**: frankmorgner (GHSA-7mf6-rg36-ggch)
- **漏洞严重性**: Critical
#### 受影响的版本
- **包名称**: pam_pkcs11.so
- **受影响版本**: 0.6.12
- **已修复版本**: None
#### 漏洞描述
- **问题简述**: pam_pkcs11在0.6.12版本中引入了安全问题,某些错误情况下允许绕过认证。
#### 披露协调
- **协调披露**: 依据披露政策进行协调披露,建议在Linux社区共享信息并设立7天的保留期。
#### 漏洞发现的背景
- **背景**: 使用YubiKey登录时发现了GDM (GNOME显示管理器) 登录设置上的行为变化。经进一步调查发现,某些情况下即使不输入密码或使用YubiKey也能登录。
#### 漏洞详细分析
- **漏洞原因**: 在GDM中处理智能卡登录逻辑时,由于pam_pkcs11模块在错误条件下返回了PAM_IGNORE,导致后续验证过程被绕过。
- **代码层面**: pam_sm_authenticate()函数中设定的PAM_IGNORE返回路径在错误设置逻辑下允许了未认证的登录。
#### 修复建议
- **临时解决方法**: 建议在PAM配置中添加[success=ok default=bad]选项,将pam_pkcs11模块的任何非成功结果视为失败,以阻止认证绕过。
- **永久修复**: 需要在源代码层面处理,确保pam_pkcs11在出错时能正确返回失败状态,从而阻止使用该模块的PAM认证栈绕过认证。
#### 影响范围和其他分布情况
- **当前情况**: 包括openSUSE在内的多个Linux发行版受此漏洞影响。
- **建议措施**: 向Linux社区通告此问题,协调发布修复补丁。
标题: oss-security - pam_pkcs11: Possible Authentication Bypass in Error Situations (CVE-2025-24531) -- 🔗来源链接
标签:
神龙速读:
## 关键漏洞信息总结
### 1. 漏洞概述
- **CVE编号**: CVE-2025-24531
- **问题**: 可能的认证绕过情况,尤其是在错误处理时
- **受影响模块**: pam_pkcs11
### 2. 漏洞细节
- **版本影响**: pam_pkcs11 版本 0.6.12 受影响
- **根本原因**: `pam_sm_authenticate()` 函数在错误情况下返回 `PAM_IGNORE` 而不是 `PAM_ERROR`,导致认证流程被绕过。
- **触发条件**: 在使用智能卡(如 YubiKey)进行 GDM 登录时,如果认证过程在某些情况下失败,可能触发此漏洞。
### 3. 影响范围
- **Linux发行版**:
- openSUSE Tumbleweed
- Arch Linux(部分情况下)
- Exherbo Linux(可能受影响)
- **系统配置**: 需要启用智能卡登录,并且使用 `gdm-smartcard` PAM 栈配置。
### 4. 解决方案与缓解措施
- **补丁发布**: 上游已发布 0.6.13 版本修复此漏洞。
- **临时解决方案**: 修改 PAM 配置文件,避免使用 `PAM_IGNORE` 控制语句,例如:
```bash
auth [success=ok default=bad] pam_pkcs11.so wait_for_card card_only
```
### 5. 缓解策略建议
- 避免在仅有认证模块的 PAM 配置中使用 `PAM_IGNORE` 返回值。
- 在认证失败时,确保返回 `PAM_CRED_INSUFFICIENT` 而非 `PAM_IGNORE`,以避免潜在的认证绕过风险。
暂无评论