← 返回内容列表

GhostLock:一个潜伏 15 年的 Linux 栈溢出漏洞启示

GhostLock:一个潜伏 15 年的 Linux 栈溢出漏洞启示

安全研究员披露 GhostLock——一个在所有主流 Linux 发行版中潜伏约 15 年的栈 Use-After-Free 漏洞,拿下 HN 347 分。本文讲清它是什么、为何能藏这么久,以及对工程实践的启示(非利用细节)。

本周 Hacker News 上最硬核的安全帖,是研究人员披露的 GhostLock:一个被认为潜伏在几乎所有主流 Linux 发行版约 15 年栈 Use-After-Free(UAF漏洞。它拿到 347 分的高赞,不是因为"多新",而是因为它让人后怕:这么基础的东西,怎么能藏这么久?

用大白话理解栈 UAF

程序在栈上申请一块临时空间放数据,用完"释放"后本应不再碰它。但如果代码逻辑有疏漏,释放之后又去读/写那块已经不属于它的内存,就出现了"释放后使用"。攻击者若能在释放与误用之间塞入自己的数据,就可能篡改控制流——这是一类经典且危险的内存安全 bug。

栈 UAF:释放后仍在用(示意) ① 申请栈空间 ② 释放(应停用) ③ 仍读/写 → 危险 正确做法:释放后立刻把指针置空,并杜绝跨作用域复用

图1:释放后继续使用同一块内存,是 UAF 类漏洞的根源(仅示意)

为什么能藏 15 年

这类漏洞的"长寿"并不意外:它往往藏在极边缘的执行路径里,常规测试碰不到;触发条件苛刻,需要特定的调用顺序与时机;而且 C/C++ 生态里"能跑就行"的文化,让隐患长期被忽略。等被发现时,受影响代码已被复制进无数发行版与下游项目。

2011 引入 长期潜伏:边缘路径常规测试难触发 2026 披露

图2:从引入到披露,漏洞在边缘路径中潜伏约 15 年(示意)

给工程实践的启示

  • 拥抱内存安全语言:Rust 等语言在编译期杜绝整类 UAF,正被引入 CPython、Postgres 等核心项目。
  • 持续审计 + fuzzing:靠"能跑"不够,要对边缘路径做系统化模糊测试。
  • 依赖可追溯:能从 VCS 直接锁定依赖,出问题能快速定位影响面。
  • 最小攻击面:和 AI 代理安全同理——把风险关进更小、更可验证的边界里。

关联推荐

评论 (0)

加载评论中…

GhostLock:一个潜伏 15 年的 Linux 栈溢出漏洞启示 | 必学必会