Linux 常见 Exploit 安全漏洞分类与代表案例
在Linux安全领域,本地提权漏洞始终是攻击者最青睐的武器之一。这类漏洞一旦被利用,就能让一个普通用户瞬间获得系统的最高控制权。今天,我们就来系统梳理一下几类主要的漏洞,并看看那些在历史上和当下都“声名显赫”的代表案例。
一 内核本地提权
内核层面的漏洞往往影响深远,利用成功即可直接获取root权限。下面这几个,都是近年来极具代表性的“硬骨头”:
- 代表漏洞与要点如下(仅列常见高影响项):
- CVE-2024-1086:Netfilter nf_tables 模块的一个双重释放(UAF)漏洞。这事儿可大可小,低权限用户就能借此一路提权到root。影响范围覆盖了Linux内核 v5.14到v6.6的多个版本(当然,像v5.15.149、v6.1.76这些已修补的分支除外)。更值得警惕的是,它在默认配置环境中就可能存在,甚至被用于容器逃逸。应对之策无非老三样:升级内核、临时禁用nf_tables,或者严格限制用户命名空间的使用。
- CVE-2016-5195(Dirty COW):这可是个“老古董”了,但名气极大。一个写时拷贝(COW)机制的竞态条件漏洞,影响了自2007年Linux 2.6.22版本起的漫长历史。攻击原理是低权限用户写入只读内存映射,从而实现提权。面对它,唯一的办法就是升级到已修复的内核版本。
- CVE-2021-22555:又是Netfilter,这次是堆溢出。在启用了用户命名空间(CONFIG_USER_NS)和网络命名空间(CONFIG_NET_NS)的64位系统上,这个漏洞能用来提权或逃逸容器。缓解措施同样是升级内核,或者干脆禁用非特权用户命名空间。
- CVE-2022-0847(Dirty Pipe):可以把它看作是Dirty COW在管道机制上的“精神续作”。同样是利用写时拷贝的缺陷,攻击者可以覆盖只读文件的内容,进而实现本地提权。老规矩,修复方法就是升级内核。
- CVE-2021-4034(PwnKit):这个漏洞出在用户态的polkit组件上,具体是pkexec对环境变量的处理有缺陷。由于pkexec是一个默认安装的SUID根程序,任何本地非特权用户都可能利用它直接获取root权限。除了升级polkit,检查并移除不必要的SUID位也是个好习惯。
- CVE-2021-3156(Baron Samedit):sudo工具的一个堆溢出漏洞,影响特定版本(比如1.8.9到1.8.23等分支)。攻击者通过精心构造的参数,就能利用这个缺陷提权。解决方案很明确:升级sudo到安全版本。
二 用户态与配置滥用提权
除了内核本身的漏洞,系统配置和管理上的疏忽,同样会为攻击者大开方便之门。这类问题往往更隐蔽,也更容易被忽视。
- SUID/SGID 滥用:在系统里找找那些设置了SUID或SGID位的程序(比如某些版本的find、vim甚至bash),如果它们本身存在缺陷或者被不当配置,攻击者就能结合GTFOBins这样的“秘籍”来执行提权。风险根源在于给程序不恰当地授予了SUID权限,或者遗留了调试用的二进制文件。
- sudo 误配置:sudo的配置如果太“大方”,就等于自找麻烦。比如给用户配置了NOPASSWD(无需密码)、命令别名或白名单设置不当,再叠加历史上的一些漏洞(如CVE-2019-14287),很容易导致权限失控。
- Cron 任务可写:想象一下,如果普通用户能修改系统计划任务(cron)的脚本或目录,会发生什么?攻击者完全可以注入一个反弹shell或者提权命令,然后坐等系统定时触发,权限就到手了。
- PATH 环境变量劫持:当一个SUID程序去调用外部命令时,如果没用绝对路径,那就危险了。攻击者可以在当前目录预先放置一个同名的恶意可执行文件,从而劫持整个执行流程。
- NFS 弱配置:网络文件系统(NFS)的配置如果过于宽松,比如设置了`no_root_squash`,攻击者就能在挂载点放置一个SUID二进制文件,然后在目标机器上触发执行,实现远程提权。
三 远程代码执行与服务漏洞
这类漏洞允许攻击者从远程直接执行代码,危害范围更广,常成为网络入侵的突破口。
- Samba CVE-2017-7494(“SambaCry”):影响Samba 3.5.0之后未打补丁的版本(4.6.4/4.5.10/4.4.14等已修复版本除外)。攻击者可以在可写共享目录里上传一个恶意共享库,当服务加载它时,就能实现远程代码执行。
- Bash Shellshock CVE-2014-6271:一个经典的Bash解析缺陷。通过构造特殊的环境变量,在CGI、FastCGI等场景下,就能触发任意命令执行,当年波及范围极广。
- PHP CGI CVE-2012-1823:PHP-CGI的参数注入漏洞。通过构造特定的查询字符串,在CGI或FastCGI模式下可以执行任意PHP代码。
- Ja va RMI CVE-2013-0422:Ja va RMI注册表或激活服务的默认配置存在缺陷,反序列化不可信数据会导致远程代码执行。常见于那些对外开放了1099端口的Ja va服务。
四 信息泄露与本地攻击面
信息泄露有时是提权的前奏,能帮攻击者获取关键“情报”。
- 核心转储信息泄露 CVE-2025-5054 / CVE-2025-4598:apport、systemd-coredump这些负责生成崩溃转储的工具,如果存在竞争条件缺陷,就可能被本地攻击者利用。攻击者可以诱使一个SUID程序崩溃,然后通过转储文件读取到像`/etc/shadow`这样的敏感文件内容。缓解措施包括升级相关组件,以及限制或禁用SUID程序的核心转储生成(例如设置`ulimit -c 0`,或调整`/proc/sys/fs/suid_dumpable`)。
五 近期值得关注的动向
安全攻防没有终点,新的威胁总在涌现。最近有这么几个动向,值得投入更多关注:
- CVE-2025-6018 / CVE-2025-6019:两个相互关联的本地提权漏洞。目前已经在主流Linux发行版上成功演示了获取root权限,并且存在公开的概念验证代码。这意味着风险是切实存在的,建议尽快检查并应用相关补丁。
- nf_tables 新缺陷:Netfilter的nf_tables子系统似乎成了漏洞的“富矿”,社区持续有新的缺陷和利用技术被披露。这很可能带来新的提权与容器逃逸风险。对此,最好的策略是保持警惕,密切关注你所使用的Linux发行版的安全通告,并优先安排内核升级。
