根据用户的要求,我需要从提供的网页截图中提取关于漏洞的关键信息,并用简洁的中文Markdown格式进行总结。 1. 漏洞概述 (Vulnerability Overview): 标题: Submit #718151: NASA cFS 7.0.0 CFE_SB_TransmitMsg memcopy trusts CCSDS header size without source 描述: 函数在从 CCSDS 头部获取消息长度并用于从源缓冲区复制消息时,没有验证调用者提供的实际源缓冲区是否包含足够的消息数据。如果 CCSDS 头部字段指示的源缓冲区分配的消息长度实际上大于已分配的消息数量,且超过读取数据(over-read data)超出了该消息的 ID,就会发生内存越界读取。 根本原因: 这是一个由多个发现共同导致的系统级问题: 接收层(接收所有数据包)和 消息机制同时启用。 影响: 在启用 消息机制的 RTOS 部署中,如果没有 MMU 隔离,这会导致跨应用的信息泄露。最大越界读取量受 限制(默认 32,768 字节)。 2. 影响范围 (Impact/Scope): 软件: NASA cFS 7.0.0 (Core Flight System) 具体函数: 条件: 需要同时启用 接收层和 消息机制,且没有 MMU 隔离。 3. 修复方案 (Fix/Mitigation): 预期行为: 应该验证由 CCSDS 导出的消息大小是否不超过实际源缓冲区大小,然后再执行内存复制。 当前状态: 页面提到 "Proof-of-concept source and ASan output are available upon request"(概念验证源码和 ASan 输出可应要求提供),暗示这是一个已提交但可能尚未完全修复或正在审查的漏洞报告。 4. 提取代码 (POC/Exploit Code): 页面中有一段 "To Reproduce"(复现步骤),这实际上就是 POC 的逻辑描述,虽然不是完整的可执行代码块,但包含了关键步骤。 步骤如下: 1. 在头部分配一个小消息缓冲区(例如 32 字节)。 2. 设置 CCSDS 长度字段以声明一个更大的消息大小(例如 1024 字节)。 3. 调用 并传入该缓冲区。 4. 内部 将从 32 字节缓冲区复制 992 字节的相邻内存到 SB 缓冲区并分发给所有订阅者。 5. 格式化输出: 将上述信息整理成用户要求的 Markdown 格式。 标题: 漏洞概述 内容: 总结描述部分。 标题: 影响范围 内容: 总结影响部分。 标题: 修复方案 内容: 总结预期行为部分。 标题: 复现步骤 (作为代码块/伪代码提取) 内容: 提取 "To Reproduce" 部分的内容。 最终检查: 是否简洁?是。 是否包含关键信息?是。 是否提取了代码/复现步骤?是。 是否跳过了无关信息?是。 开始生成最终输出。 漏洞概述 漏洞编号: Submit #718151 受影响组件: NASA cFS 7.0.0 (Core Flight System) 漏洞描述: 函数在从 CCSDS 头部获取消息长度并用于从源缓冲区复制消息时,未验证调用者提供的实际源缓冲区是否包含足够的消息数据。如果 CCSDS 头部字段指示的源缓冲区分配的消息长度实际上大于已分配的消息数量,且超过读取数据(over-read data)超出了该消息的 ID,就会发生内存越界读取。 影响范围 触发条件: 这是一个系统级问题,由 接收层(接收所有数据包)和 消息机制同时启用导致。 后果: 在启用 消息机制的 RTOS 部署中,如果没有 MMU 隔离,这会导致跨应用的信息泄露。 最大越界量: 受 限制(默认 32,768 字节)。 修复方案 预期行为: 应该验证由 CCSDS 导出的消息大小是否不超过实际源缓冲区大小,然后再执行内存复制。 复现步骤 (To Reproduce)