支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:736

73.6%
一、 漏洞 CVE-2025-15536 基础信息
漏洞信息
                                        # BYVoid OpenCC 极大匹配堆溢出漏洞

## 概述
BYVoid OpenCC 1.1.9 及之前版本中存在一个堆缓冲区溢出漏洞,位于 `src/MaxMatchSegmentation.cpp` 文件的 `opencc::MaxMatchSegmentation` 函数。

## 影响版本
OpenCC 1.1.9 及以下版本。

## 细节
漏洞源于 `opencc::MaxMatchSegmentation` 函数对输入数据处理不当,导致堆-based 缓冲区溢出。攻击者可利用该漏洞操纵内存,可能实现本地代码执行。

## 影响
攻击者可利用公开的漏洞利用代码在本地触发缓冲区溢出,可能导致程序崩溃或任意代码执行。漏洞利用已公开,需立即采取防护措施。官方建议应用补丁(提交哈希:345c9a50ab07018f1b4439776bad78a0d40778ec)进行修复。
                                        
神龙判断

是否为 Web 类漏洞: 未知

判断理由:

N/A
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
BYVoid OpenCC MaxMatchSegmentation.cpp MaxMatchSegmentation heap-based overflow
来源:美国国家漏洞数据库 NVD
漏洞描述信息
A weakness has been identified in BYVoid OpenCC up to 1.1.9. This vulnerability affects the function opencc::MaxMatchSegmentation of the file src/MaxMatchSegmentation.cpp. This manipulation causes heap-based buffer overflow. The attack is restricted to local execution. The exploit has been made available to the public and could be used for attacks. Patch name: 345c9a50ab07018f1b4439776bad78a0d40778ec. To fix this issue, it is recommended to deploy a patch.
来源:美国国家漏洞数据库 NVD
CVSS信息
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
来源:美国国家漏洞数据库 NVD
漏洞类别
堆缓冲区溢出
来源:美国国家漏洞数据库 NVD
二、漏洞 CVE-2025-15536 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2025-15536 的情报信息
  • 标题: Fix two out-of-bounds read issues when handling truncated UTF-8 input… · BYVoid/OpenCC@345c9a5 · GitHub -- 🔗来源链接

    标签:patch

    神龙速读:
                                            ### 关键信息总结
    
    #### 1. 漏洞类型
    - **堆越界读(CWE-125)**
    
    #### 2. 漏洞原因
    - 在处理截断或畸形的UTF-8输入时,存在以下问题:
      - **MaxMatchSegmentation**:`NextCharLength()`返回的值可能大于剩余输入长度,导致计数器下溢,进而越界读取。
      - **转换逻辑**:字典匹配中的长度处理可能导致读取越过输入缓冲区末尾。
    
    #### 3. 解决方法
    - **显式跟踪输入缓冲区末尾**
    - **在每次迭代中重新计算剩余长度**
    - **将匹配字符和键长度限制为剩余缓冲区大小**
    - **防止越过空终止符读取**
    
    #### 4. 安全影响
    - 处理不可信输入时可能有安全风险
    
    #### 5. 测试覆盖
    - 增加了对截断UTF-8序列的测试,确保修复后的行为正确且无额外数据泄露。
                                            
    Fix two out-of-bounds read issues when handling truncated UTF-8 input… · BYVoid/OpenCC@345c9a5 · GitHub
  • 标题: Fix two out-of-bounds read issues when handling truncated UTF-8 input by frankslin · Pull Request #1005 · BYVoid/OpenCC · GitHub -- 🔗来源链接

    标签:issue-tracking

    神龙速读:
                                            ## 关键漏洞信息
    
    ### 漏洞类型
    - **CWE-125**: 两个独立的越界读取问题
    
    ### 漏洞描述
    - **MaxMatchSegmentation**:
      - `NextCharLength()` 返回的值可能大于剩余输入大小。
      - 原始逻辑从 `size_t` 长度计数器中减去此值,可能导致下溢和后续的越界读取。
      
    - **Conversion**:
      - 类似的长度处理会允许读取超出输入缓冲区末尾的数据,在字典匹配过程中,可能会传播无意的字节到转换输出。
    
    ### 修复措施
    - 显式跟踪输入缓冲区的末尾。
    - 每次迭代重新计算剩余长度。
    - 将匹配字符和键长度限制在剩余缓冲区大小内。
    - 阻止在空终止符之后读取。
    
    ### 安全影响
    - 当处理不受信任的输入时,这些问题可能具有安全影响,被分类为堆越界读取问题。
    
    ### 测试覆盖
    - 为有效 UTF-8 输入保留现有行为,并为截断的 UTF-8 序列添加测试覆盖。
                                            
    Fix two out-of-bounds read issues when handling truncated UTF-8 input by frankslin · Pull Request #1005 · BYVoid/OpenCC · GitHub
  • 标题: [Bug] Heap-buffer-overflow in opencc::MaxMatchSegmentation::Segment · Issue #997 · BYVoid/OpenCC -- 🔗来源链接

    标签:issue-tracking

    神龙速读:
                                            ### 关键漏洞信息
    
    - **漏洞类型**: 堆缓冲区溢出 (Heap Buffer Overflow) 读取类型
    - **目标**: OpenCC
    - **崩溃类型**: 堆缓冲区溢出,尝试读取1字节超过分配的字符串缓冲区
    - **源文件**: `src/MaxMatchSegmentation.cpp`
    - **函数**: `openccc::MaxMatchSegmentation::Segment`
    - **线号**: 34 (列41)
    - **根因分析**: ASAN报告指出,在19字节分配区域之后0字节处发生大小为1的读取。`MaxMatchSegmentation::Segment`函数在处理输入字符串时未能正确检查边界条件,导致访问越界。
    - **环境**:
      - 操作系统: Linux x86_64
      - 编译器: Clang
      - 构建配置: 以启用ASan的发布模式
    - **修复**: 提交`b4268b3`修复了`MaxMatchSegmentation::Segment`中的堆缓冲区溢出。
                                            
    [Bug] Heap-buffer-overflow in opencc::MaxMatchSegmentation::Segment · Issue #997 · BYVoid/OpenCC
  • 标题: 1222/repro at main · oneafter/1222 · GitHub -- 🔗来源链接

    标签:exploit

    神龙速读:
                                            # 关键信息
    
    ## 仓库信息
    - **仓库名称**: oneafter/1222
    - **仓库状态**: Public
    
    ## 文件信息
    - **文件路径**: `1222/repro`
    - **最近提交信息**:
      - 提交者: oneafter
      - 提交信息: Add files via upload
      - 提交哈希: 2c48d63
      - 提交时间: last month
    
    ## 文件内容
    - `harness.cpp` 文件存在
    - `repro` 目录下内容:
      - 第1行: 测试转换
      - 第2行: 未知内容 (空白或特殊字符)
    
    ## 其他信息
    - 无Fork记录
    - 无Star记录
    - 无Issues和Pull requests记录
    ```
    
    从截图中获取到的关键信息主要集中在仓库的基本信息、文件及其内容、以及最近的提交记录。文件内容表明可能正在进行某种测试或转换的代码试验,但由于内容仅包含“测试转换”及一个空白行,具体的漏洞细节并未直接显示。需要进一步分析代码内容和上下文来确定是否存在漏洞。
                                            
    1222/repro at main · oneafter/1222 · GitHub
  • 标题: Login required -- 🔗来源链接

    标签:signaturepermissions-required

    神龙速读:
                                            - **CVE**: CVE-2025-15536
    - **Issue ID**: 997
    - **Title**: BYVoid OpenCC up to 1.1.9 MaxMatchSegmentation.cpp MaxMatchSegmentation heap-based overflow
    - **Reference IDs**:
        - VDB-341708
        - CVE-2025-15536
        - Issue 997
    - **Access Requirements**: Login required for full details
    - **Additional Info**: Exploit pricing information available underground
                                            
    Login required
  • 标题: Submit #733347: BYVoid OpenCC ver.1.1.9 and master-branch Heap-based Buffer Overflow -- 🔗来源链接

    标签:third-party-advisory

    神龙速读:
                                            ```md
    ## 漏洞关键信息
    
    ### 漏洞标题
    - **BYVoid OpenCC ver.1.1.9 and master-branch Heap-based Buffer Overflow**
    
    ### 漏洞描述
    - **类型**:Heap Buffer Overflow (Read)
    - **症状**:应用程序在处理 specially crafted string 时崩溃,堆溢出错误。
    - **位置**:openc::MaxMatchSegmentation::Segment 函数中,尝试读取分配的字符串缓冲区之外 1 字节。
    
    ### 环境
    - **操作系统**:Linux x86_64
    - **编译器**:Clang
    - **配置**:Release 模式,启用 ASan
    
    ### 漏洞详情
    - **受影响的组件**:OpenCC 的 openc::MaxMatchSegmentation::Segment 函数
    - **触发原因**:处理特定长度(19 字节)的分配区域后紧接着读取 1 字节
    - **堆栈调用追踪**:
      - SimpleConverter::Convert -> MaxMatchSegmentation::Segment
    
    ###复现步骤
    1. 使用 ASan 编译 OpenCC 并启用 Release 优化。
    2. 编译 OpenCC 框架并启用 AddressSanitizer。
    3. 运行崩溃文件 ,触发 AddressSanitizer 报告的 heap-buffer-overflow。
    
    ### 修复
    尚未提供。
    ```
                                            
    Submit #733347: BYVoid OpenCC ver.1.1.9 and master-branch Heap-based Buffer Overflow
  • https://vuldb.com/?id.341708vdb-entrytechnical-description
  • https://nvd.nist.gov/vuln/detail/CVE-2025-15536
四、漏洞 CVE-2025-15536 的评论

暂无评论


发表评论