Jailbreakme 3 PDF 越狱漏洞分析
Jailbreakme 3 PDF 越狱使用Apple iOS操作系统中处理Postscript Type(又称Adobe Type 1)字体的一个缓冲区溢出漏洞,漏洞存在于t1_decoder_parse_charstrings() 函数,该函数用于解码Type 1字体文件中编码过的CharStrings字段。越狱漏洞中使用的字体文件中包含了一个351字节的特殊CharStrings的字段,当该函数处理这个特殊的 字段后,导致保存在堆栈中的一个用于处理字形(glyph)的回调解析函数被覆盖,从而影响了程序的执行流程,可以用于执行任意的代码。
由于iOS系统的特殊性,程序的代码签名,ARM处理器的Nerver execute比特位设置,地址随机化保护等等,增加了越狱的难度。由于这个漏洞的特殊性,可以在字体程序中判断出 dyld_shared_cache中的地址,执行ROP的Shellcode。