根据用户的要求,我需要从提供的网页截图中提取关于漏洞的关键信息,并用简洁的中文markdown格式进行总结。 1. 漏洞概述 (Vulnerability Overview): 标题: Bug 2830316 (CVE-2020-5164) - CVE-2020-5162 virtio-net: virtio-net: Denial of Service via unvalidated descriptor count in unmap request 状态: NEW (新) 严重性: medium (中等) 描述: 这是一个拒绝服务(DoS)漏洞。 原因1: 是256,但理论上的广告支持数量可能更多,导致越界。 原因2: 是256,但实际广告的最大值可能更小,导致越界。 根本原因: 在 unmap 请求中未验证描述符数量(descriptor count)。 触发条件:用户缓冲区(user buffer)未验证,且收到 unmap 请求时,如果描述符数量未验证,可能导致越界访问。 2. 影响范围 (Impact/Scope): 组件: Security Response (安全响应) 版本: unspecified (未指定,但提到 Found in Version: Clone Of) 环境: Environment (未具体说明,但通常指虚拟化环境) 目标平台: virtio-net (VirtIO 网络驱动) CC List: virtio-net (CC List 显示为 virtio-net,暗示这是主要受影响组件) 3. 修复方案 (Fix/Resolution): 描述中的建议: 使用 作为 的大小,而不是让广告的最大值成为实际最大值。 使用 而不是直接指向 。 确保 是实际递增的数组大小。 最后,检查用户缓冲区是否足够大,以便安全地访问 。 状态: 目前状态为 NEW,尚未修复(Last Closed: Unchanged)。 4. 代码提取 (Code Extraction): 页面中没有明显的独立代码块(POC),但在描述部分提到了具体的变量名和逻辑,如 , , 。没有完整的 C 代码块。 5. 总结构建: 将上述信息整合成简洁的中文markdown。 Drafting the response: 标题: CVE-2020-5164 / Bug 2830316 概述: virtio-net 驱动在 unmap 请求中未验证描述符数量,导致拒绝服务(DoS)。 影响: 中等严重性。涉及 virtio-net 组件。 修复: 需要验证描述符数量,确保数组访问安全,检查用户缓冲区大小。 Let's refine the "Fix" part based on the text: "Use MAX_STAGED_SEGMENTS as the size of adaptest->n32->n32_xd to make sure the advertised maximum is actually supported; advertise the full range instead of limiting to MAX_STAGED_SEGMENTS - 1. Make MAX_STAGED_SEGMENTS be actually incrementing the array size. And finally, check first that the user buffer is even large enough that we can safely access block->length in it." Okay, ready to generate the final output. 漏洞总结:CVE-2020-5164 (Bug 2830316) 漏洞概述 漏洞名称: virtio-net: virtio-net: Denial of Service via unvalidated descriptor count in unmap request 严重性: 中等 (medium) 状态: 新 (NEW) 描述: 这是一个拒绝服务(DoS)漏洞。 在处理 unmap 请求时,未对描述符数量(descriptor count)进行验证。 问题在于 设置为 256,但理论上的广告支持数量可能更多,或者实际广告的最大值可能更小,导致数组越界访问。 攻击者可以通过发送未验证的 unmap 请求,利用未验证的用户缓冲区触发此问题。 影响范围 组件: virtio-net (VirtIO 网络驱动) 环境: 虚拟化环境 (涉及 QEMU 和 virtio-net 交互) 受影响版本: 未明确指定具体版本,但标记为 "Clone Of" 和 "Environment"。 修复方案 根据页面描述,建议的修复逻辑如下: 1. 使用 作为 的大小,确保广告的最大值实际上是被支持的。 2. 使用 而不是直接限制在 。 3. 确保 实际上是递增的数组大小。 4. 最后,首先检查用户缓冲区是否足够大,以便能够安全地访问 。 代码/技术细节 页面未提供完整的 POC 代码,但提到了以下关键变量和逻辑: (值为 256) 涉及 的 unmap 请求处理逻辑。