# RFC 3211 KEK越界读写漏洞
## 概述
OpenSSL 中存在一个漏洞,当应用程序尝试解密使用基于密码加密(Password-Based Encryption)的 CMS 消息时,可能会触发越界读写操作。
## 影响版本
所有支持 CMS 消息中基于密码加密(PWRI)的 OpenSSL 非 FIPS 模块版本均可能受影响。FIPS 模块在以下版本中不受影响:
- OpenSSL 3.0
- OpenSSL 3.1
- OpenSSL 3.2
- OpenSSL 3.3
- OpenSSL 3.4
- OpenSSL 3.5
原因是 CMS 实现在 FIPS 模块边界之外。
## 细节
- 漏洞发生在应用程序处理 CMS 密码基加密(PWRI)消息的解密过程时。
- 可能导致越界读和越界写操作。
- 越界读可引发应用崩溃,造成拒绝服务(DoS)。
- 越界写可导致内存损坏,潜在后果包括拒绝服务或执行攻击者注入的代码。
## 影响
- **严重性**:虽然漏洞潜在后果较严重,但成功利用的概率较低。
- **使用情况**:由于 CMS 中的 PWRI 加密支持极少被使用,进一步限制了漏洞的可利用性。
- **评估等级**:根据 OpenSSL 安全政策,此漏洞被评为**中等严重性**。
是否为 Web 类漏洞: 否
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: kek_unwrap_key(): Fix incorrect check of unwrapped key size · openssl/openssl@b5282d6 · GitHub -- 🔗来源链接
标签:patch
神龙速读:
从这个网页截图中可以获取到以下关于漏洞的关键信息:
- **CVE编号**: CVE-2025-9239
- **漏洞描述**: 在`kek_unwrap_key()`函数中,对解包密钥大小的检查不正确。检查偏移了8个字节,因此可能会导致最多8个字节的越界读取和最多4个字节的覆盖。
- **修复提交**: 提交ID为`b5282d6`,由Viktor Dukhovni提交。
- **受影响文件**: `crypto/cms/cms_pwri.c`
- **具体修改**: 代码行241处的条件判断从`if (inlen < (size_t)tmp[0] - 4)`更改为`if (inlen < 4 + (size_t)tmp[0])`,以修正检查逻辑。
```markdown
### 关键信息
- **CVE编号**: CVE-2025-9239
- **漏洞描述**:
- `kek_unwrap_key()`函数中的检查偏移了8个字节,可能导致最多8个字节的越界读取和最多4个字节的覆盖。
- **修复提交**:
- 提交ID: `b5282d6`
- 提交者: Viktor Dukhovni
- **受影响文件**: `crypto/cms/cms_pwri.c`
- **具体修改**:
- 代码行241:
- 原代码: `if (inlen < (size_t)tmp[0] - 4)`
- 修改后: `if (inlen < 4 + (size_t)tmp[0])`
```
标题: kek_unwrap_key(): Fix incorrect check of unwrapped key size · openssl/openssl@9e91358 · GitHub -- 🔗来源链接
标签:patch
神龙速读:
### 关键信息
- **漏洞编号**: CVE-2025-9239
- **修复提交**: 9e91358
- **提交者**: Viktor Dukhovni
- **提交时间**: 昨天
- **受影响文件**: `crypto/cms/cms_pwri.c`
- **修复内容**:
- 函数: `kek_unwrap_key()`
- 问题: 错误检查未包装密钥大小,导致可能的越界读取和写入。
- 具体修复: 修改条件判断,从 `(inlen < (size_t)tmp[0] - 4)` 改为 `(inlen < 4 + (size_t)tmp[0])`。
- **审查者**:
- Neil Horman
- Matt Caswell
- Tomas Mraz
- **备注**: 该修复已从其他提交中 cherry-picked。
标题: kek_unwrap_key(): Fix incorrect check of unwrapped key size · openssl/openssl@bae259a · GitHub -- 🔗来源链接
标签:patch
神龙速读:
### 关键漏洞信息
- **CVE编号**: CVE-2025-9239
- **修复提交**: bae259a
- **提交者**: Viktor Dukhovni
- **提交时间**: 昨天
#### 漏洞描述
- **问题**: 在 `kek_unwrap_key()` 函数中,对解包密钥大小的检查不正确。
- **影响**: 由于检查偏移了8字节,可能导致最多8字节的越界读取和最多4字节的覆盖。
#### 修复措施
- **文件**: `crypto/cms/cms_pwri.c`
- **修改**:
- 将条件判断从 `(inlen < (size_t)tmp[0] - 4)` 修改为 `(inlen < 4 + (size_t)tmp[0])`。
- 防止因无效长度值导致的越界访问。
#### 审核人员
- Neil Horman
- Matt Caswell
- Tomas Mraz
标题: kek_unwrap_key(): Fix incorrect check of unwrapped key size · openssl/openssl@5965ea5 · GitHub -- 🔗来源链接
标签:patch
神龙速读:
从这个网页截图中可以获取到以下关于漏洞的关键信息:
- **CVE编号**: CVE-2025-9239
- **漏洞描述**: 在`kek_unwrap_key()`函数中,对未包装密钥大小的检查不正确。检查偏移了8个字节,因此可能会导致最多8个字节的越界读取和最多4个字节的覆盖。
- **修复提交**: 提交ID为`5965ea5`,由Viktor Dukhovni提交。
- **受影响文件**: `crypto/cms/cms_pwri.c`
- **代码更改**:
- 修改了第245行的条件判断语句,从`if (inlen < (size_t)tmp[0] - 4)`改为`if (inlen < 4 + (size_t)tmp[0])`。
- 这一修改修正了对输入长度的错误计算,防止了潜在的缓冲区溢出问题。
```markdown
### 关键信息
- **CVE编号**: CVE-2025-9239
- **漏洞描述**: `kek_unwrap_key()`函数中的未包装密钥大小检查不正确,可能导致最多8个字节的越界读取和最多4个字节的覆盖。
- **修复提交**:
- 提交ID: `5965ea5`
- 提交者: Viktor Dukhovni
- **受影响文件**: `crypto/cms/cms_pwri.c`
- **代码更改**:
- 修改第245行的条件判断语句:
- 原代码: `if (inlen < (size_t)tmp[0] - 4)`
- 新代码: `if (inlen < 4 + (size_t)tmp[0])`
- 修复了对输入长度的错误计算,防止缓冲区溢出。
```
标题: kek_unwrap_key(): Fix incorrect check of unwrapped key size · openssl/openssl@a79c4ce · GitHub -- 🔗来源链接
标签:patch
标题: Sign in to your account · GitHub -- 🔗来源链接
标签:patch
标题: Sign in to your account · GitHub -- 🔗来源链接
标签:patch
暂无评论