In the Linux kernel, the following vulnerability has been resolved:
net: enetc: allocate vf_state during PF probes
In the previous implementation, vfstate is allocated memory only when VF is enabled. However, netdeviceops::ndosetvfmac() may be called before VF is enabled to configure the MAC address of VF. If this is the case, enetcpfsetvfmac() will access vf_state, resulting in access to a null pointer. The simplified error log is as follows.
root@ls1028ardb:~# ip link set eno0 vf 1 mac 00:0c:e7:66:77:89 [ 173.543315] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004 [ 173.637254] pc : enetcpfsetvfmac+0x3c/0x80 Message from sy [ 173.641973] lr : dosetlink+0x4a8/0xec8 [ 173.732292] Call trace: [ 173.734740] enetcpfsetvfmac+0x3c/0x80 [ 173.738847] _rtnlnewlink+0x530/0x89c [ 173.742692] rtnlnewlink+0x50/0x7c [ 173.746189] rtnetlinkrcvmsg+0x128/0x390 [ 173.750298] netlinkrcvskb+0x60/0x130 [ 173.754145] rtnetlinkrcv+0x18/0x24 [ 173.757731] netlinkunicast+0x318/0x380 [ 173.761665] netlink_sendmsg+0x17c/0x3c8
[
{
"id": "CVE-2024-50298-133e49d0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7eb923f8d4819737c07d6a8d0daef0a4d7f99e0c",
"digest": {
"length": 802.0,
"function_hash": "216922266821270105822195236020403710904"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_sriov_configure"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-2855d553",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e15c5506dd39885cd047f811a64240e2e8ab401b",
"digest": {
"line_hashes": [
"226805637864345494279919119815647349553",
"222853656228137336501883062260015096239",
"159415963064893617654613875462793341248",
"144020930309077475115117501136121106394",
"135611543674466964850188889950350867195",
"157574384819713714096355824984098548291",
"144628824480729235205318769394115647455",
"40651714967126923245700101347148128787",
"132433348007158009361980074766887690260",
"94615901383694022287164110952374753531",
"157771085055983236364089733637850864185",
"234717437980832428803218221671053369551",
"71360686214809256209125842238121993776",
"135573694990637351082968409620294099229",
"170867615304487768000459439772113425845",
"81921149849252745742680794987913868875",
"63746234780576282686004274371197324348",
"209063951954549575882758080152077756312",
"187212625525400828501292013032032538249",
"223727807314793247012649432462756050786",
"195975446607726731533581687292522287066",
"247277881726983504613118004871208273497",
"273226845216051320751392388687257795813",
"337279252623442695495503597943275730933",
"193672558442234119592124261048776326143",
"117615144018641588221643390558123524663",
"302106216337850087756683372600176006394",
"206416687450933504151346490209089842965",
"111800196623518242140689379262351126718",
"75124373060085064917863573023560854172"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-46ffd73e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef0edfbe9eeed1fccad7cb705648af5222664944",
"digest": {
"line_hashes": [
"226805637864345494279919119815647349553",
"222853656228137336501883062260015096239",
"159415963064893617654613875462793341248",
"144020930309077475115117501136121106394",
"135611543674466964850188889950350867195",
"157574384819713714096355824984098548291",
"144628824480729235205318769394115647455",
"40651714967126923245700101347148128787",
"132433348007158009361980074766887690260",
"94615901383694022287164110952374753531",
"157771085055983236364089733637850864185",
"234717437980832428803218221671053369551",
"71360686214809256209125842238121993776",
"135573694990637351082968409620294099229",
"170867615304487768000459439772113425845",
"81921149849252745742680794987913868875",
"63746234780576282686004274371197324348",
"209063951954549575882758080152077756312",
"187212625525400828501292013032032538249",
"223727807314793247012649432462756050786",
"195975446607726731533581687292522287066",
"247277881726983504613118004871208273497",
"273226845216051320751392388687257795813",
"337279252623442695495503597943275730933",
"193672558442234119592124261048776326143",
"117615144018641588221643390558123524663",
"302106216337850087756683372600176006394",
"206416687450933504151346490209089842965",
"111800196623518242140689379262351126718",
"75124373060085064917863573023560854172"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-7d8b9764",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7eb923f8d4819737c07d6a8d0daef0a4d7f99e0c",
"digest": {
"length": 356.0,
"function_hash": "337116393354783828512464210817144196740"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_pf_remove"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-88164e73",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef0edfbe9eeed1fccad7cb705648af5222664944",
"digest": {
"length": 802.0,
"function_hash": "216922266821270105822195236020403710904"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_sriov_configure"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-885c2700",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef0edfbe9eeed1fccad7cb705648af5222664944",
"digest": {
"length": 2014.0,
"function_hash": "42620889426956194202709531143016383725"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_pf_probe"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-a947d654",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7eb923f8d4819737c07d6a8d0daef0a4d7f99e0c",
"digest": {
"line_hashes": [
"226805637864345494279919119815647349553",
"222853656228137336501883062260015096239",
"159415963064893617654613875462793341248",
"144020930309077475115117501136121106394",
"135611543674466964850188889950350867195",
"157574384819713714096355824984098548291",
"144628824480729235205318769394115647455",
"40651714967126923245700101347148128787",
"132433348007158009361980074766887690260",
"94615901383694022287164110952374753531",
"157771085055983236364089733637850864185",
"234717437980832428803218221671053369551",
"71360686214809256209125842238121993776",
"135573694990637351082968409620294099229",
"170867615304487768000459439772113425845",
"81921149849252745742680794987913868875",
"63746234780576282686004274371197324348",
"209063951954549575882758080152077756312",
"187212625525400828501292013032032538249",
"223727807314793247012649432462756050786",
"195975446607726731533581687292522287066",
"247277881726983504613118004871208273497",
"273226845216051320751392388687257795813",
"337279252623442695495503597943275730933",
"193672558442234119592124261048776326143",
"117615144018641588221643390558123524663",
"302106216337850087756683372600176006394",
"206416687450933504151346490209089842965",
"111800196623518242140689379262351126718",
"75124373060085064917863573023560854172"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-ae3ed8b6",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7eb923f8d4819737c07d6a8d0daef0a4d7f99e0c",
"digest": {
"length": 2014.0,
"function_hash": "42620889426956194202709531143016383725"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_pf_probe"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-b2f476ee",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e15c5506dd39885cd047f811a64240e2e8ab401b",
"digest": {
"length": 802.0,
"function_hash": "216922266821270105822195236020403710904"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_sriov_configure"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-c5b68971",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e15c5506dd39885cd047f811a64240e2e8ab401b",
"digest": {
"length": 2014.0,
"function_hash": "42620889426956194202709531143016383725"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_pf_probe"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-cc2c24a2",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e15c5506dd39885cd047f811a64240e2e8ab401b",
"digest": {
"length": 356.0,
"function_hash": "337116393354783828512464210817144196740"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_pf_remove"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2024-50298-e8a2bc3c",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ef0edfbe9eeed1fccad7cb705648af5222664944",
"digest": {
"length": 356.0,
"function_hash": "337116393354783828512464210817144196740"
},
"target": {
"file": "drivers/net/ethernet/freescale/enetc/enetc_pf.c",
"function": "enetc_pf_remove"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
}
]