In the Linux kernel, the following vulnerability has been resolved:
ethtool: fail closed if we can't get max channel used in indirection tables
Commit 0d1b7d6c9274 ("bnxt: fix crashes when reducing ring count with active RSS contexts") proves that allowing indirection table to contain channels with out of bounds IDs may lead to crashes. Currently the max channel check in the core gets skipped if driver can't fetch the indirection table or when we can't allocate memory.
Both of those conditions should be extremely rare but if they do happen we should try to be safe and fail the channel change.
[
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"65418571847707525949892069771533036597",
"141192014125125756812725933989191010482",
"202727363789245149329366094090868998891",
"148498531052963196886934022486677474835"
]
},
"target": {
"file": "net/ethtool/common.h"
},
"id": "CVE-2024-46834-109404e3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2899d58462ba868287d6ff3acad3675e7adf934f",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "100746121934366346096317752988229172219",
"length": 671.0
},
"target": {
"function": "ethtool_get_max_rxfh_channel",
"file": "net/ethtool/common.c"
},
"id": "CVE-2024-46834-17f61023",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@101737d8b88dbd4be6010bac398fe810f1950036",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "229027696891111808341845210401956592535",
"length": 2589.0
},
"target": {
"function": "ethnl_set_channels",
"file": "net/ethtool/channels.c"
},
"id": "CVE-2024-46834-353ae2e6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@101737d8b88dbd4be6010bac398fe810f1950036",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "222802442012112525099658375274592990066",
"length": 1455.0
},
"target": {
"function": "ethtool_set_channels",
"file": "net/ethtool/ioctl.c"
},
"id": "CVE-2024-46834-3c3ff784",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2899d58462ba868287d6ff3acad3675e7adf934f",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "100746121934366346096317752988229172219",
"length": 671.0
},
"target": {
"function": "ethtool_get_max_rxfh_channel",
"file": "net/ethtool/common.c"
},
"id": "CVE-2024-46834-4d03d6fb",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2899d58462ba868287d6ff3acad3675e7adf934f",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55450365810391398437740426126346758722",
"2373882512257500265080012753980528841",
"114507738856805500785346672977628966392",
"40277961051542230794868169711444193446",
"228313783459549190079525325297004910633",
"181488021199103060003304311727592526629"
]
},
"target": {
"file": "net/ethtool/ioctl.c"
},
"id": "CVE-2024-46834-5998a936",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2899d58462ba868287d6ff3acad3675e7adf934f",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"65418571847707525949892069771533036597",
"141192014125125756812725933989191010482",
"202727363789245149329366094090868998891",
"148498531052963196886934022486677474835"
]
},
"target": {
"file": "net/ethtool/common.h"
},
"id": "CVE-2024-46834-61ab2968",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@101737d8b88dbd4be6010bac398fe810f1950036",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "229027696891111808341845210401956592535",
"length": 2589.0
},
"target": {
"function": "ethnl_set_channels",
"file": "net/ethtool/channels.c"
},
"id": "CVE-2024-46834-72c91bb6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2899d58462ba868287d6ff3acad3675e7adf934f",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"300417080427029831045165919481427297765",
"2373882512257500265080012753980528841",
"114507738856805500785346672977628966392",
"298631401447634897496047435938076302981",
"132653538767771868499003991940480919092",
"152165492675527477519462996812577809763",
"56657726714668655332410158253830646505",
"163762514697054660598367136527309402952"
]
},
"target": {
"file": "net/ethtool/channels.c"
},
"id": "CVE-2024-46834-7f42a19e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@101737d8b88dbd4be6010bac398fe810f1950036",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"300417080427029831045165919481427297765",
"2373882512257500265080012753980528841",
"114507738856805500785346672977628966392",
"298631401447634897496047435938076302981",
"132653538767771868499003991940480919092",
"152165492675527477519462996812577809763",
"56657726714668655332410158253830646505",
"163762514697054660598367136527309402952"
]
},
"target": {
"file": "net/ethtool/channels.c"
},
"id": "CVE-2024-46834-8230ebe4",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2899d58462ba868287d6ff3acad3675e7adf934f",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"function_hash": "222802442012112525099658375274592990066",
"length": 1455.0
},
"target": {
"function": "ethtool_set_channels",
"file": "net/ethtool/ioctl.c"
},
"id": "CVE-2024-46834-916b2241",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@101737d8b88dbd4be6010bac398fe810f1950036",
"signature_type": "Function"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"13710493798404240611253829161688587657",
"269730809017762285602721815159272109849",
"263001156942528114875675345952786083574",
"57973461269001883482396888292294239050",
"38592029573347419467143403000680287654",
"21034667822812045694363101076785380112",
"251254525468453107371542786827945875572",
"330508505750513132703900490700951707387",
"263933776191003173157483982016222194764",
"190396448798885735079527705425772839814",
"172775517395609997810237784786837120324",
"230986417697792680889866267583777948399",
"325045964795323819912234347122734386395",
"139576843729915167610017940052543722488",
"319495811069815909448870597109728899743",
"282235434060706810753215317360464008843",
"222061886793193383073520209372217451540",
"272334731933278609498101925506896316581",
"247207484385193137357163689680034123261",
"102612767921463465949185642251109934324",
"107746829555540916796323688501235461780",
"57335482159877835804909035105399597725",
"255445003968197424446735971430536216683",
"199121733631697746978132969473669175953",
"6149968075638111043650831242034431070",
"41399843790234796341696203036686885842"
]
},
"target": {
"file": "net/ethtool/common.c"
},
"id": "CVE-2024-46834-a65b2e23",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@101737d8b88dbd4be6010bac398fe810f1950036",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"13710493798404240611253829161688587657",
"269730809017762285602721815159272109849",
"263001156942528114875675345952786083574",
"57973461269001883482396888292294239050",
"38592029573347419467143403000680287654",
"21034667822812045694363101076785380112",
"251254525468453107371542786827945875572",
"330508505750513132703900490700951707387",
"263933776191003173157483982016222194764",
"190396448798885735079527705425772839814",
"172775517395609997810237784786837120324",
"230986417697792680889866267583777948399",
"325045964795323819912234347122734386395",
"139576843729915167610017940052543722488",
"319495811069815909448870597109728899743",
"282235434060706810753215317360464008843",
"222061886793193383073520209372217451540",
"272334731933278609498101925506896316581",
"247207484385193137357163689680034123261",
"102612767921463465949185642251109934324",
"107746829555540916796323688501235461780",
"57335482159877835804909035105399597725",
"255445003968197424446735971430536216683",
"199121733631697746978132969473669175953",
"6149968075638111043650831242034431070",
"41399843790234796341696203036686885842"
]
},
"target": {
"file": "net/ethtool/common.c"
},
"id": "CVE-2024-46834-d4954360",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2899d58462ba868287d6ff3acad3675e7adf934f",
"signature_type": "Line"
},
{
"signature_version": "v1",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"55450365810391398437740426126346758722",
"2373882512257500265080012753980528841",
"114507738856805500785346672977628966392",
"40277961051542230794868169711444193446",
"228313783459549190079525325297004910633",
"181488021199103060003304311727592526629"
]
},
"target": {
"file": "net/ethtool/ioctl.c"
},
"id": "CVE-2024-46834-faff03ae",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@101737d8b88dbd4be6010bac398fe810f1950036",
"signature_type": "Line"
}
]