主要观点:OpenBSD 的 Vixie Cron 近期版本存在可利用的堆下溢漏洞(CVE-2024-43688),影响 cron 守护进程和 crontab 命令,攻击者可借此获取 OpenBSD 7.4 和 7.5 的 root 权限。
关键信息:
- 漏洞细节:crontab 条目字段可接受范围和步长值,2023 年 5 月 Vixie Cron 中对范围和步长处理代码有重大更改,引入新函数 set_range(),其 for 循环可能导致堆下溢,可修改内存任意值,但范围值有 sanity check。
- 可利用性:在 64 位 cron 构建中可触发,atoi 会返回负值,32 位构建则不会;OpenBSD 实现的 atoi 在 64 位和 32 位构建中返回值不同。
- 利用要点:bit_set 例程可创建写原语,可针对 crontab 和 cron 进行攻击,crontab 受限于一次只分配一个条目,cron 可通过破坏密码条目结构获取 root 权限,需创建特定的堆布局,如通过 python 脚本生成环境结构等。
- Supernetworks 挑战:成功获取 root 需提升 crontab 权限或创建不崩溃 crontab 进程但能利用 cron 守护进程的 crontab 文件,可获 WiFi Pod。
重要细节: - OpenBSD 实现了 privsep cron,crontab 为 setgid cron 而非 setuid root,但此漏洞可用于两者。
- OpenBSD 堆随机化,足够多次运行 crontab 可能触发下溢;cron 会解析 cron 数据库目录创建多个 entry 结构,可通过环境结构创建假的 passwd 条目。
- 测试过程及结果,包括生成的脚本和输出等。
- 披露时间表,2024 年 7 月 24 日向 Paul Vixie 和 Todd C. Miller 披露漏洞,8 月 19 日协调发布。
- Supernetworks 致力于构建使用内存安全语言且具有高级安全功能的开源无线路由器。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。