漏洞标题
async_xor:当丢弃目标页面时,增加src_offs
漏洞描述信息
在Linux内核中,已经修复了以下漏洞:
async_xor:当丢弃目标页面时,增加src_offs的值
现在,我们支持当PAGE_SIZE不等于条带大小时共享一页。为了实现这一点,它需要支持计算每个r5dev的不同偏移量的异或值。使用一个偏移数组来记录这些偏移量。
在读写模式下,使用奇偶页作为源页。在ops_run_prexor5中,在计算异或值之前,会设置ASYNC_TX_XOR_DROP_DST。
因此,它需要同时添加src_list和src_offs。现在只需要src_list。所以计算出的异或值是错误的。这可能导致数据损坏的问题。
我可以在一台POWER8机器上100%重现这个问题。步骤如下:
1. mdadm -CR /dev/md0 -l5 -n3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --size=3G
2. mkfs.xfs /dev/md0
3. mount /dev/md0 /mnt/test
4. mount: /mnt/test: mount(2) system call failed: Structure needs cleaning.
请确保在尝试修复此问题时,备份所有重要数据。
CVSS信息
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
漏洞类别
整数溢出或超界折返
漏洞标题
async_xor: increase src_offs when dropping destination page
漏洞描述信息
In the Linux kernel, the following vulnerability has been resolved:
async_xor: increase src_offs when dropping destination page
Now we support sharing one page if PAGE_SIZE is not equal stripe size. To
support this, it needs to support calculating xor value with different
offsets for each r5dev. One offset array is used to record those offsets.
In RMW mode, parity page is used as a source page. It sets
ASYNC_TX_XOR_DROP_DST before calculating xor value in ops_run_prexor5.
So it needs to add src_list and src_offs at the same time. Now it only
needs src_list. So the xor value which is calculated is wrong. It can
cause data corruption problem.
I can reproduce this problem 100% on a POWER8 machine. The steps are:
mdadm -CR /dev/md0 -l5 -n3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --size=3G
mkfs.xfs /dev/md0
mount /dev/md0 /mnt/test
mount: /mnt/test: mount(2) system call failed: Structure needs cleaning.
CVSS信息
N/A
漏洞类别
N/A
漏洞标题
Linux kernel 安全漏洞
漏洞描述信息
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞。攻击者利用该漏洞导致数据损坏。
CVSS信息
N/A
漏洞类别
其他