Bug 2266406 (CVE-2021-46907)

Summary: CVE-2021-46907 kernel: KVM: internal.ndata could be updated by the user process at anytime
Product: [Other] Security Response Reporter: Rohit Keshri <rkeshri>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: acaringi, allarkin, aquini, bhu, chwhite, cye, cyin, dbohanno, debarbos, dfreiber, drow, dvlasenk, esandeen, ezulian, hkrzesin, jarod, jburrell, jdenham, jfaracco, jforbes, jlelli, joe.lawrence, jshortt, jstancek, jwyatt, kcarcia, ldoskova, lgoncalv, lzampier, mcascell, mleitner, mmilgram, mstowell, nmurray, ptalbert, rparrazo, rrobaina, rvrbovsk, scweaver, sukulkar, tglozar, vkumar, wcosta, williams, wmealing, ycote, ykopkova, zhijwang
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
A flaw was found in KVM VMX in the Linux Kernel, where ndata' could be updated by the user process at any time
Story Points: ---
Clone Of: Environment:
Last Closed: 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: 2266409    
Bug Blocks: 2266369    

Description Rohit Keshri 2024-02-27 18:49:02 UTC
In the Linux kernel, the following vulnerability has been resolved:

KVM: VMX: Don't use vcpu->run->internal.ndata as an array index

__vmx_handle_exit() uses vcpu->run->internal.ndata as an index for
an array access.  Since vcpu->run is (can be) mapped to a user address
space with a writer permission, the 'ndata' could be updated by the
user process at anytime (the user process can set it to outside the
bounds of the array).
So, it is not safe that __vmx_handle_exit() uses the 'ndata' that way.

https://git.kernel.org/stable/c/04c4f2ee3f68c9a4bf1653d15f1a9a435ae33f7a
https://git.kernel.org/stable/c/7f64753835a78c7d2cc2932a5808ef3b7fd4c050
https://git.kernel.org/stable/c/ce541d7b59566a0d94c7c99bfb5d34b050e6af70

Comment 1 Rohit Keshri 2024-02-27 18:56:44 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 2266409]

Comment 3 Justin M. Forbes 2024-02-27 23:12:31 UTC
This was fixed for Fedora with the 5.11.16 stable kernel updates.

Comment 9 Alex 2024-06-09 16:54:01 UTC
The result of automatic check (that is developed by Alexander Larkin) for this CVE-2021-46907 is: CHECK	Maybe valid. Check manually. with impact LOW (that is an approximation based on flags VIRT INIT SIMPLEFIX  ; these flags parsed automatically based on patch data). Such automatic check happens only for Low/Moderates (and only when not from reporter, but parsing already existing CVE). Highs always checked manually (I check it myself and then we check it again in Remediation team). In rare cases some of the Moderates could be increased to High later.