“nfs”文件系统的mount()系统调用存在双重获取漏洞。
理论上,Double Fetch是一个有条件的竞争漏洞,这是一场内核模式和用户模式之间的数据访问的较量。Double fetch类型漏洞产生于多线程数据访问时,并且没有做必要的安全同步措施。多线程时,对同一数据一个线程读一个线程写,可能引起数据访问异常,而这个异常如果能被利用,这就是一个漏洞。在现代操作系统(如Linux和BSD衍生产品)中,虚拟内存位置通常是在内核空间和用户空间之间进行分区的。有关双重获取漏洞的更多信息请点击这里。【网安资料】
第一次获取发生在“this ”实例中。在这个示例中,将在NFS中解析外部数据表示(XDR)变量。你现在可能在想XDR到底是什么?外部数据表示(XDR)是一种只能用于描述数据的数据格式描述语言。它根本不是一种编程语言。这种语言允许你以清晰和简洁的方式描述复杂的数据格式。XDR“编程”语言类似于C编程语言,NFS和其他协议使用XDR来描述其数据的格式。【资料详细】
因此,本质上,他们从用户区复制所有XDR变量的长度,然后对刚从用户区复制的arglength变量进行大小检查:
所以显然 ar