CVE:CVE-2009-2584
CNNVD:CNNVD-200907-351
Linux kernel是美国Linux基金会发布的开源操作系统Linux所使用的内核。NFSv4 implementation是其中的一个分布式文件系统协议。
Linux kernel的drivers/misc/sgi-gru/gruprocfs.c驱动文件中存在单字节溢出漏洞：
static ssize_t options_write(struct file *file， const char __user *userbuf，
 size_t count， loff_t *data)
{
unsigned long val;
char buf[80];
if (copy_from_user
(buf， userbuf， count < sizeof(buf) ? count : sizeof(buf)))
return -EFAULT;
buf[count - 1] = '';
if (!strict_strtoul(buf， 10， &val))
gru_options = val;
return count;
}
这个函数用于处理对相关procfs文件的写操作，仅在用户控制的count小于sizeof(buf)(根据之前分配，这个值为80)的情况下才会调用copy_from_user()。但是空终止没有执行这个检查便直接使用了受用户控制的count值减去1。因此，可以+w访问procfs文件的用户可以向内核内存中的任意位置写入一个空字节。
solution:Upgrade linux linux_kernel to a higher version than 2.6.30.2,and avoid the version (,2.6.30.2]