← Back to CVE Explorer

CVE-2023-54194

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: exfat: use kvmalloc_array/kvfree instead of kmalloc_array/kfree The call stack shown below is a scenario in the Linux 4.19 kernel. Allocating memory failed where exfat fs use kmalloc_array due to system memory fragmentation, while the u-disk was inserted without recognition. Devices such as u-disk using the exfat file system are pluggable and may be insert into the system at any time. However, long-term running systems cannot guarantee the continuity of physical memory. Therefore, it's necessary to address this issue. Binder:2632_6: page allocation failure: order:4, mode:0x6040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null) Call trace: [242178.097582] dump_backtrace+0x0/0x4 [242178.097589] dump_stack+0xf4/0x134 [242178.097598] warn_alloc+0xd8/0x144 [242178.097603] __alloc_pages_nodemask+0x1364/0x1384 [242178.097608] kmalloc_order+0x2c/0x510 [242178.097612] kmalloc_order_trace+0x40/0x16c [242178.097618] __kmalloc+0x360/0x408 [242178.097624] load_alloc_bitmap+0x160/0x284 [242178.097628] exfat_fill_super+0xa3c/0xe7c [242178.097635] mount_bdev+0x2e8/0x3a0 [242178.097638] exfat_fs_mount+0x40/0x50 [242178.097643] mount_fs+0x138/0x2e8 [242178.097649] vfs_kern_mount+0x90/0x270 [242178.097655] do_mount+0x798/0x173c [242178.097659] ksys_mount+0x114/0x1ac [242178.097665] __arm64_sys_mount+0x24/0x34 [242178.097671] el0_svc_common+0xb8/0x1b8 [242178.097676] el0_svc_handler+0x74/0x90 [242178.097681] el0_svc+0x8/0x340 By analyzing the exfat code,we found that continuous physical memory is not required here,so kvmalloc_array is used can solve this problem.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Deferred
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2025-12-30 13:16:07.437000
Last modified
2026-10-28 19:10:00.193000
View original CVE JSON
{
  "id": "CVE-2023-54194",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2025-12-30T13:16:07.437",
  "lastModified": "2026-10-28T19:10:00.193",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nexfat: use kvmalloc_array/kvfree instead of kmalloc_array/kfree\n\nThe call stack shown below is a scenario in the Linux 4.19 kernel.\nAllocating memory failed where exfat fs use kmalloc_array due to\nsystem memory fragmentation, while the u-disk was inserted without\nrecognition.\nDevices such as u-disk using the exfat file system are pluggable and\nmay be insert into the system at any time.\nHowever, long-term running systems cannot guarantee the continuity of\nphysical memory. Therefore, it's necessary to address this issue.\n\nBinder:2632_6: page allocation failure: order:4,\n mode:0x6040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null)\nCall trace:\n[242178.097582]  dump_backtrace+0x0/0x4\n[242178.097589]  dump_stack+0xf4/0x134\n[242178.097598]  warn_alloc+0xd8/0x144\n[242178.097603]  __alloc_pages_nodemask+0x1364/0x1384\n[242178.097608]  kmalloc_order+0x2c/0x510\n[242178.097612]  kmalloc_order_trace+0x40/0x16c\n[242178.097618]  __kmalloc+0x360/0x408\n[242178.097624]  load_alloc_bitmap+0x160/0x284\n[242178.097628]  exfat_fill_super+0xa3c/0xe7c\n[242178.097635]  mount_bdev+0x2e8/0x3a0\n[242178.097638]  exfat_fs_mount+0x40/0x50\n[242178.097643]  mount_fs+0x138/0x2e8\n[242178.097649]  vfs_kern_mount+0x90/0x270\n[242178.097655]  do_mount+0x798/0x173c\n[242178.097659]  ksys_mount+0x114/0x1ac\n[242178.097665]  __arm64_sys_mount+0x24/0x34\n[242178.097671]  el0_svc_common+0xb8/0x1b8\n[242178.097676]  el0_svc_handler+0x74/0x90\n[242178.097681]  el0_svc+0x8/0x340\n\nBy analyzing the exfat code,we found that continuous physical memory\nis not required here,so kvmalloc_array is used can solve this problem."
    },
    {
      "lang": "es",
      "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\nexfat: usar kvmalloc_array/kvfree en lugar de kmalloc_array/kfree\n\nLa pila de llamadas que se muestra a continuación es un escenario en el kernel de Linux 4.19.\nLa asignación de memoria falló donde el sistema de archivos exfat usa kmalloc_array debido a la fragmentación de la memoria del sistema, mientras el u-disk fue insertado sin reconocimiento.\nDispositivos como el u-disk que usan el sistema de archivos exfat son conectables y pueden ser insertados en el sistema en cualquier momento.\nSin embargo, los sistemas de ejecución a largo plazo no pueden garantizar la continuidad de la memoria física. Por lo tanto, es necesario abordar este problema.\n\nBinder:2632_6: fallo de asignación de página: orden:4,\n modo:0x6040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null)\nTraza de llamadas:\n[242178.097582] dump_backtrace+0x0/0x4\n[242178.097589] dump_stack+0xf4/0x134\n[242178.097598] warn_alloc+0xd8/0x144\n[242178.097603] __alloc_pages_nodemask+0x1364/0x1384\n[242178.097608] kmalloc_order+0x2c/0x510\n[242178.097612] kmalloc_order_trace+0x40/0x16c\n[242178.097618] __kmalloc+0x360/0x408\n[242178.097624] load_alloc_bitmap+0x160/0x284\n[242178.097628] exfat_fill_super+0xa3c/0xe7c\n[242178.097635] mount_bdev+0x2e8/0x3a0\n[242178.097638] exfat_fs_mount+0x40/0x50\n[242178.097643] mount_fs+0x138/0x2e8\n[242178.097649] vfs_kern_mount+0x90/0x270\n[242178.097655] do_mount+0x798/0x173c\n[242178.097659] ksys_mount+0x114/0x1ac\n[242178.097665] __arm64_sys_mount+0x24/0x34\n[242178.097671] el0_svc_common+0xb8/0x1b8\n[242178.097676] el0_svc_handler+0x74/0x90\n[242178.097681] el0_svc+0x8/0x340\n\nAl analizar el código exfat, encontramos que la memoria física continua no es necesaria aquí, por lo que el uso de kvmalloc_array puede resolver este problema."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "fs/exfat/balloc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "1e49a94cf707204b66a3fb242f2814712c941f52",
              "lessThan": "79d16a84ea41272dfcb0c00f9798ddd0edd8098d",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "1e49a94cf707204b66a3fb242f2814712c941f52",
              "lessThan": "8a34a242cf03211cc89f68308d149b793f63c479",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "1e49a94cf707204b66a3fb242f2814712c941f52",
              "lessThan": "1427a7e96fb90d0896f74f5bcd21feb03cc7c3d0",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "1e49a94cf707204b66a3fb242f2814712c941f52",
              "lessThan": "0c5c3e8a2550b6b2a304b45f260296db9c09df96",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "1e49a94cf707204b66a3fb242f2814712c941f52",
              "lessThan": "daf60d6cca26e50d65dac374db92e58de745ad26",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "fs/exfat/balloc.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.7",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.7",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.190",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.126",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.45",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.4.10",
              "lessThanOrEqual": "6.4.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.5",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/0c5c3e8a2550b6b2a304b45f260296db9c09df96",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/1427a7e96fb90d0896f74f5bcd21feb03cc7c3d0",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/79d16a84ea41272dfcb0c00f9798ddd0edd8098d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8a34a242cf03211cc89f68308d149b793f63c479",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/daf60d6cca26e50d65dac374db92e58de745ad26",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}