Ruby Array Pack Bleed – Impacts Ruby 1.6.7 to 4.0.0
5 months ago
- #Vulnerability
- #Ruby
- #Security
- Ruby 4.0.0版本发布,其Array#pack方法存在内存泄露漏洞
- 该漏洞允许通过pack指令中的负重复计数越界读取内存
- 影响从Ruby 1.6.7到4.0.0的所有版本,修复方案见PR #15763
- pack方法中的'X'指令可被利用通过负增长量扩展字符串,导致内存泄露
- rb_str_set_len中的防护条件虽能限制内存泄露,但特定字符串长度可绕过该限制
- 演示案例展示了如何通过操纵字符串长度和重复计数来泄露内存