CVE-2025-71123CVE-2025-71123是Linux内核ext4文件系统中的一个高危安全漏洞。该漏洞存在于parse_apply_sb_mount_options()函数中,由于错误使用strscpy_pad()函数复制非NUL终止字符串到可能更大的NUL终止字符串缓冲区中,导致缓冲区溢出检测机制触发警告。具体而言,当用户空间提供的s_mount_opts字段超过63个字符且未正确NUL终止时,strscpy_pad()无法正确处理这种情况,从而触发strnlen的缓冲区溢出检测。该漏洞CVSS评分为7.8,属于本地高危漏洞,攻击者需要低权限即可触发,可能导致内核崩溃或潜在的安全问题。此漏洞由Linux验证中心使用Syzkaller模糊测试工具发现。
该漏洞的核心问题在于strscpy_pad()函数的设计限制:它无法正确处理非NUL终止字符串到NUL终止字符串缓冲区的复制操作。在parse_apply_sb_mount_options()函数中,代码期望s_mount_opts字段最多63个字符且以NUL结尾,但实际使用中可能接收到未正确终止的字符串。当strscpy_pad()尝试复制这类字符串时,会触发fortify-source保护机制的检测,输出警告信息:strnlen: detected buffer overflow: 65 byte read of buffer size 64。修复方案是使用64字节的缓冲区(匹配s_mount_opts的大小),并在用户仍提供非NUL终止字符串时返回错误。漏洞触发路径为:用户空间通过mount系统调用传入超长或非终止的挂载选项 -> ext4_fill_super -> __ext4_fill_super -> parse_apply_sb_mount_options,在该函数中strscpy_pad()处理时触发溢出检测。