- Description
- In the Linux kernel, the following vulnerability has been resolved: ext4: don't zero the entire extent if EXT4_EXT_DATA_PARTIAL_VALID1 When allocating initialized blocks from a large unwritten extent, or when splitting an unwritten extent during end I/O and converting it to initialized, there is currently a potential issue of stale data if the extent needs to be split in the middle. 0 A B N [UUUUUUUUUUUU] U: unwritten extent [--DDDDDDDD--] D: valid data |<- ->| ----> this range needs to be initialized ext4_split_extent() first try to split this extent at B with EXT4_EXT_DATA_ENTIRE_VALID1 and EXT4_EXT_MAY_ZEROOUT flag set, but ext4_split_extent_at() failed to split this extent due to temporary lack of space. It zeroout B to N and mark the entire extent from 0 to N as written. 0 A B N [WWWWWWWWWWWW] W: written extent [SSDDDDDDDDZZ] Z: zeroed, S: stale data ext4_split_extent() then try to split this extent at A with EXT4_EXT_DATA_VALID2 flag set. This time, it split successfully and left a stale written extent from 0 to A. 0 A B N [WW|WWWWWWWWWW] [SS|DDDDDDDDZZ] Fix this by pass EXT4_EXT_DATA_PARTIAL_VALID1 to ext4_split_extent_at() when splitting at B, don't convert the entire extent to written and left it as unwritten after zeroing out B to N. The remaining work is just like the standard two-part split. ext4_split_extent() will pass the EXT4_EXT_DATA_VALID2 flag when it calls ext4_split_extent_at() for the second time, allowing it to properly handle the split. If the split is successful, it will keep extent from 0 to A as unwritten.
- Source
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- NVD status
- Analyzed
- Products
- linux_kernel
CVSS 3.1
- Type
- Primary
- Base score
- 5.5
- Impact score
- 3.6
- Exploitability score
- 1.8
- Vector string
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Severity
- MEDIUM
- Hype score
- Not currently trending
[
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "7D40089F-A4F4-4C94-BBAC-C43535AF4868",
"versionEndExcluding": "3.3",
"versionStartIncluding": "3.2.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "02D1330D-36B9-4D58-A75D-C4C610B42844",
"versionEndExcluding": "3.5",
"versionStartIncluding": "3.4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "3CA6A762-728F-4F89-A986-666FDB6D3B20",
"versionEndExcluding": "3.7",
"versionStartIncluding": "3.6.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "8968D97D-D419-413C-8EA4-8BCFBB3F6C90",
"versionEndExcluding": "6.6.130",
"versionStartIncluding": "3.7.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "BCE16369-98ED-41CF-8995-DFDC10B288D2",
"versionEndExcluding": "6.12.75",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "BF463CB7-1F58-4607-B847-77ED23E4B9B7",
"versionEndExcluding": "6.18.14",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"matchCriteriaId": "672A3E79-EC03-479D-8503-361DFBDC8092",
"versionEndExcluding": "6.19.4",
"versionStartIncluding": "6.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:3.7:-:*:*:*:*:*:*",
"matchCriteriaId": "F482CC77-4452-423A-8A57-523E1AEA1087",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:3.7:rc3:*:*:*:*:*:*",
"matchCriteriaId": "1757AD11-8AD5-46C7-A5A8-2B788F15C0DE",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:3.7:rc4:*:*:*:*:*:*",
"matchCriteriaId": "1B38B2A5-9033-4960-AA1D-EAB51A006451",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:3.7:rc5:*:*:*:*:*:*",
"matchCriteriaId": "A2BA8BA4-4EDA-487C-BD59-1EB8AA4E3712",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:3.7:rc6:*:*:*:*:*:*",
"matchCriteriaId": "5C9FE33D-0449-4819-85D9-F63D0D1B9DDA",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:3.7:rc7:*:*:*:*:*:*",
"matchCriteriaId": "1DE42C53-831C-4F53-A8F6-386BC02B806A",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:3.7:rc8:*:*:*:*:*:*",
"matchCriteriaId": "A2691362-ECBE-4871-8533-EC32418EB525",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
]