FileUtils 容易受到符号链接竞争攻击

在 FileUtils.remove_entry_secure 中发现了一个符号链接竞争条件漏洞。该漏洞允许本地用户删除任意文件和目录。

受影响的版本

  • Ruby 1.8.6 patchlevel 420 及所有更早版本
  • Ruby 1.8.7 patchlevel 330 及所有更早版本
  • Ruby 1.8 的开发版本 (1.8.8dev)
  • Ruby 1.9.1 patchlevel 430 及所有更早版本
  • Ruby 1.9.2 patchlevel 136 及所有更早版本
  • Ruby 1.9 的开发版本 (1.9.3dev)

解决方案

我们已经修复了这种情况。鼓励所有受影响的用户升级其 Ruby 安装。

但请注意,当您要删除的任何上层目录的所有者是您不信任的人时,符号链接竞争攻击是不可避免的。因此,如果要确保安全,您必须确保所有父目录不能被其他不受信任的用户移动。例如,父目录不应由不受信任的用户拥有,并且除非设置了粘滞位,否则不应是世界可写的。

更新