In the Linux kernel, the following vulnerability has been resolved:
Add exception protection processing for vd in axichanhandle_err function
Since there is no protection for vd, a kernel panic will be triggered here in exceptional cases.
You can refer to the processing of axichanblockxfercomplete function
The triggered kernel panic is as follows:
[ 67.848444] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000060 [ 67.848447] Mem abort info: [ 67.848449] ESR = 0x96000004 [ 67.848451] EC = 0x25: DABT (current EL), IL = 32 bits [ 67.848454] SET = 0, FnV = 0 [ 67.848456] EA = 0, S1PTW = 0 [ 67.848458] Data abort info: [ 67.848460] ISV = 0, ISS = 0x00000004 [ 67.848462] CM = 0, WnR = 0 [ 67.848465] user pgtable: 4k pages, 48-bit VAs, pgdp=00000800c4c0b000 [ 67.848468] [0000000000000060] pgd=0000000000000000, p4d=0000000000000000 [ 67.848472] Internal error: Oops: 96000004 [#1] SMP [ 67.848475] Modules linked in: dmatest [ 67.848479] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.100-emux2rc+ #11 [ 67.848483] pstate: 62000085 (nZCv daIf -PAN -UAO +TCO BTYPE=--) [ 67.848487] pc : axichanhandleerr+0xc4/0x230 [ 67.848491] lr : axichanhandleerr+0x30/0x230 [ 67.848493] sp : ffff0803fe55ae50 [ 67.848495] x29: ffff0803fe55ae50 x28: ffff800011212200 [ 67.848500] x27: ffff0800c42c0080 x26: ffff0800c097c080 [ 67.848504] x25: ffff800010d33880 x24: ffff80001139d850 [ 67.848508] x23: ffff0800c097c168 x22: 0000000000000000 [ 67.848512] x21: 0000000000000080 x20: 0000000000002000 [ 67.848517] x19: ffff0800c097c080 x18: 0000000000000000 [ 67.848521] x17: 0000000000000000 x16: 0000000000000000 [ 67.848525] x15: 0000000000000000 x14: 0000000000000000 [ 67.848529] x13: 0000000000000000 x12: 0000000000000040 [ 67.848533] x11: ffff0800c0400248 x10: ffff0800c040024a [ 67.848538] x9 : ffff800010576cd4 x8 : ffff0800c0400270 [ 67.848542] x7 : 0000000000000000 x6 : ffff0800c04003e0 [ 67.848546] x5 : ffff0800c0400248 x4 : ffff0800c4294480 [ 67.848550] x3 : dead000000000100 x2 : dead000000000122 [ 67.848555] x1 : 0000000000000100 x0 : ffff0800c097c168 [ 67.848559] Call trace: [ 67.848562] axichanhandleerr+0xc4/0x230 [ 67.848566] dwaxidmainterrupt+0xf4/0x590 [ 67.848569] _handleirqeventpercpu+0x60/0x220 [ 67.848573] handleirqevent+0x64/0x120 [ 67.848576] handlefasteoiirq+0xc4/0x220 [ 67.848580] _handledomainirq+0x80/0xe0 [ 67.848583] gichandleirq+0xc0/0x138 [ 67.848585] el1irq+0xc8/0x180 [ 67.848588] archcpuidle+0x14/0x2c [ 67.848591] defaultidlecall+0x40/0x16c [ 67.848594] doidle+0x1f0/0x250 [ 67.848597] cpustartupentry+0x2c/0x60 [ 67.848600] restinit+0xc0/0xcc [ 67.848603] archcallrestinit+0x14/0x1c [ 67.848606] start_kernel+0x4cc/0x500 [ 67.848610] Code: eb0002ff 9a9f12d6 f2fbd5a2 f2fbd5a3 (a94602c1) [ 67.848613] ---[ end trace 585a97036f88203a ]---
[
{
"id": "CVE-2023-52899-1fb4d1ec",
"target": {
"function": "axi_chan_handle_err",
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"length": 488.0,
"function_hash": "5686344403867843293359508039519520823"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@20d0a6d17e85a8a816a64fa7d7cae616f1617833",
"signature_type": "Function"
},
{
"id": "CVE-2023-52899-302afe4d",
"target": {
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"line_hashes": [
"280776448302896350097562751454122647811",
"209561858176296857990582367608838553428",
"28957804264063027420227563916604212795",
"23998129898297012403671194784485875623",
"44852999200187593495098497196453985957",
"160352849040820847283862153887160241475",
"179471507154162051316730350843015181460"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5054d001ffaf76155637c5e5b922c11016cd6a5d",
"signature_type": "Line"
},
{
"id": "CVE-2023-52899-42aa16bc",
"target": {
"function": "axi_chan_handle_err",
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"length": 488.0,
"function_hash": "5686344403867843293359508039519520823"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@51a7ad5b60efac65691729d10745c28fa1016b96",
"signature_type": "Function"
},
{
"id": "CVE-2023-52899-52cd7697",
"target": {
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"line_hashes": [
"280776448302896350097562751454122647811",
"209561858176296857990582367608838553428",
"28957804264063027420227563916604212795",
"23998129898297012403671194784485875623",
"44852999200187593495098497196453985957",
"160352849040820847283862153887160241475",
"179471507154162051316730350843015181460"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@51a7ad5b60efac65691729d10745c28fa1016b96",
"signature_type": "Line"
},
{
"id": "CVE-2023-52899-56694dc3",
"target": {
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"line_hashes": [
"280776448302896350097562751454122647811",
"209561858176296857990582367608838553428",
"28957804264063027420227563916604212795",
"23998129898297012403671194784485875623",
"44852999200187593495098497196453985957",
"160352849040820847283862153887160241475",
"179471507154162051316730350843015181460"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@53dd833fd0a2d8f0118d01ea063a70652689d31e",
"signature_type": "Line"
},
{
"id": "CVE-2023-52899-6da46dbe",
"target": {
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"line_hashes": [
"280776448302896350097562751454122647811",
"209561858176296857990582367608838553428",
"28957804264063027420227563916604212795",
"23998129898297012403671194784485875623",
"44852999200187593495098497196453985957",
"160352849040820847283862153887160241475",
"179471507154162051316730350843015181460"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@20d0a6d17e85a8a816a64fa7d7cae616f1617833",
"signature_type": "Line"
},
{
"id": "CVE-2023-52899-84d8c370",
"target": {
"function": "axi_chan_handle_err",
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"length": 488.0,
"function_hash": "5686344403867843293359508039519520823"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@53dd833fd0a2d8f0118d01ea063a70652689d31e",
"signature_type": "Function"
},
{
"id": "CVE-2023-52899-b4f7b0ca",
"target": {
"function": "axi_chan_handle_err",
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"length": 488.0,
"function_hash": "5686344403867843293359508039519520823"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5054d001ffaf76155637c5e5b922c11016cd6a5d",
"signature_type": "Function"
},
{
"id": "CVE-2023-52899-c91ff7db",
"target": {
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"line_hashes": [
"280776448302896350097562751454122647811",
"209561858176296857990582367608838553428",
"28957804264063027420227563916604212795",
"23998129898297012403671194784485875623",
"44852999200187593495098497196453985957",
"160352849040820847283862153887160241475",
"179471507154162051316730350843015181460"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@57054fe516d59d03a7bcf1888e82479ccc244f87",
"signature_type": "Line"
},
{
"id": "CVE-2023-52899-d2744286",
"target": {
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"line_hashes": [
"280776448302896350097562751454122647811",
"209561858176296857990582367608838553428",
"28957804264063027420227563916604212795",
"23998129898297012403671194784485875623",
"44852999200187593495098497196453985957",
"160352849040820847283862153887160241475",
"179471507154162051316730350843015181460"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f534dc438828cc3f1f8c6895b8bdfbef079521fb",
"signature_type": "Line"
},
{
"id": "CVE-2023-52899-dd48985d",
"target": {
"function": "axi_chan_handle_err",
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"length": 488.0,
"function_hash": "5686344403867843293359508039519520823"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f534dc438828cc3f1f8c6895b8bdfbef079521fb",
"signature_type": "Function"
},
{
"id": "CVE-2023-52899-e33c5002",
"target": {
"function": "axi_chan_handle_err",
"file": "drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c"
},
"signature_version": "v1",
"digest": {
"length": 488.0,
"function_hash": "5686344403867843293359508039519520823"
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@57054fe516d59d03a7bcf1888e82479ccc244f87",
"signature_type": "Function"
}
]