In the Linux kernel, the following vulnerability has been resolved:
virtio_net: Fix error unwinding of XDP initialization
When initializing XDP in virtnet_open(), some rq xdp initialization may hit an error causing net device open failed. However, previous rqs have already initialized XDP and enabled NAPI, which is not the expected behavior. Need to roll back the previous rq initialization to avoid leaks in error unwinding of init code.
Also extract helper functions of disable and enable queue pairs. Use newly introduced disable helper function in error unwinding and virtnetclose. Use enable helper function in virtnetopen.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53499.json",
"cna_assigner": "Linux"
}"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53499.json"
[
{
"id": "CVE-2023-53499-0669b003",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@73f53bc295727a3cdbd9d6bcdfaa239258970cf4",
"target": {
"file": "drivers/net/virtio_net.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"223347359909710266697146286600716036412",
"209006109994702652840690369132485869263",
"111469549821981360431179580753580911331",
"91904575627066728169328904948305226557",
"90648125839914776992357844320242926518",
"146471441460864667933741326690948158001",
"316846045647488493299402008991015848527",
"150346615515042359230156052841483847643",
"262538174135802500147626210559430866476",
"162358013282134737831325988709207104601",
"283082473911499820625515844277053300260",
"21756533083882882411789790547423716289",
"241299190509529161313632425082584947839",
"286150479866424970477787173185718230391",
"55820322576769642365995052173146002468",
"302115363730752414442058006611076506236",
"47487969859557783754496610303522827888",
"130429741205983784912214343917491289632",
"286890078276632283114650695048505624202",
"274476456792321801602771025350419890051",
"236884948579355345925838002914807097491",
"14434845514851006580848402618528786833",
"317849204105892447255802021606893728017",
"118559464107522556896748724772856436001",
"225962782061197673848705483203196377682",
"231307690340917566056132553894540887412",
"135493635695773845567475876247886527367"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2023-53499-0e13a002",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5306623a9826aa7d63b32c6a3803c798a765474d",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_open"
},
"digest": {
"function_hash": "312119724445472855416077721210653358286",
"length": 747.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2023-53499-10d498df",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@73f53bc295727a3cdbd9d6bcdfaa239258970cf4",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_open"
},
"digest": {
"function_hash": "312119724445472855416077721210653358286",
"length": 747.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2023-53499-2a1f7851",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@73f53bc295727a3cdbd9d6bcdfaa239258970cf4",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_close"
},
"digest": {
"function_hash": "232082777741523471802641306767903263263",
"length": 340.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2023-53499-575e3a01",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6a7690f2bd178eee80f33411ae32e543ae66379c",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_close"
},
"digest": {
"function_hash": "232082777741523471802641306767903263263",
"length": 340.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2023-53499-716c0b82",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@037768b28e3752c07d63d1c72a651a6775b080bb",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_close"
},
"digest": {
"function_hash": "232082777741523471802641306767903263263",
"length": 340.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2023-53499-9bbd406e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@037768b28e3752c07d63d1c72a651a6775b080bb",
"target": {
"file": "drivers/net/virtio_net.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"223347359909710266697146286600716036412",
"209006109994702652840690369132485869263",
"111469549821981360431179580753580911331",
"91904575627066728169328904948305226557",
"90648125839914776992357844320242926518",
"146471441460864667933741326690948158001",
"316846045647488493299402008991015848527",
"150346615515042359230156052841483847643",
"262538174135802500147626210559430866476",
"162358013282134737831325988709207104601",
"283082473911499820625515844277053300260",
"21756533083882882411789790547423716289",
"241299190509529161313632425082584947839",
"286150479866424970477787173185718230391",
"55820322576769642365995052173146002468",
"302115363730752414442058006611076506236",
"47487969859557783754496610303522827888",
"130429741205983784912214343917491289632",
"286890078276632283114650695048505624202",
"274476456792321801602771025350419890051",
"236884948579355345925838002914807097491",
"14434845514851006580848402618528786833",
"317849204105892447255802021606893728017",
"118559464107522556896748724772856436001",
"225962782061197673848705483203196377682",
"231307690340917566056132553894540887412",
"135493635695773845567475876247886527367"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2023-53499-bea075dc",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6a7690f2bd178eee80f33411ae32e543ae66379c",
"target": {
"file": "drivers/net/virtio_net.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"223347359909710266697146286600716036412",
"209006109994702652840690369132485869263",
"111469549821981360431179580753580911331",
"91904575627066728169328904948305226557",
"90648125839914776992357844320242926518",
"146471441460864667933741326690948158001",
"316846045647488493299402008991015848527",
"150346615515042359230156052841483847643",
"262538174135802500147626210559430866476",
"162358013282134737831325988709207104601",
"283082473911499820625515844277053300260",
"21756533083882882411789790547423716289",
"241299190509529161313632425082584947839",
"286150479866424970477787173185718230391",
"55820322576769642365995052173146002468",
"302115363730752414442058006611076506236",
"47487969859557783754496610303522827888",
"130429741205983784912214343917491289632",
"286890078276632283114650695048505624202",
"274476456792321801602771025350419890051",
"236884948579355345925838002914807097491",
"14434845514851006580848402618528786833",
"317849204105892447255802021606893728017",
"118559464107522556896748724772856436001",
"225962782061197673848705483203196377682",
"231307690340917566056132553894540887412",
"135493635695773845567475876247886527367"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2023-53499-c4482c38",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@037768b28e3752c07d63d1c72a651a6775b080bb",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_open"
},
"digest": {
"function_hash": "312119724445472855416077721210653358286",
"length": 747.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2023-53499-d325e837",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6a7690f2bd178eee80f33411ae32e543ae66379c",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_open"
},
"digest": {
"function_hash": "312119724445472855416077721210653358286",
"length": 747.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2023-53499-d9e6e033",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5306623a9826aa7d63b32c6a3803c798a765474d",
"target": {
"file": "drivers/net/virtio_net.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"223347359909710266697146286600716036412",
"209006109994702652840690369132485869263",
"111469549821981360431179580753580911331",
"91904575627066728169328904948305226557",
"90648125839914776992357844320242926518",
"146471441460864667933741326690948158001",
"316846045647488493299402008991015848527",
"150346615515042359230156052841483847643",
"262538174135802500147626210559430866476",
"162358013282134737831325988709207104601",
"283082473911499820625515844277053300260",
"21756533083882882411789790547423716289",
"241299190509529161313632425082584947839",
"286150479866424970477787173185718230391",
"55820322576769642365995052173146002468",
"302115363730752414442058006611076506236",
"47487969859557783754496610303522827888",
"130429741205983784912214343917491289632",
"286890078276632283114650695048505624202",
"274476456792321801602771025350419890051",
"236884948579355345925838002914807097491",
"14434845514851006580848402618528786833",
"317849204105892447255802021606893728017",
"118559464107522556896748724772856436001",
"225962782061197673848705483203196377682",
"231307690340917566056132553894540887412",
"135493635695773845567475876247886527367"
]
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2023-53499-f993cef4",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5306623a9826aa7d63b32c6a3803c798a765474d",
"target": {
"file": "drivers/net/virtio_net.c",
"function": "virtnet_close"
},
"digest": {
"function_hash": "232082777741523471802641306767903263263",
"length": 340.0
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function"
}
]