1.notepad++堆缓冲区溢出漏洞CVE-2023-40031分析与复现
notepad++堆缓冲区溢出漏洞CVE-2023-40031分析与复现
Notepad++,源码溢出这款备受推崇的计算开源代码编辑器,近期曝出了一处高危漏洞CVE--,源码溢出得分为7.8分(CVSS3)。计算帝王荣耀传奇源码漏洞焦点在于Utf8__Read::convert函数,源码溢出其在执行UTF-到UTF-8转换时,计算错误估计了转换后缓冲区的源码溢出大小,导致缓冲区外内存被非法覆盖,计算可能导致代码执行权限的源码溢出滥用。此漏洞影响了Notepad++版本<=8.5.6,计算复现环境为Win7 SP1,源码溢出plucker公式源码使用IDA、计算WinDbg和OLLYDBG等工具可验证。源码溢出
安全研究人员通过Python生成PoC(Proof-of-Concept)文件,计算尝试在8.5.2版本的源码溢出Notepad++中打开,虽然程序未崩溃,手机源码录制但溢出数据可能未触发明显异常。借助Windbg调试工具,可以看到在堆检查中,当打开PoC文件时,堆溢出在地址0xF4AFF8,总量指标源码溢出点在HeapFree函数中,内存已受损。
源码的可读性使得安全专家能够利用AddressSanitizer技术定位问题,最终发现溢出发生在Utf8__Read::convert的特定代码行。函数首先申请大小为len的docker笔记源码缓冲区,然后尝试复制UTF-数据,关键在于每次读取文件内容时,大小计算错误导致溢出。例如,第一次读取0x字节,第二次读取时,由于未清除上一次读取的内容,导致新缓冲区大小计算错误,从而引发溢出。
总的来说,当文件内容编码为奇数时,且在UTF-到UTF-8转换过程中,计算错误可能导致一个字节的溢出。虽然off-by-one漏洞通常难以直接利用,但需要额外技巧结合其他漏洞利用技术,如内存泄漏或数据覆盖,以实现代码执行控制(RCE)。更多详细信息可参考github.com/webraybtl/CV...链接。