Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核。NFSv4 implementation是其中的一个分布式文件系统协议。 在将数据拷贝到用户空间时,RDS协议没有确认用户所提供iovec结构的基址指向了有效的用户空间地址便使用__copy_to_user_inatomic()函数拷贝数据。因此,如果提供内核地址为iovec基址并发布recvmsg()样式套接字调用,本地用户就可以向内核内存中写入任意数据,导致root用户权限提升。
Linux kernel是美国Linux基金会发布的操作系统Linux所使用的内核。NFSv4 implementation是其中的一个分布式文件系统协议。 在将数据拷贝到用户空间时,RDS协议没有确认用户所提供iovec结构的基址指向了有效的用户空间地址便使用__copy_to_user_inatomic()函数拷贝数据。因此,如果提供内核地址为iovec基址并发布recvmsg()样式套接字调用,本地用户就可以向内核内存中写入任意数据,导致root用户权限提升。