CVE-2023-52562 (GCVE-0-2023-52562)
Vulnerability from cvelistv5 – Published: 2024-03-02 21:59 – Updated: 2026-05-23 15:26
VLAI
EPSS
VEX
Title
mm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()
After the commit in Fixes:, if a module that created a slab cache does not
release all of its allocated objects before destroying the cache (at rmmod
time), we might end up releasing the kmem_cache object without removing it
from the slab_caches list thus corrupting the list as kmem_cache_destroy()
ignores the return value from shutdown_cache(), which in turn never removes
the kmem_cache object from slabs_list in case __kmem_cache_shutdown() fails
to release all of the cache's slabs.
This is easily observable on a kernel built with CONFIG_DEBUG_LIST=y
as after that ill release the system will immediately trip on list_add,
or list_del, assertions similar to the one shown below as soon as another
kmem_cache gets created, or destroyed:
[ 1041.213632] list_del corruption. next->prev should be ffff89f596fb5768, but was 52f1e5016aeee75d. (next=ffff89f595a1b268)
[ 1041.219165] ------------[ cut here ]------------
[ 1041.221517] kernel BUG at lib/list_debug.c:62!
[ 1041.223452] invalid opcode: 0000 [#1] PREEMPT SMP PTI
[ 1041.225408] CPU: 2 PID: 1852 Comm: rmmod Kdump: loaded Tainted: G B W OE 6.5.0 #15
[ 1041.228244] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023
[ 1041.231212] RIP: 0010:__list_del_entry_valid+0xae/0xb0
Another quick way to trigger this issue, in a kernel with CONFIG_SLUB=y,
is to set slub_debug to poison the released objects and then just run
cat /proc/slabinfo after removing the module that leaks slab objects,
in which case the kernel will panic:
[ 50.954843] general protection fault, probably for non-canonical address 0xa56b6b6b6b6b6b8b: 0000 [#1] PREEMPT SMP PTI
[ 50.961545] CPU: 2 PID: 1495 Comm: cat Kdump: loaded Tainted: G B W OE 6.5.0 #15
[ 50.966808] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023
[ 50.972663] RIP: 0010:get_slabinfo+0x42/0xf0
This patch fixes this issue by properly checking shutdown_cache()'s
return value before taking the kmem_cache_release() branch.
Severity
No CVSS data available.
SSVC
Exploitation: none
Automatable: no
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-09-10 15:56 UTC
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
0495e337b7039191dfce6e03f5f830454b1fae6b , < a5569bb187521432f509b69dda7d29f78b2d38b0
(git)
Affected: 0495e337b7039191dfce6e03f5f830454b1fae6b , < 51988be187b041e5355245957b0b9751fa382e0d (git) Affected: 0495e337b7039191dfce6e03f5f830454b1fae6b , < 46a9ea6681907a3be6b6b0d43776dccc62cad6cf (git) Affected: 357321557920c805de2b14832002465c320eea4f (git) Affected: 5.19.8 , < 5.20 (semver) |
guessed | |
| Linux | Linux |
Affected:
6.0
Unaffected: 0 , < 6.0 (semver) Unaffected: 6.1.56 , ≤ 6.1.* (semver) Unaffected: 6.5.6 , ≤ 6.5.* (semver) Unaffected: 6.6 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2024-08-02T23:03:20.744Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2023-52562",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2024-09-10T15:56:36.342316Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2024-09-11T17:33:39.395Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/slab_common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a5569bb187521432f509b69dda7d29f78b2d38b0",
"status": "affected",
"version": "0495e337b7039191dfce6e03f5f830454b1fae6b",
"versionType": "git"
},
{
"lessThan": "51988be187b041e5355245957b0b9751fa382e0d",
"status": "affected",
"version": "0495e337b7039191dfce6e03f5f830454b1fae6b",
"versionType": "git"
},
{
"lessThan": "46a9ea6681907a3be6b6b0d43776dccc62cad6cf",
"status": "affected",
"version": "0495e337b7039191dfce6e03f5f830454b1fae6b",
"versionType": "git"
},
{
"status": "affected",
"version": "357321557920c805de2b14832002465c320eea4f",
"versionType": "git"
},
{
"lessThan": "5.20",
"status": "affected",
"version": "5.19.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/slab_common.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.56",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.5.*",
"status": "unaffected",
"version": "6.5.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.6",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.56",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.5.6",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.19.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()\n\nAfter the commit in Fixes:, if a module that created a slab cache does not\nrelease all of its allocated objects before destroying the cache (at rmmod\ntime), we might end up releasing the kmem_cache object without removing it\nfrom the slab_caches list thus corrupting the list as kmem_cache_destroy()\nignores the return value from shutdown_cache(), which in turn never removes\nthe kmem_cache object from slabs_list in case __kmem_cache_shutdown() fails\nto release all of the cache\u0027s slabs.\n\nThis is easily observable on a kernel built with CONFIG_DEBUG_LIST=y\nas after that ill release the system will immediately trip on list_add,\nor list_del, assertions similar to the one shown below as soon as another\nkmem_cache gets created, or destroyed:\n\n [ 1041.213632] list_del corruption. next-\u003eprev should be ffff89f596fb5768, but was 52f1e5016aeee75d. (next=ffff89f595a1b268)\n [ 1041.219165] ------------[ cut here ]------------\n [ 1041.221517] kernel BUG at lib/list_debug.c:62!\n [ 1041.223452] invalid opcode: 0000 [#1] PREEMPT SMP PTI\n [ 1041.225408] CPU: 2 PID: 1852 Comm: rmmod Kdump: loaded Tainted: G B W OE 6.5.0 #15\n [ 1041.228244] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\n [ 1041.231212] RIP: 0010:__list_del_entry_valid+0xae/0xb0\n\nAnother quick way to trigger this issue, in a kernel with CONFIG_SLUB=y,\nis to set slub_debug to poison the released objects and then just run\ncat /proc/slabinfo after removing the module that leaks slab objects,\nin which case the kernel will panic:\n\n [ 50.954843] general protection fault, probably for non-canonical address 0xa56b6b6b6b6b6b8b: 0000 [#1] PREEMPT SMP PTI\n [ 50.961545] CPU: 2 PID: 1495 Comm: cat Kdump: loaded Tainted: G B W OE 6.5.0 #15\n [ 50.966808] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\n [ 50.972663] RIP: 0010:get_slabinfo+0x42/0xf0\n\nThis patch fixes this issue by properly checking shutdown_cache()\u0027s\nreturn value before taking the kmem_cache_release() branch."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-23T15:26:04.021Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0"
},
{
"url": "https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d"
},
{
"url": "https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf"
}
],
"title": "mm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-52562",
"datePublished": "2024-03-02T21:59:35.568Z",
"dateReserved": "2024-03-02T21:55:42.566Z",
"dateUpdated": "2026-05-23T15:26:04.021Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2023-52562",
"date": "2026-09-15",
"epss": "0.00222",
"percentile": "0.12872"
},
"fkie_nvd": {
"descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()\\n\\nAfter the commit in Fixes:, if a module that created a slab cache does not\\nrelease all of its allocated objects before destroying the cache (at rmmod\\ntime), we might end up releasing the kmem_cache object without removing it\\nfrom the slab_caches list thus corrupting the list as kmem_cache_destroy()\\nignores the return value from shutdown_cache(), which in turn never removes\\nthe kmem_cache object from slabs_list in case __kmem_cache_shutdown() fails\\nto release all of the cache\u0027s slabs.\\n\\nThis is easily observable on a kernel built with CONFIG_DEBUG_LIST=y\\nas after that ill release the system will immediately trip on list_add,\\nor list_del, assertions similar to the one shown below as soon as another\\nkmem_cache gets created, or destroyed:\\n\\n [ 1041.213632] list_del corruption. next-\u003eprev should be ffff89f596fb5768, but was 52f1e5016aeee75d. (next=ffff89f595a1b268)\\n [ 1041.219165] ------------[ cut here ]------------\\n [ 1041.221517] kernel BUG at lib/list_debug.c:62!\\n [ 1041.223452] invalid opcode: 0000 [#1] PREEMPT SMP PTI\\n [ 1041.225408] CPU: 2 PID: 1852 Comm: rmmod Kdump: loaded Tainted: G B W OE 6.5.0 #15\\n [ 1041.228244] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\\n [ 1041.231212] RIP: 0010:__list_del_entry_valid+0xae/0xb0\\n\\nAnother quick way to trigger this issue, in a kernel with CONFIG_SLUB=y,\\nis to set slub_debug to poison the released objects and then just run\\ncat /proc/slabinfo after removing the module that leaks slab objects,\\nin which case the kernel will panic:\\n\\n [ 50.954843] general protection fault, probably for non-canonical address 0xa56b6b6b6b6b6b8b: 0000 [#1] PREEMPT SMP PTI\\n [ 50.961545] CPU: 2 PID: 1495 Comm: cat Kdump: loaded Tainted: G B W OE 6.5.0 #15\\n [ 50.966808] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\\n [ 50.972663] RIP: 0010:get_slabinfo+0x42/0xf0\\n\\nThis patch fixes this issue by properly checking shutdown_cache()\u0027s\\nreturn value before taking the kmem_cache_release() branch.\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm/slab_common: corrige la corrupci\\u00f3n de la lista slab_caches despu\\u00e9s de kmem_cache_destroy() Despu\\u00e9s de el commit en Correcciones:, si un m\\u00f3dulo que cre\\u00f3 un cach\\u00e9 de losa no libera todos sus objetos asignados antes de destruir el cache (en el momento rmmod), podr\\u00edamos terminar liberando el objeto kmem_cache sin eliminarlo de la lista slab_caches, corrompiendo as\\u00ed la lista ya que kmem_cache_destroy() ignora el valor de retorno de Shutdown_cache(), que a su vez nunca elimina el objeto kmem_cache de slabs_list en caso __kmem_cache_shutdown() no puede liberar todas las losas del cach\\u00e9. Esto es f\\u00e1cilmente observable en un kernel construido con CONFIG_DEBUG_LIST=y ya que despu\\u00e9s de ese lanzamiento, el sistema activar\\u00e1 inmediatamente las aserciones list_add o list_del, similares a la que se muestra a continuaci\\u00f3n tan pronto como se cree o destruya otro kmem_cache: [ 1041.213632] list_del corrupci\\u00f3n. siguiente-\u0026gt;anterior deber\\u00eda ser ffff89f596fb5768, pero era 52f1e5016aeee75d. (siguiente=ffff89f595a1b268) [1041.219165] ------------[ cortar aqu\\u00ed ]------------ [ 1041.221517] \\u00a1ERROR del kernel en lib/list_debug.c:62! [ 1041.223452] c\\u00f3digo de operaci\\u00f3n no v\\u00e1lido: 0000 [#1] PREEMPT SMP PTI [ 1041.225408] CPU: 2 PID: 1852 Comm: rmmod Kdump: cargado Contaminado: GBW OE 6.5.0 #15 [ 1041.228244] Nombre de hardware: PC est\\u00e1ndar QEMU (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 24/05/2023 [ 1041.231212] RIP: 0010:__list_del_entry_valid+0xae/0xb0 Otra forma r\\u00e1pida de desencadenar este problema, en un kernel con CONFIG_SLUB=y, es configurar slub_debug para envenenar los objetos liberados y luego simplemente ejecutar cat /proc/slabinfo despu\\u00e9s de eliminar el m\\u00f3dulo que filtra los objetos slab, en cuyo caso el kernel entrar\\u00e1 en p\\u00e1nico: [50.954843] falla de protecci\\u00f3n general, probablemente para la direcci\\u00f3n no can\\u00f3nica 0xa56b6b6b6b6b6b8b: 0000 [#1 ] PREEMPT SMP PTI [ 50.961545] CPU: 2 PID: 1495 Comm: cat Kdump: cargado Contaminado: GBW OE 6.5.0 #15 [ 50.966808] Nombre de hardware: PC est\\u00e1ndar QEMU (Q35 + ICH9, 2009), BIOS edk2-20230524- 3.fc37 24/05/2023 [ 50.972663] RIP: 0010:get_slabinfo+0x42/0xf0 Este parche soluciona este problema verificando correctamente el valor de retorno de Shutdown_cache() antes de tomar la rama kmem_cache_release().\"}]",
"id": "CVE-2023-52562",
"lastModified": "2024-11-21T08:40:04.087",
"published": "2024-03-02T22:15:48.843",
"references": "[{\"url\": \"https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}]",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Undergoing Analysis"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2023-52562\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-03-02T22:15:48.843\",\"lastModified\":\"2026-06-17T06:43:01.923\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()\\n\\nAfter the commit in Fixes:, if a module that created a slab cache does not\\nrelease all of its allocated objects before destroying the cache (at rmmod\\ntime), we might end up releasing the kmem_cache object without removing it\\nfrom the slab_caches list thus corrupting the list as kmem_cache_destroy()\\nignores the return value from shutdown_cache(), which in turn never removes\\nthe kmem_cache object from slabs_list in case __kmem_cache_shutdown() fails\\nto release all of the cache\u0027s slabs.\\n\\nThis is easily observable on a kernel built with CONFIG_DEBUG_LIST=y\\nas after that ill release the system will immediately trip on list_add,\\nor list_del, assertions similar to the one shown below as soon as another\\nkmem_cache gets created, or destroyed:\\n\\n [ 1041.213632] list_del corruption. next-\u003eprev should be ffff89f596fb5768, but was 52f1e5016aeee75d. (next=ffff89f595a1b268)\\n [ 1041.219165] ------------[ cut here ]------------\\n [ 1041.221517] kernel BUG at lib/list_debug.c:62!\\n [ 1041.223452] invalid opcode: 0000 [#1] PREEMPT SMP PTI\\n [ 1041.225408] CPU: 2 PID: 1852 Comm: rmmod Kdump: loaded Tainted: G B W OE 6.5.0 #15\\n [ 1041.228244] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\\n [ 1041.231212] RIP: 0010:__list_del_entry_valid+0xae/0xb0\\n\\nAnother quick way to trigger this issue, in a kernel with CONFIG_SLUB=y,\\nis to set slub_debug to poison the released objects and then just run\\ncat /proc/slabinfo after removing the module that leaks slab objects,\\nin which case the kernel will panic:\\n\\n [ 50.954843] general protection fault, probably for non-canonical address 0xa56b6b6b6b6b6b8b: 0000 [#1] PREEMPT SMP PTI\\n [ 50.961545] CPU: 2 PID: 1495 Comm: cat Kdump: loaded Tainted: G B W OE 6.5.0 #15\\n [ 50.966808] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\\n [ 50.972663] RIP: 0010:get_slabinfo+0x42/0xf0\\n\\nThis patch fixes this issue by properly checking shutdown_cache()\u0027s\\nreturn value before taking the kmem_cache_release() branch.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm/slab_common: corrige la corrupci\u00f3n de la lista slab_caches despu\u00e9s de kmem_cache_destroy() Despu\u00e9s de el commit en Correcciones:, si un m\u00f3dulo que cre\u00f3 un cach\u00e9 de losa no libera todos sus objetos asignados antes de destruir el cache (en el momento rmmod), podr\u00edamos terminar liberando el objeto kmem_cache sin eliminarlo de la lista slab_caches, corrompiendo as\u00ed la lista ya que kmem_cache_destroy() ignora el valor de retorno de Shutdown_cache(), que a su vez nunca elimina el objeto kmem_cache de slabs_list en caso __kmem_cache_shutdown() no puede liberar todas las losas del cach\u00e9. Esto es f\u00e1cilmente observable en un kernel construido con CONFIG_DEBUG_LIST=y ya que despu\u00e9s de ese lanzamiento, el sistema activar\u00e1 inmediatamente las aserciones list_add o list_del, similares a la que se muestra a continuaci\u00f3n tan pronto como se cree o destruya otro kmem_cache: [ 1041.213632] list_del corrupci\u00f3n. siguiente-\u0026gt;anterior deber\u00eda ser ffff89f596fb5768, pero era 52f1e5016aeee75d. (siguiente=ffff89f595a1b268) [1041.219165] ------------[ cortar aqu\u00ed ]------------ [ 1041.221517] \u00a1ERROR del kernel en lib/list_debug.c:62! [ 1041.223452] c\u00f3digo de operaci\u00f3n no v\u00e1lido: 0000 [#1] PREEMPT SMP PTI [ 1041.225408] CPU: 2 PID: 1852 Comm: rmmod Kdump: cargado Contaminado: GBW OE 6.5.0 #15 [ 1041.228244] Nombre de hardware: PC est\u00e1ndar QEMU (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 24/05/2023 [ 1041.231212] RIP: 0010:__list_del_entry_valid+0xae/0xb0 Otra forma r\u00e1pida de desencadenar este problema, en un kernel con CONFIG_SLUB=y, es configurar slub_debug para envenenar los objetos liberados y luego simplemente ejecutar cat /proc/slabinfo despu\u00e9s de eliminar el m\u00f3dulo que filtra los objetos slab, en cuyo caso el kernel entrar\u00e1 en p\u00e1nico: [50.954843] falla de protecci\u00f3n general, probablemente para la direcci\u00f3n no can\u00f3nica 0xa56b6b6b6b6b6b8b: 0000 [#1 ] PREEMPT SMP PTI [ 50.961545] CPU: 2 PID: 1495 Comm: cat Kdump: cargado Contaminado: GBW OE 6.5.0 #15 [ 50.966808] Nombre de hardware: PC est\u00e1ndar QEMU (Q35 + ICH9, 2009), BIOS edk2-20230524- 3.fc37 24/05/2023 [ 50.972663] RIP: 0010:get_slabinfo+0x42/0xf0 Este parche soluciona este problema verificando correctamente el valor de retorno de Shutdown_cache() antes de tomar la rama kmem_cache_release().\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"mm/slab_common.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"0495e337b7039191dfce6e03f5f830454b1fae6b\",\"lessThan\":\"a5569bb187521432f509b69dda7d29f78b2d38b0\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0495e337b7039191dfce6e03f5f830454b1fae6b\",\"lessThan\":\"51988be187b041e5355245957b0b9751fa382e0d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0495e337b7039191dfce6e03f5f830454b1fae6b\",\"lessThan\":\"46a9ea6681907a3be6b6b0d43776dccc62cad6cf\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"357321557920c805de2b14832002465c320eea4f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"5.19.8\",\"lessThan\":\"5.20\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"mm/slab_common.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.0\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.56\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.5.6\",\"lessThanOrEqual\":\"6.5.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-09-10T15:56:36.342316Z\",\"id\":\"CVE-2023-52562\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.0\",\"versionEndExcluding\":\"6.1.56\",\"matchCriteriaId\":\"88CD6F0B-B968-414C-86CA-2E442AEA0EA8\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.5.6\",\"matchCriteriaId\":\"870FC772-173A-4A0F-B1AF-7976AD6057D3\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"84267A4F-DBC2-444F-B41D-69E15E1BEC97\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"FB440208-241C-4246-9A83-C1715C0DAA6C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.6:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"0DC421F1-3D5A-4BEF-BF76-4E468985D20B\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}",
"redhat_vex": {
"aggregate_severity": "Low",
"current_release_date": "2026-08-12T19:08:14+00:00",
"cve": "CVE-2023-52562",
"id": "CVE-2023-52562",
"initial_release_date": "2023-01-01T00:00:00+00:00",
"product_status:fixed": "443",
"product_status:known_affected": "150",
"product_status:known_not_affected": "14",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: mm/slab_common: slab_caches list corruption after kmem_cache_destroy()",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-52562.json",
"version": "3"
},
"suse_vex": {
"aggregate_severity": "moderate",
"current_release_date": "2026-09-03T00:32:50Z",
"cve": "CVE-2023-52562",
"id": "CVE-2023-52562",
"initial_release_date": "2024-03-06T04:34:29Z",
"product_status:known_not_affected": "362",
"product_status:recommended": "222",
"source": "SUSE CSAF VEX",
"status": "interim",
"title": "SUSE CVE CVE-2023-52562",
"url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2023-52562.json",
"version": "35"
},
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T23:03:20.744Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2023-52562\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:56:36.342316Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:17.903Z\"}}], \"cna\": {\"title\": \"mm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"0495e337b7039191dfce6e03f5f830454b1fae6b\", \"lessThan\": \"a5569bb187521432f509b69dda7d29f78b2d38b0\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"0495e337b7039191dfce6e03f5f830454b1fae6b\", \"lessThan\": \"51988be187b041e5355245957b0b9751fa382e0d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"0495e337b7039191dfce6e03f5f830454b1fae6b\", \"lessThan\": \"46a9ea6681907a3be6b6b0d43776dccc62cad6cf\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"357321557920c805de2b14832002465c320eea4f\", \"versionType\": \"git\"}], \"programFiles\": [\"mm/slab_common.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.0\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.0\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.1.56\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.5.6\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.5.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"mm/slab_common.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/a5569bb187521432f509b69dda7d29f78b2d38b0\"}, {\"url\": \"https://git.kernel.org/stable/c/51988be187b041e5355245957b0b9751fa382e0d\"}, {\"url\": \"https://git.kernel.org/stable/c/46a9ea6681907a3be6b6b0d43776dccc62cad6cf\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nmm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()\\n\\nAfter the commit in Fixes:, if a module that created a slab cache does not\\nrelease all of its allocated objects before destroying the cache (at rmmod\\ntime), we might end up releasing the kmem_cache object without removing it\\nfrom the slab_caches list thus corrupting the list as kmem_cache_destroy()\\nignores the return value from shutdown_cache(), which in turn never removes\\nthe kmem_cache object from slabs_list in case __kmem_cache_shutdown() fails\\nto release all of the cache\u0027s slabs.\\n\\nThis is easily observable on a kernel built with CONFIG_DEBUG_LIST=y\\nas after that ill release the system will immediately trip on list_add,\\nor list_del, assertions similar to the one shown below as soon as another\\nkmem_cache gets created, or destroyed:\\n\\n [ 1041.213632] list_del corruption. next-\u003eprev should be ffff89f596fb5768, but was 52f1e5016aeee75d. (next=ffff89f595a1b268)\\n [ 1041.219165] ------------[ cut here ]------------\\n [ 1041.221517] kernel BUG at lib/list_debug.c:62!\\n [ 1041.223452] invalid opcode: 0000 [#1] PREEMPT SMP PTI\\n [ 1041.225408] CPU: 2 PID: 1852 Comm: rmmod Kdump: loaded Tainted: G B W OE 6.5.0 #15\\n [ 1041.228244] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\\n [ 1041.231212] RIP: 0010:__list_del_entry_valid+0xae/0xb0\\n\\nAnother quick way to trigger this issue, in a kernel with CONFIG_SLUB=y,\\nis to set slub_debug to poison the released objects and then just run\\ncat /proc/slabinfo after removing the module that leaks slab objects,\\nin which case the kernel will panic:\\n\\n [ 50.954843] general protection fault, probably for non-canonical address 0xa56b6b6b6b6b6b8b: 0000 [#1] PREEMPT SMP PTI\\n [ 50.961545] CPU: 2 PID: 1495 Comm: cat Kdump: loaded Tainted: G B W OE 6.5.0 #15\\n [ 50.966808] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS edk2-20230524-3.fc37 05/24/2023\\n [ 50.972663] RIP: 0010:get_slabinfo+0x42/0xf0\\n\\nThis patch fixes this issue by properly checking shutdown_cache()\u0027s\\nreturn value before taking the kmem_cache_release() branch.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.56\", \"versionStartIncluding\": \"6.0\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.5.6\", \"versionStartIncluding\": \"6.0\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6\", \"versionStartIncluding\": \"6.0\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionStartIncluding\": \"5.19.8\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2025-05-04T12:49:13.970Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2023-52562\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-05-04T12:49:13.970Z\", \"dateReserved\": \"2024-03-02T21:55:42.566Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-03-02T21:59:35.568Z\", \"assignerShortName\": \"Linux\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.1"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…