Bug 2266371 (CVE-2021-46916)

Summary: CVE-2021-46916 kernel: NULL pointer dereference in ethtool loopback test
Product: [Other] Security Response Reporter: Rohit Keshri <rkeshri>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
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, 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: kernel-5.12.10 Doc Type: If docs needed, set a value
Doc Text:
A NULL pointer dereference flaw was found in ethtool loopback test in the Linux Kernel. This issue occurs due to a missing q_vector associated with the test ring when it is setup, as interrupts are not normally added to the test rings. Exploiting the vulnerability can result in system crash and denial of service attacks.
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: 2266381    
Bug Blocks: 2266369    

Description Rohit Keshri 2024-02-27 17:35:14 UTC
In the Linux kernel, the following vulnerability has been resolved:

ixgbe: Fix NULL pointer dereference in ethtool loopback test

The ixgbe driver currently generates a NULL pointer dereference when
performing the ethtool loopback test. This is due to the fact that there
isn't a q_vector associated with the test ring when it is setup as
interrupts are not normally added to the test rings.

To address this I have added code that will check for a q_vector before
returning a napi_id value. If a q_vector is not present it will return a
value of 0.

https://git.kernel.org/stable/c/31166efb1cee348eb6314e9c0095d84cbeb66b9d
https://git.kernel.org/stable/c/758d19098df4b0bbca9f40d6ae6c82c9c18b9bba

Comment 1 Rohit Keshri 2024-02-27 17:54:09 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 2266381]

Comment 3 Justin M. Forbes 2024-02-27 18:24:47 UTC
This was fixed for Fedora with the 5.11.16 stable kernel update.

Comment 5 Alex 2024-06-09 15:24:13 UTC
The result of automatic check (that is developed by Alexander Larkin) for this CVE-2021-46916 is: CHECK	Maybe valid. Check manually. with impact MODERATE (that is approximation based on flags REMOTE NULLPTR SIMPLEFIX NETWORK IMPROVEONLY  ; these flags parsed automatically based on patche 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.