全部产品
Search
文档中心

:ECS官方镜像受CVE-2024-57843的影响范围和修复情况

更新时间:Aug 21, 2026

本文介绍阿里云ECS官方Linux镜像受CVE-2024-57843(virtio-net驱动内存溢出)漏洞的影响范围、镜像修复状态,以及存量实例的修复方法和临时缓解措施。

漏洞概述

CVE-2024-57843是Linux内核virtio-net驱动在处理mergeable RX缓冲区时存在的一个内存溢出缺陷,由上游commit 295525e29a5b(virtio_net: merge dma operations when filling mergeable buffers)引入,并由commit 6aacd1484468(virtio-net: fix overflow inside virtnet_rq_alloc)修复。

Red Hat对该漏洞的评级为Moderate,Ubuntu的评级为Medium。

问题现象

受影响实例在特定条件下可能出现以下现象:

  • 实例无预警崩溃(kernel panic),dmesg中出现general protection fault或pagealloc: memory corruption相关日志。

  • 大文件传输失败,例如通过scp传输约100 MB及以上文件时中断。

  • 内核数据结构静默损坏,表现为页表页、slab对象、buffer_head等被意外覆盖,最终导致不可预测的系统行为。

根因分析

该漏洞的本质是virtio-net驱动在向mergeable RX缓冲区填充数据时发生了16字节跨页溢出。

在premapped DMA模式(do_dma=true)下,每个frag页需要在页首预留16字节用于存放映射信息。当以下条件同时满足时,驱动会分配一个4096字节(order-0)的页,但实际需要写入16 + 4096 = 4112字节,导致最后16字节写入到物理相邻的下一页,造成内存静默损坏:

序号

触发条件

说明

1

premapped DMA已激活

页首需预留16字节头部。

2

mergeable RX缓冲区且未启用XDP

决定缓冲区长度的计算路径。

3

MTU >= 4084且流量包长EWMA > 4020

使len饱和到4096。

4

frag页从order-3回退到order-0(瞬态内存压力)

order-3页(32 KB)可容纳,order-0(4 KB)不可容纳。

影响范围

发行版

受影响版本

受影响原因

ECS镜像修复状态

Ubuntu

24.04 LTS

首版发布即引入(6.8内核基线包含6.6 patch),修复版本为6.8.0-58.60。

2025年5月发布的镜像已修复(6.8.0-60-generic)。

CentOS Stream

9

跟随RHEL上游,修复版本为5.14.0-570.12.1.el9_6。

2025年3月修复版镜像已修复。

Fedora

40(已EOL)

引入版本为kernel-6.6.2-201.fc40,修复版本为6.12.5-200。

已EOL,暂无更新计划。

存量实例修复方案

各发行版的修复方案均需要升级内核相关软件包,并重启系统后才能生效。

Ubuntu 24.04 LTS

升级内核至linux-image-6.8.0-58-generic(6.8.0-58.60)或更高版本,并重启实例。

sudo apt update
apt-cache madison linux-image-generic
sudo apt install -y --only-upgrade linux-image-generic
sudo reboot

# 重启后确认内核版本不低于 6.8.0-58
uname -r

CentOS Stream 9

升级内核至kernel-5.14.0-570.12.1.el9_6或更高版本,并重启实例。

sudo dnf clean all && sudo dnf makecache
sudo dnf -y update kernel
sudo reboot

# 重启后确认内核版本不低于 5.14.0-570.12.1.el9_6
uname -r

Fedora 40(已EOL)

升级内核至6.12.5-200或更高版本,并重启实例。

sudo dnf clean all && sudo dnf makecache
sudo dnf -y update kernel
sudo reboot

# 重启后确认内核版本不低于 6.12.5-200
uname -r
说明

Fedora 40已停止维护,建议升级至Fedora 41或更高版本。

临时缓解措施

无。建议升级到修复版本的内核。

注意事项

  • 请勿在生产环境设置net.core.high_order_alloc_disable=1。该参数会在存在漏洞的内核版本大幅增加漏洞触发概率,但在没有漏洞的版本不受影响。

  • 新建实例时,请优先选用已修复版本的官方镜像。

  • 如果升级内核后仍出现类似崩溃现象,请收集vmcore并提交工单协助排查。

参考链接