In the Linux kernel, the following vulnerability has been resolved:
tee: fix NULL pointer dereference in teeshmput
teeshmput have NULL pointer dereference:
_opteedisableshmcache --> shm = regpairtoptr(...);//shm maybe return NULL teeshmfree(shm); --> teeshm_put(shm);//crash
Add check in teeshmput to fix it.
panic log: Unable to handle kernel paging request at virtual address 0000000000100cca Mem abort info: ESR = 0x0000000096000004 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x04: level 0 translation fault Data abort info: ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 CM = 0, WnR = 0, TnD = 0, TagAccess = 0 GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 user pgtable: 4k pages, 48-bit VAs, pgdp=0000002049d07000 [0000000000100cca] pgd=0000000000000000, p4d=0000000000000000 Internal error: Oops: 0000000096000004 [#1] SMP CPU: 2 PID: 14442 Comm: systemd-sleep Tainted: P OE ------- ---- 6.6.0-39-generic #38 Source Version: 938b255f6cb8817c95b0dd5c8c2944acfce94b07 Hardware name: greatwall GW-001Y1A-FTH, BIOS Great Wall BIOS V3.0 10/26/2022 pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : teeshmput+0x24/0x188 lr : teeshmfree+0x14/0x28 sp : ffff001f98f9faf0 x29: ffff001f98f9faf0 x28: ffff0020df543cc0 x27: 0000000000000000 x26: ffff001f811344a0 x25: ffff8000818dac00 x24: ffff800082d8d048 x23: ffff001f850fcd18 x22: 0000000000000001 x21: ffff001f98f9fb88 x20: ffff001f83e76218 x19: ffff001f83e761e0 x18: 000000000000ffff x17: 303a30303a303030 x16: 0000000000000000 x15: 0000000000000003 x14: 0000000000000001 x13: 0000000000000000 x12: 0101010101010101 x11: 0000000000000001 x10: 0000000000000001 x9 : ffff800080e08d0c x8 : ffff001f98f9fb88 x7 : 0000000000000000 x6 : 0000000000000000 x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000 x2 : ffff001f83e761e0 x1 : 00000000ffff001f x0 : 0000000000100cca Call trace: teeshmput+0x24/0x188 teeshmfree+0x14/0x28 _opteedisableshmcache+0xa8/0x108 opteeshutdown+0x28/0x38 platformshutdown+0x28/0x40 deviceshutdown+0x144/0x2b0 kernelpoweroff+0x3c/0x80 hibernate+0x35c/0x388 statestore+0x64/0x80 kobjattrstore+0x14/0x28 sysfskfwrite+0x48/0x60 kernfsfopwriteiter+0x128/0x1c0 vfswrite+0x270/0x370 ksyswrite+0x6c/0x100 _arm64syswrite+0x20/0x30 invokesyscall+0x4c/0x120 el0svccommon.constprop.0+0x44/0xf0 doel0svc+0x24/0x38 el0svc+0x24/0x88 el0t64synchandler+0x134/0x150 el0t64_sync+0x14c/0x15
[
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c",
"function": "tee_shm_put"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@add1ecc8f3ad8df22e3599c5c88d7907cc2a3079",
"signature_version": "v1",
"id": "CVE-2025-39865-14a8446a",
"digest": {
"function_hash": "23384475230044306606127668710258163615",
"length": 313.0
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c"
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5e07a4235bb85d9ef664411e4ff4ac34783c18ff",
"signature_version": "v1",
"id": "CVE-2025-39865-31e8de04",
"digest": {
"threshold": 0.9,
"line_hashes": [
"339735866388479935586790079702557908040",
"123221112500817271234423180488757167577",
"126071905371110395124572123224765139298",
"63590081808627914276160891631636749523",
"86892118372343914745389652806980686660"
]
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c"
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f266188603c34e6e234fb0dfc3185f0ba98d71b7",
"signature_version": "v1",
"id": "CVE-2025-39865-374d5a2d",
"digest": {
"threshold": 0.9,
"line_hashes": [
"339735866388479935586790079702557908040",
"123221112500817271234423180488757167577",
"126071905371110395124572123224765139298",
"63590081808627914276160891631636749523",
"141985885607316178028021813735412718040"
]
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c"
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@963fca19fe34c496e04f7dd133b807b76a5434ca",
"signature_version": "v1",
"id": "CVE-2025-39865-61a25c26",
"digest": {
"threshold": 0.9,
"line_hashes": [
"339735866388479935586790079702557908040",
"123221112500817271234423180488757167577",
"126071905371110395124572123224765139298",
"63590081808627914276160891631636749523",
"86892118372343914745389652806980686660"
]
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c",
"function": "tee_shm_put"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@963fca19fe34c496e04f7dd133b807b76a5434ca",
"signature_version": "v1",
"id": "CVE-2025-39865-9d77f2c5",
"digest": {
"function_hash": "23384475230044306606127668710258163615",
"length": 313.0
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c",
"function": "tee_shm_put"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f266188603c34e6e234fb0dfc3185f0ba98d71b7",
"signature_version": "v1",
"id": "CVE-2025-39865-af179c3b",
"digest": {
"function_hash": "102213365358594626321157177960346026792",
"length": 329.0
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c"
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@add1ecc8f3ad8df22e3599c5c88d7907cc2a3079",
"signature_version": "v1",
"id": "CVE-2025-39865-b5974e8c",
"digest": {
"threshold": 0.9,
"line_hashes": [
"339735866388479935586790079702557908040",
"123221112500817271234423180488757167577",
"126071905371110395124572123224765139298",
"63590081808627914276160891631636749523",
"86892118372343914745389652806980686660"
]
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c",
"function": "tee_shm_put"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5e07a4235bb85d9ef664411e4ff4ac34783c18ff",
"signature_version": "v1",
"id": "CVE-2025-39865-c937d12e",
"digest": {
"function_hash": "23384475230044306606127668710258163615",
"length": 313.0
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c",
"function": "tee_shm_put"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4377eac565c297fdfccd2f8e9bf94ee84ff6172f",
"signature_version": "v1",
"id": "CVE-2025-39865-dee2b901",
"digest": {
"function_hash": "102213365358594626321157177960346026792",
"length": 329.0
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c"
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25e315bc8ad363bd1194e49062f183ad4011957e",
"signature_version": "v1",
"id": "CVE-2025-39865-edb42cfd",
"digest": {
"threshold": 0.9,
"line_hashes": [
"339735866388479935586790079702557908040",
"123221112500817271234423180488757167577",
"126071905371110395124572123224765139298",
"63590081808627914276160891631636749523",
"86892118372343914745389652806980686660"
]
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c"
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4377eac565c297fdfccd2f8e9bf94ee84ff6172f",
"signature_version": "v1",
"id": "CVE-2025-39865-ef36701f",
"digest": {
"threshold": 0.9,
"line_hashes": [
"339735866388479935586790079702557908040",
"123221112500817271234423180488757167577",
"126071905371110395124572123224765139298",
"63590081808627914276160891631636749523",
"141985885607316178028021813735412718040"
]
}
},
{
"deprecated": false,
"target": {
"file": "drivers/tee/tee_shm.c",
"function": "tee_shm_put"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@25e315bc8ad363bd1194e49062f183ad4011957e",
"signature_version": "v1",
"id": "CVE-2025-39865-fd6af901",
"digest": {
"function_hash": "23384475230044306606127668710258163615",
"length": 313.0
}
}
]