从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题:cifs: Fix buffer overflow when parsing NFS reparse points - 问题:在解析NFS reparse points时,缓冲区溢出。 - 原因:ReparseDataLength是InodeType大小和DataBuffer大小之和。在获取DataBuffer大小时,需要从ReparseDataLength中减去InodeType的大小。函数cifs_strndup_from_utf16()在访问buf->DataBuffer时,没有从长度中减去InodeType的大小,导致缓冲区溢出。 2. 修复措施: - 修改了函数cifs_strndup_from_utf16(),在访问buf->DataBuffer时,正确地从长度中减去InodeType的大小。 - 在访问InodeType之前,检查ReparseDataLength,以防止无效内存访问。 - 在调用reparse_mkdev()之前,检查reparse缓冲区的大小。 3. 修复范围: - 修复了上游commit e2a8910af01653c1c268984855629d71fb81f404。 4. 修复者: - Pali Rohár - Greg Kroah-Hartman 5. 审核者: - Paulo Alcantara (Red Hat) - Steve French - Sasha Levin 6. 补丁文件: - 差异文件位于 ,文件大小为15行,其中14行插入,1行删除。 7. 补丁内容: - 修改了 函数,确保在访问DataBuffer时正确地从长度中减去InodeType的大小。 - 在访问InodeType之前,检查ReparseDataLength。 - 在调用reparse_mkdev()之前,检查reparse缓冲区的大小。 这些信息表明,该漏洞修复了在解析NFS reparse points时的缓冲区溢出问题,并通过修改相关函数和增加检查来防止无效内存访问。