libwpd是一个用于读取和转换Word Perfect文档的函数库。 libwpd处理畸形文档中的字段值时存在漏洞,远程攻击者可能利用这些漏洞通过诱使用户打开恶意文档执行控制用户机器。 libwpd的WP6GeneralTextPacket::_readContents函数从用户提供的文档中读取一系列的整数值并求和,然后使用得到的和从堆中分配内存块,最后将上述加法得到的运算数用作拷贝的字节数,将文件中的数据拷贝到缓冲区。求和操作可能导致整数溢出,在拷贝操作中溢出缓冲区。 WP3TablesGroup::_readContents()和WP5DefinitionGroup_DefineTablesSubGroup::WP5DefinitionGroup_DefineTablesSubGroup()函数中存在另外两个缓冲区溢出。这些函数从攻击者提供的文件中读取整数值并将其用作了循环计数器,在循环中文件中的任意数据会充满静态大小的缓冲区,这可能导致堆溢出。
libwpd是一个用于读取和转换Word Perfect文档的函数库。 libwpd处理畸形文档中的字段值时存在漏洞,远程攻击者可能利用这些漏洞通过诱使用户打开恶意文档执行控制用户机器。 libwpd的WP6GeneralTextPacket::_readContents函数从用户提供的文档中读取一系列的整数值并求和,然后使用得到的和从堆中分配内存块,最后将上述加法得到的运算数用作拷贝的字节数,将文件中的数据拷贝到缓冲区。求和操作可能导致整数溢出,在拷贝操作中溢出缓冲区。 WP3TablesGroup::_readContents()和WP5DefinitionGroup_DefineTablesSubGroup::WP5DefinitionGroup_DefineTablesSubGroup()函数中存在另外两个缓冲区溢出。这些函数从攻击者提供的文件中读取整数值并将其用作了循环计数器,在循环中文件中的任意数据会充满静态大小的缓冲区,这可能导致堆溢出。