Entry № 1286
TOCTOU 漏洞
TOCTOU 漏洞 是什么?
TOCTOU 漏洞检查到使用之间发生的竞态条件:安全决策所检查的状态在对应动作执行之前被改变。
TOCTOU 漏洞(Time-Of-Check to Time-Of-Use,CWE-367)是一种特定的竞态条件:程序先检查某项资源属性(所有者、权限、内容),再像检查仍然成立那样对该资源进行操作。若攻击者能在两步之间替换该资源(典型手段是符号链接、重命名或共享内存),即可完全绕过检查。经典案例是 access() 后跟 open():攻击者在 access() 返回成功后,将路径替换为指向 /etc/shadow 的符号链接。防御措施包括使用将检查与使用合二为一的文件系统 API(带 O_NOFOLLOW 的 openat、fstat)、持有文件描述符而非路径、文件锁,以及更严格的沙箱边界。
● 示例
- 01
通过 stat() 检查文件所有者后再打开路径的 setuid 程序。
- 02
针对绑定挂载路径的 TOCTOU 容器逃逸。
● 常见问题
TOCTOU 漏洞 是什么?
检查到使用之间发生的竞态条件:安全决策所检查的状态在对应动作执行之前被改变。 它属于网络安全的 漏洞 分类。
TOCTOU 漏洞 是什么意思?
检查到使用之间发生的竞态条件:安全决策所检查的状态在对应动作执行之前被改变。
如何防御 TOCTOU 漏洞?
针对 TOCTOU 漏洞 的防御通常结合技术控制与运营实践,详见上方完整定义。
TOCTOU 漏洞 还有哪些其他名称?
常见的别称包括: TOCTTOU, 检查与使用。