一句话定义

零日漏洞(zero-day vulnerability)是指厂商还没有发布补丁时就被公开或被利用的漏洞。

“零日” 中的 “0” 指的是厂商手上的修复时间 —— 0 天,意味着补丁不存在。

用一个比喻

想象一款流行的智能门锁,全国几百万户在用。

某天有人发现这款锁有一个设计缺陷 —— 用一根特定形状的铁丝从某个角度伸进去拨一下,门就开了。

接下来分两种情况:

情况 A:发现的人是诚实的工程师。 他通知锁厂,详细告知方法。锁厂开始设计新锁芯,几个月后召回旧锁、给所有用户换上修复版。这几个月里理论上别人也可能独立发现这个缺陷,但概率不高,整体风险可控

情况 B:发现的人是小偷。 他不通知任何人,可能自己用,也可能把方法卖给其他小偷。锁厂完全不知道这件事,直到某天小区里突然连续几十户被入室盗窃,警方调查后才发现锁有缺陷。

第二种情况就是零日漏洞。

漏洞客观存在;锁厂”修复天数”为 0;小偷”利用天数”已经开始了一段时间。这中间是一段所有人都很被动的时间。

软件世界里的零日漏洞,结构和这个完全一样,只是把”门锁”换成了”操作系统 / 浏览器 / 某个库”,把”小偷”换成了 攻击者

为什么要单独有这个名字

绝大多数 漏洞 都是 已知漏洞(N-day):补丁 早已发布,用户只是没打。这类漏洞的责任在用户。

零日漏洞不同 —— 即使用户做了所有该做的事,也无法立刻修复。在补丁发布之前,能做的只有临时止血 —— 禁用相关功能、隔离网络、停掉受影响服务。

类型英文状态用户能做什么
已知漏洞N-day补丁已发布打补丁
零日漏洞0-day补丁不存在临时止血,等补丁

紧迫性:为什么必须立刻处理

零日漏洞之所以特别紧迫,本质是时间在攻击者一边

披露后的几小时到几天,是攻击的高峰

漏洞细节进入互联网公共领域之后,自动化扫描工具会被快速更新。攻击者并不需要”看上”哪台服务器 —— 他们用扫描器对整个互联网范围扫一遍,找出所有还没打补丁的目标。

这意味着即便你的服务器没有任何价值、没有任何敏感数据,只要 IP 能被访问到,就会被扫到

每多拖一天,攻击工具越成熟

披露当天的利用代码可能还需要一定技术门槛。一周之内,会有人把它打包成一键利用工具;一个月之后,这些工具会被集成到僵尸网络的传播模块里,变成自动扩散

被攻击的不一定是”你”,而是”任何还没修的机器”

零日漏洞的扫描通常是无差别的。攻击者并不知道这台机器是谁的、跑了什么 —— 他们只在乎”这个 IP 上有一个可利用的漏洞”。


不处理会发生什么

如果忽略一个适用于自己系统的零日漏洞,后果按严重程度递进:

1. 服务器被植入后门

攻击者获得权限后,第一件事通常是建立持久化访问 —— 添加新用户、修改 SSH 配置、安装隐藏的反弹 shell。一旦这一步完成,即使你后来打了补丁,攻击者依然能进入

2. 服务器被用作他人工具

被攻陷的服务器最常见的用途不是直接破坏,而是变成攻击者的资源:

  • 加入挖矿僵尸网络(你的 CPU 和带宽变成别人的钱,账单飙升)
  • 作为代理跳板,发起对其他目标的攻击(你的 IP 被列入黑名单)
  • 发送垃圾邮件或参与 [ddos-attack|DDoS]

3. 数据被读取或窃取

机器上所有文件对 root 都是开放的 —— 配置文件里的数据库密码、API key、SSH 私钥、客户数据、业务数据都会被读走。一旦数据离开服务器,就再也收不回来了。

4. 横向扩散到其他系统

攻击者拿到一台机器后,会用上面找到的凭证去尝试登录其他机器。如果你的服务器之间共享 SSH key、共用数据库密码、或在同一内网里 —— 一台沦陷往往意味着多台沦陷

5. 法律和合规责任

如果被窃取的数据涉及用户隐私,按多数国家和地区的数据保护法律,运营方有通报义务,可能面临罚款和诉讼。澳洲 NDB Scheme、GDPR、CCPA、个人信息保护法都包含类似条款。

6. 清理成本远高于修复成本

打补丁可能只需要 5 分钟。一旦被入侵,事后处理需要:

  • 取证分析(弄清楚攻击者做了什么、留了什么)
  • 重装系统(不能信任任何已存在的文件)
  • 轮换所有密钥和密码
  • 通知受影响用户
  • 调整内部安全策略

这个过程通常以周或月计算。


漏洞的生命周期

任何一个漏洞从存在到被修复,会经历四个阶段:

  1. 发现 —— 安全研究员或攻击者在代码中找到一个可被利用的缺陷
  2. 修复期 —— 如果是研究员,通过”负责任披露”流程通知厂商,行业惯例 90 天;如果是攻击者,不会通知任何人 —— 直接利用或出售。这种情况下漏洞处于”在野利用但无人知晓”的状态
  3. 公开披露(Day 0) —— 补丁与漏洞细节同时发布。这一刻起,全世界都知道这个漏洞,包括所有黑客
  4. 用户修复 —— 管理员将受影响系统升级

零日漏洞的特殊之处在于第 2 与第 3 阶段:攻击者已经在利用,而厂商还没有补丁

为什么披露日不是结束,而是放大的开始

公开披露看起来像漏洞的终点,实际上是攻击规模化的起点

披露之前,掌握漏洞的人很少,攻击是定向的、稀有的。披露之后,漏洞细节进入互联网公共领域,自动化扫描工具会被快速更新,“脚本小子”也能拿到现成的利用代码(PoC)扫描整个网络。

因此,漏洞披露后的几小时到几天通常是攻击高峰,而不是低谷。这也是为什么云厂商会主动给客户发邮件 —— 他们知道哪些用户跑了什么系统,主动通知比让用户自己刷新闻有效得多。


CVE 编号 + CVSS 评分

每一个被公认的漏洞都会获得一个全球统一的编号,叫 CVE(Common Vulnerabilities and Exposures),由 MITRE 公司维护。

CVE - 2026 - 31431
 ↓     ↓      ↓
前缀  披露年份  序号

CVE 编号只是身份标识,不表示严重程度。严重程度由 CVSS(Common Vulnerability Scoring System)评估,0-10 分:

分数等级通常含义
0.1 - 3.9Low影响有限,可纳入常规维护周期
4.0 - 6.9Medium应当重视,及时处理
7.0 - 8.9High立即评估,尽快修复
9.0 - 10.0Critical优先级最高,立即修复

提权类漏洞为什么特别危险

零日漏洞分很多类:信息泄露、远程代码执行、提权、拒绝服务等。其中提权漏洞(privilege escalation)在云环境中尤其危险。

提权漏洞的特点是:攻击者需要先有一个低权限账号才能利用。看起来像是”不那么危险” —— 但云服务器上低权限的入口非常多:

  • Web 应用被注入或被打穿
  • 容器逃逸
  • 弱密码 SSH
  • 泄露的 API key

任何一个低权限入口,配合一个内核提权漏洞,就能让攻击者获得 root 权限。提权漏洞把”小破坏”变成”完全控制”。

Linux 系统中的 root 权限相当于操作系统的最高权限:可以读写任意文件、加载 内核 模块、修改日志、安装持久化后门、横向移动到其他机器。


一个具体例子:CVE-2026-31431(Copy Fail)

2026 年 4 月 29 日披露的 Linux 内核 提权漏洞,是一个典型零日案例。

问题位置:Linux 内核中的 algif_aead 模块。这个模块为用户态程序提供加解密接口。

漏洞机制:在特定参数组合下,模块在内存复制过程中出现错误(“Copy Fail” 名字的由来),允许攻击者向不应写入的内核内存区域写入数据。

利用路径:

  1. 攻击者以低权限账号登入系统
  2. 调用 algif_aead,触发越界写入
  3. 修改内核数据结构,提升自身权限至 root

严重等级:High (7.0-8.9)

影响范围:几乎覆盖所有主流 Linux 发行版(Ubuntu、Debian、Fedora、AlmaLinux、Rocky Linux、CentOS Stream)。Flatcar Linux 因架构差异不受影响。


单一漏洞怎么应对

临时止血

禁用受影响的功能或模块。例如对 CVE-2026-31431,可以把 algif_aead 加入内核模块黑名单:

echo "blacklist algif_aead" | sudo tee \
  /etc/modprobe.d/blacklist-algif.conf
sudo rmmod algif_aead

代价是依赖该模块的程序会报错,但绝大多数服务器场景不依赖内核加密接口。

永久修复

升级到包含补丁的内核版本,并重启系统

# Debian / Ubuntu
sudo apt update && sudo apt upgrade linux-image-*
sudo reboot
 
# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo dnf upgrade kernel
sudo reboot

内核升级必须重启才能生效,这一点与用户态软件不同。


系统性应对零日风险

针对个别漏洞的应对只是终点。系统性应对零日风险靠这几件事:

1. 缩小攻击面

关闭不必要的服务、模块、端口。攻击面越小,受影响概率越低。

2. 最小权限原则

应用以最低权限运行,避免不必要的 root 进程。即使发生提权,攻击者也需要更多步骤才能拿到完全控制权。

3. 纵深防御

不依赖单一防线。SELinux/AppArmor、容器隔离、网络分段、IPS 共同工作,使单个漏洞难以构成完整入侵链。

4. 及时更新

漏洞披露后,攻击工具会快速成熟。从披露到自动化扫描出现,通常只有几小时到几天。补丁不是越早越好,而是越早越能避开攻击高峰

5. 订阅安全情报

  • 云厂商的安全公告邮件
  • 发行版的 security mailing list
  • CVE 数据库: cve.org
  • GitHub Advisory Database

常见误解

“零日漏洞 = 攻击者凭空入侵” —— 不是。大多数零日漏洞需要攻击者已有某种立足点(账号、shell、Web 入口)。零日是放大已有入侵能力的工具,而不是凭空创造入侵的工具。

“披露当天就修就够了” —— 披露后攻击工具迅速成熟,几小时之内可能就有自动化扫描。理想状态是披露当天完成评估,按优先级处理,high/critical 级别尽快修复。

“补丁打完就安全了” —— 内核 补丁需要重启才能生效。apt upgrade 之后没重启等于没修。uname -r 可以确认当前运行的内核版本。

“我跑的项目不重要,没人攻击我” —— 零日漏洞的扫描通常是无差别的。被攻击的不是”你”,是”任何还没修的机器”。


相关概念: Vulnerability · Patch Update · Threat Actor · Principle of Least Privilege · Kernel · Root User