CVE-2018-8778:String#unpack 中的缓冲区下溢读取漏洞

String#unpack 方法中存在缓冲区下溢读取漏洞。此漏洞的 CVE 标识符为 CVE-2018-8778

详情

String#unpack 接收格式说明符作为其参数,并可以使用说明符 @ 指定解析数据的位置。如果使用 @ 传递一个大数字,该数字将被视为负值,并发生缓冲区溢出读取。因此,如果脚本接受外部输入作为 String#unpack 的参数,攻击者可以读取堆上的数据。

所有运行受影响版本的用户应立即升级。

受影响的版本

  • Ruby 2.2 系列:2.2.9 及更早版本
  • Ruby 2.3 系列:2.3.6 及更早版本
  • Ruby 2.4 系列:2.4.3 及更早版本
  • Ruby 2.5 系列:2.5.0 及更早版本
  • Ruby 2.6 系列:2.6.0-preview1
  • 早于 trunk 修订版 r62992

致谢

感谢 aerodudrizzt 报告此问题。

历史

  • 最初发布于 2018-03-28 14:00:00 (UTC)