一个AI工具挖出了藏在Linux里15年的致命漏洞,另一个AI却因为一个被录错的数字,让四辆警车把无辜记者当成盗车贼围了起来。
「你带枪了吗?下车!」
一个普通的周日下午,汽车记者Joel Feder开着一辆15.5万美元的Range Rover去退货,倒车刚出车位两英尺,四辆警车从四个方向飞驰而来,把他和妻子团团围住。
警方手按枪柄,如临大敌。

2026年6月28日12点21分,警方执法记录仪拍下Feder被围堵的一刻。他的车牌被Flock系统误判为一块失窃车牌。(图源:Joel Feder / Instagram)
警察跳下车冲他大叫,这种情形很容易迅速恶化,因此,Feder只得听从命令,双手高举下了车。
他成了一名的偷车嫌犯。
可他根本没偷车。让他被当成贼的,是2000英里外一次简单的录入错误,外加一套永不休息的AI摄像头网络。
就在几乎同一时间,另一个AI替人类挖出了藏在Linux内核里整整15年、几乎所有发行版都中招的一个致命漏洞。
同样是「识别模式,自动判断,触发行动」,一个AI在替人类补漏,一个AI差点害人,这就是今天我们要说的故事。
先说AI替人类补漏这件事。
前不久,安全公司Nebula Security披露,他们用AI驱动的漏洞挖掘工具VEGA,找到了一个代号GhostLock的Linux内核漏洞(CVE-2026-43499)。

2026年7月7日,Nebula Security公开GhostLock(CVE-2026-43499)技术报告,称由AI工具VEGA发现,横跨2011年以来几乎所有Linux发行版。(图源:Nebula Security)
这个漏洞,已经潜伏了15年。
它2011年就被引入,自那以后,几乎每一个主流Linux发行版都默认带着它,却始终没人发现。
这意味着:全世界跑着数不清的服务器、云主机、容器,底座上都埋着这颗雷。
它有多容易引爆?攻击者不需要任何特殊权限,也不需要什么罕见配置,只靠普通的线程调用,就能一步步爬到最高权限,甚至逃出容器。
Nebula把它做成了一条97%稳定的提权链,在测试机上,从一个普通用户到root,大约只要5秒。凭这个成果,Google的KernelCTF奖励了他们92337美元。

「GhostLock(CVE-2026-43499)提权演示:一个普通用户运行漏洞利用程序,几秒后终端回显uid=0(root),直接拿到最高权限。(视频源:Nebula Security)」
这个漏洞藏在Linux内核的锁管理机制里,说白了,是内核「认错了人」。
先打个比方。内核里有一个叫remove_waiter()的清理函数,专门负责一件事:一个线程排队等锁,等到了或者不等了,就把它留下的排队记录清干净。
它当初只考虑了最简单的一种情况——谁排的队,谁自己来销号。所以它默认「现在站在窗口前的这个线程,就是要销号的那个」,每次都照着「当前线程」去清。
在自己排队、自己销号的年代,这套假设一直没出过错。
可后来内核多了一种新玩法:一个线程可以替另一个「正在睡觉」的线程去排队——所谓睡觉,就是它在等锁时被挂起、让出了CPU,停在原地等人唤醒。
麻烦就出在这:真正排队的那个线程睡着了,站在窗口前销号的,其实是个「代办的人」。
清理函数还是老脑筋,把「代办的人」的记录清掉了,却没动那个真正在排队、真正睡着的线程。
问题是,那个睡着的线程手里,还攥着一张写着「我的排队信息在这里」的纸条,这个纸条指向的,是它自己的一小块临时内存(也就是「栈」,线程用完就会归还的那种)。
等它一睡醒、从系统调用里返回,这块内存立刻被归还、被别的数据占用了。可那张纸条还在,还指着这块已经易主的内存。
这就是所谓的悬空指针:一个还在被信任、却已经指向「废弃且被别人占用」的内存的指针。use-after-free漏洞,根子都在这。

GhostLock利用链示意图:三个线程(waiter、owner、consumer)制造死锁循环,触发-EDEADLK回滚,留下悬空指针;随后攻击者伪造内核结构、实现受控写入,最终劫持控制流拿到root。(图源:Nebula Security)
更讽刺的是,内核自己的安全检查机制lockdep完全没抓到它。
原因很简单:lockdep只检查「有没有人持有这把锁」,却不检查「这把锁是不是属于你该清理的那个线程」。
锁对了,人错了,检查也过了。
就是这么一个十几年前的误用,被一步步放大,最后变成了对整台机器的完全掌控。
攻击者拿到那个悬空指针后,可以向它指向的已释放内存里喷射伪造数据,骗内核把它当成合法结构读取,借此实现受控写入,进而劫持内核函数表,最终拿到root。
虽然这次是AI辅助工具帮人类研究员找到了这处沉睡15年的死角,但它揭露了一个惊人的现实:
过去要靠顶尖专家逐行读代码、凭直觉才可能碰到的问题,如今自动化工具开始成规模地翻出来。
就在2026年,一连串Linux提权漏洞被陆续曝光,其中好几个都是自动化工具找到的。
它们几乎都藏在最古老、被用得最多、却多年没人重读过的内核角落里,一直安然无事。
回到开头Feder在停车场的那次惊魂。
事后,他才拼出事件的前因后果。真正被报失的车牌是34 03 DTM,可当它被录进全国失窃数据库(NCIC)时,中间那个小号的「03」被漏掉了,只记成34 DTM。
就因为少了两个数字,一切就此走偏。
而Feder这辆测试车的车牌是34 10 DTM。由于新泽西厂商牌照格式特殊,中间数字字体极小,Flock的AI摄像头根本没读到那个小数字,只认出「34 DTM」,便开始向沿途所有警局报警。

警方出示的Flock摄像头抓拍画面,车牌读作34 10 DTM,中间「10」字号极小。系统只认出「34 DTM」便触发报警。(图源:Joel Feder / The Drive)
Flock的摄像头每月要扫过约200亿次车牌。
一次发生在洛杉矶的录入笔误,就这样被一张覆盖全国的自动识别网络接力放大,从加州传到明尼苏达,最后变成四辆警车、一架无人机,以及一小时的紧张对峙。警察全程手按枪套,但始终没有拔枪。
更狠的是,警察告诉Feder,那一周明尼苏达还有另外四辆挂着相同格式厂商牌照的车也在被追踪,他只是第一个被警察堵住的。
临走时警察撂下一句话:「你算走运,这是在普利茅斯。要是在明尼阿波利斯,他们绝对是拔枪冲上来的。」
「人会犯错,这很正常,」Feder后来说,「但它被一套全国性的监控系统放大了。」
他还写道,红绿灯上的摄像头正在追踪我们的车、我们的设备、我们的宠物,甚至我们本人,而这还只是开始,下一步它们可能被装上孩子的校车。
你偷没偷车根本不重要,一旦这些系统盯上你,事情只会朝一个方向走。
Feder的话,几乎就是整个AI安全时代的一个注脚。
把两件事放在一起看,反差之强,不由让人深思。
一面,AI发现了人类15年没发现的漏洞,让世界更安全;另一面,AI放大了一次录入错误,把一个无辜者推到了四辆警车面前。
可它们背后的逻辑是相同的,区别只在于输入端是什么。
在GhostLock那个故事中,AI读的是真实的内核代码,它挖出了真问题;而在Flock这个故事中,AI拿到的输入本身就是错的,它便忠实地把错误执行下去,而且比任何人类警员都更快、更广。
所以Flock这件事的责任,还不能简单归咎于「AI犯错」。
错的输入是人录进去的,该有的人工复核是人省掉的,AI只是把这两头的疏忽,用机器的速度和规模,成倍执行了下去。
它就像一个乘号。乘号本身没有错,可它前面的数字一旦是负的,结果就会成倍地坏下去。
真正让人不安的,是Feder的遭遇,正在越来越多的领域悄悄上演。
如今,AI正挤进安全、执法、金融这些高风险决策链。
它确实能发现人类漏掉的漏洞,这是真本事;但它也会把人类的错误规模化,这是真风险。
这两件事,是一枚硬币的两面。

一台Flock车牌识别摄像头架在路口红绿灯上方的立柱上,后方黑色方块是它的太阳能板。这类设备已铺设在全美数千个社区。(图源:Frank W. Lewis/Signal Cleveland)
GhostLock的故事,告诉我们AI已经拥有超越人类逐行审查的潜力,未来的漏洞猎杀,或许不再靠人一行行读代码。
而Flock正相反:它提醒我们,关键系统里那道人工复核的关卡,一个都不能省。
真正该问的,不是AI会不会犯错——它当然会——而是它犯错时,还有没有一个人能及时喊停。
AI时代最大的漏洞,也许已经不在代码里,而在我们把最终判断权交出去的那一刻。
参考资料:
https://nebusec.ai/research/ionstack-part-2/
https://www.thedrive.com/news/how-flock-cameras-wrongly-tracked-me-for-days-over-stolen-plates-and-sent-police-after-me
https://www.untempled.com/guilhermen/art/ai-found-a-secret-computer-bug-hidden-for-15-years-plus-why-cops-chased-a-reporter-over-a-typo-cmrgwcw7o0001ky04qu4ubln8
文章来自于"新智元",作者 "元宇"。