漏洞简介
Ichitaro(一太郎)是日本JustSystems公司的一套文字处理软件。
JustSystems Ichitaro在处理JTD文档的过程中存在基于堆的缓冲区溢出漏洞,允许远程攻击者可利用该漏洞构建恶意文件,诱使用户解析,可使应用程序崩溃或执行任意代码。
产品官网:
https://www.justsystems.com/jp/download/trial/ichitaro/
影响版本
由于Ichitaro不提供历史版本的下载链接,只提供最新的版本链接,所以我们只能通过网络查找,并测试了部分历史版本。测试结果覆盖版本如下:
· ichitaro 2020 0.3.3011
· ichitaro 2018 28.0.1
· ichitaro 2015 25.0.1
漏洞触发点
漏洞发生在JSVDA.DLL模块里,该模块主要用于解析jtd文件格式。
在sub_27809BFA函数中可以看到,a1参数是我们可控的。当a2等于1时,v2=unk_27813248(unk_27813248是存放在JSVDA.DLL里的数据区的一段字符串);当a2等于2时, v2=dword_27813428(dword_27813428也是存放在JSVDA.DLL里的数据区的一段字符串)。
从伪代码中可以看到,v2变量我们是不可控的。v4=a1是我们申请出来堆空间的地址,在执行sub_27809BFA多次后,也就是qmemcpy不断从v2变量中拷贝0x60个字节大小到v4堆空间上时发生了溢出崩溃,从而造成了程序的dos。
历史漏洞