A use-after-free vulnerability in the Linux kernel's net/sched: sch_qfq component can be exploited to achieve local privilege escalation.
When the plug qdisc is used as a class of the qfq qdisc, sending network packets triggers use-after-free in qfqdequeue() due to the incorrect .peek handler of schplug and lack of error checking in agg_dequeue().
We recommend upgrading past commit 8fc134fee27f2263988ae38920bc03da416b03d8.
[
{
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@8fc134fee27f2263988ae38920bc03da416b03d8",
"digest": {
"function_hash": "218140578902892090194308049358182681362",
"length": 1058.0
},
"target": {
"file": "net/sched/sch_qfq.c",
"function": "qfq_dequeue"
},
"id": "CVE-2023-4921-15574211",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@8fc134fee27f2263988ae38920bc03da416b03d8",
"digest": {
"threshold": 0.9,
"line_hashes": [
"274005067849204745802321346069874304949",
"84428762247140213465041091646414924059",
"92186941473701285580183845412579009623",
"302223953592488625399753814387080668857",
"91764046301823248703442690158156217979",
"210458409678353838186016723190599038213",
"288296468047290663895331020780796479441",
"273474026677778968975619342477955230564",
"234296853650512441074452749550460973925",
"288073171774846671541234185888564711714",
"277892404387415563760518669275382022423",
"217598493396352974038740270302884168163",
"66985506527239028526094943428687026363",
"16516901738057417479173788409549798570",
"97907706562078631730935617233245977213",
"109340352998859857094869951919940025731",
"134103221082602203983357651839664999645",
"289956794993622263469371207608902042785"
]
},
"target": {
"file": "net/sched/sch_qfq.c"
},
"id": "CVE-2023-4921-40a9c48c",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@8fc134fee27f2263988ae38920bc03da416b03d8",
"digest": {
"threshold": 0.9,
"line_hashes": [
"264107334426801703882733932218331818147",
"169569363631155354582625110254544333117",
"141136179363329679366906748354443721764",
"302686704891467568197979715203994310194"
]
},
"target": {
"file": "net/sched/sch_plug.c"
},
"id": "CVE-2023-4921-a95b3eb1",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git@8fc134fee27f2263988ae38920bc03da416b03d8",
"digest": {
"function_hash": "50392414354699036575727848315924744531",
"length": 406.0
},
"target": {
"file": "net/sched/sch_qfq.c",
"function": "agg_dequeue"
},
"id": "CVE-2023-4921-d0e7b3e5",
"deprecated": false,
"signature_version": "v1"
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-4921.json"