Bug 253926 (CVE-2007-4133)

Summary: CVE-2007-4133 prio_tree unit kernel panic
Product: [Other] Security Response Reporter: Marcel Holtmann <holtmann>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: low    
Version: unspecifiedCC: anton, kernel-mgr, konradr, kreilly, kseifried, tao
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-09-28 20:31:44 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 253929, 253930    
Bug Blocks:    

Description Marcel Holtmann 2007-08-22 22:56:20 UTC
hugetlb_vmtruncate_list was misconverted to prio_tree: its prio_tree is in units
of PAGE_SIZE (PAGE_CACHE_SIZE) like any other, not HPAGE_SIZE (whereas its
radix_tree is kept in units of HPAGE_SIZE, otherwise slots would be absurdly
sparse).

At first I thought the error benign, just calling __unmap_hugepage_range on more
vmas than necessary; but on 32-bit machines, when the prio_tree is searched
correctly, it happens to ensure the v_offset calculation won't overflow.  As it
stood, when truncating at or beyond 4GB, it was liable to discard pages COWed
from lower offsets; or even to clear pmd entries of preceding vmas, triggering
exit_mmap's BUG_ON(nr_ptes).

Comment 8 Kurt Seifried 2011-09-28 20:31:44 UTC
All children bugs have been closed, parent is no longer needed.