GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2024-56693 (GCVE-0-2024-56693)

Vulnerability from cvelistv5 – Published: 2024-12-28 09:46 – Updated: 2026-08-05 11:46
VLAI
Title
brd: defer automatic disk creation until module initialization succeeds
Summary
In the Linux kernel, the following vulnerability has been resolved: brd: defer automatic disk creation until module initialization succeeds My colleague Wupeng found the following problems during fault injection: BUG: unable to handle page fault for address: fffffbfff809d073 PGD 6e648067 P4D 123ec8067 PUD 123ec4067 PMD 100e38067 PTE 0 Oops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI CPU: 5 UID: 0 PID: 755 Comm: modprobe Not tainted 6.12.0-rc3+ #17 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014 RIP: 0010:__asan_load8+0x4c/0xa0 ... Call Trace: <TASK> blkdev_put_whole+0x41/0x70 bdev_release+0x1a3/0x250 blkdev_release+0x11/0x20 __fput+0x1d7/0x4a0 task_work_run+0xfc/0x180 syscall_exit_to_user_mode+0x1de/0x1f0 do_syscall_64+0x6b/0x170 entry_SYSCALL_64_after_hwframe+0x76/0x7e loop_init() is calling loop_add() after __register_blkdev() succeeds and is ignoring disk_add() failure from loop_add(), for loop_add() failure is not fatal and successfully created disks are already visible to bdev_open(). brd_init() is currently calling brd_alloc() before __register_blkdev() succeeds and is releasing successfully created disks when brd_init() returns an error. This can cause UAF for the latter two case: case 1: T1: modprobe brd brd_init brd_alloc(0) // success add_disk disk_scan_partitions bdev_file_open_by_dev // alloc file fput // won't free until back to userspace brd_alloc(1) // failed since mem alloc error inject // error path for modprobe will release code segment // back to userspace __fput blkdev_release bdev_release blkdev_put_whole bdev->bd_disk->fops->release // fops is freed now, UAF! case 2: T1: T2: modprobe brd brd_init brd_alloc(0) // success open(/dev/ram0) brd_alloc(1) // fail // error path for modprobe close(/dev/ram0) ... /* UAF! */ bdev->bd_disk->fops->release Fix this problem by following what loop_init() does. Besides, reintroduce brd_devices_mutex to help serialize modifications to brd_list.
SSVC
Exploitation: none Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2025-02-10 17:12 UTC
CWE
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 7f9b348cb5e94259acdcbafbcaed55d3bb515304 , < 41219c147df8bbd6591f59af5d695fb6c9a1cbff (git)
Affected: 7f9b348cb5e94259acdcbafbcaed55d3bb515304 , < 259bf925583ec9e3781df778cadf00594095090d (git)
Affected: 7f9b348cb5e94259acdcbafbcaed55d3bb515304 , < 410896624db639500f24f46478b4bfa05c76bf56 (git)
Affected: 7f9b348cb5e94259acdcbafbcaed55d3bb515304 , < c0c2744cd2939ec5999c51dbaf2af16886548b7b (git)
Affected: 7f9b348cb5e94259acdcbafbcaed55d3bb515304 , < 63dfd728b30f79495dacc886127695a379805152 (git)
Affected: 7f9b348cb5e94259acdcbafbcaed55d3bb515304 , < 826cc42adf44930a633d11a5993676d85ddb0842 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.14
Unaffected: 0 , < 5.14 (semver)
Unaffected: 5.15.174 , ≤ 5.15.* (semver)
Unaffected: 6.1.120 , ≤ 6.1.* (semver)
Unaffected: 6.6.64 , ≤ 6.6.* (semver)
Unaffected: 6.11.11 , ≤ 6.11.* (semver)
Unaffected: 6.12.2 , ≤ 6.12.* (semver)
Unaffected: 6.13 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "LOCAL",
              "availabilityImpact": "HIGH",
              "baseScore": 7.8,
              "baseSeverity": "HIGH",
              "confidentialityImpact": "HIGH",
              "integrityImpact": "HIGH",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2024-56693",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2025-02-10T17:12:21.851341Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-416",
                "description": "CWE-416 Use After Free",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2025-02-10T17:21:06.885Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T20:52:41.179Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/block/brd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "41219c147df8bbd6591f59af5d695fb6c9a1cbff",
              "status": "affected",
              "version": "7f9b348cb5e94259acdcbafbcaed55d3bb515304",
              "versionType": "git"
            },
            {
              "lessThan": "259bf925583ec9e3781df778cadf00594095090d",
              "status": "affected",
              "version": "7f9b348cb5e94259acdcbafbcaed55d3bb515304",
              "versionType": "git"
            },
            {
              "lessThan": "410896624db639500f24f46478b4bfa05c76bf56",
              "status": "affected",
              "version": "7f9b348cb5e94259acdcbafbcaed55d3bb515304",
              "versionType": "git"
            },
            {
              "lessThan": "c0c2744cd2939ec5999c51dbaf2af16886548b7b",
              "status": "affected",
              "version": "7f9b348cb5e94259acdcbafbcaed55d3bb515304",
              "versionType": "git"
            },
            {
              "lessThan": "63dfd728b30f79495dacc886127695a379805152",
              "status": "affected",
              "version": "7f9b348cb5e94259acdcbafbcaed55d3bb515304",
              "versionType": "git"
            },
            {
              "lessThan": "826cc42adf44930a633d11a5993676d85ddb0842",
              "status": "affected",
              "version": "7f9b348cb5e94259acdcbafbcaed55d3bb515304",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/block/brd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "lessThan": "5.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.174",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.120",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.64",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.11.*",
              "status": "unaffected",
              "version": "6.11.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.13",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.174",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.120",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.64",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11.11",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.2",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbrd: defer automatic disk creation until module initialization succeeds\n\nMy colleague Wupeng found the following problems during fault injection:\n\nBUG: unable to handle page fault for address: fffffbfff809d073\nPGD 6e648067 P4D 123ec8067 PUD 123ec4067 PMD 100e38067 PTE 0\nOops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI\nCPU: 5 UID: 0 PID: 755 Comm: modprobe Not tainted 6.12.0-rc3+ #17\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS\n1.16.1-2.fc37 04/01/2014\nRIP: 0010:__asan_load8+0x4c/0xa0\n...\nCall Trace:\n \u003cTASK\u003e\n blkdev_put_whole+0x41/0x70\n bdev_release+0x1a3/0x250\n blkdev_release+0x11/0x20\n __fput+0x1d7/0x4a0\n task_work_run+0xfc/0x180\n syscall_exit_to_user_mode+0x1de/0x1f0\n do_syscall_64+0x6b/0x170\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\n\nloop_init() is calling loop_add() after __register_blkdev() succeeds and\nis ignoring disk_add() failure from loop_add(), for loop_add() failure\nis not fatal and successfully created disks are already visible to\nbdev_open().\n\nbrd_init() is currently calling brd_alloc() before __register_blkdev()\nsucceeds and is releasing successfully created disks when brd_init()\nreturns an error. This can cause UAF for the latter two case:\n\ncase 1:\n    T1:\nmodprobe brd\n  brd_init\n    brd_alloc(0) // success\n      add_disk\n        disk_scan_partitions\n          bdev_file_open_by_dev // alloc file\n          fput // won\u0027t free until back to userspace\n    brd_alloc(1) // failed since mem alloc error inject\n  // error path for modprobe will release code segment\n  // back to userspace\n  __fput\n    blkdev_release\n      bdev_release\n        blkdev_put_whole\n          bdev-\u003ebd_disk-\u003efops-\u003erelease // fops is freed now, UAF!\n\ncase 2:\n    T1:                            T2:\nmodprobe brd\n  brd_init\n    brd_alloc(0) // success\n                                   open(/dev/ram0)\n    brd_alloc(1) // fail\n  // error path for modprobe\n\n                                   close(/dev/ram0)\n                                   ...\n                                   /* UAF! */\n                                   bdev-\u003ebd_disk-\u003efops-\u003erelease\n\nFix this problem by following what loop_init() does. Besides,\nreintroduce brd_devices_mutex to help serialize modifications to\nbrd_list."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Triggering requires local access \u2014 loading/autoloading the brd module and holding an open file descriptor on /dev/ram0 across the failed initialization. There is no network-facing path into drivers/block/brd.c.\nAC:L - The attacker drives the exploitable side of the race directly by spinning open()/close() on /dev/ram0 (or by triggering block-major-1 autoload) and can retry unboundedly because a failed load leaves the major unregistered; the allocation failure that aborts brd_init() is inducible via local memory pressure. This matches the treatment of other allocation/registration error-path UAFs in this subsystem.\nPR:L - The attacker needs only a local account able to open the ram-disk device node (e.g. disk-group membership on stock distros, or the looser block-device permissions common on embedded/Android/appliance systems); no CAP_SYS_MODULE is needed since the module load can be an admin/boot action or kernel-initiated autoload.\nUI:N - No victim action is needed \u2014 the attacker\u0027s own open() of a major-1 node can trigger the module autoload, and the boot-time load path requires no interactive user involvement.\nS:U - The use-after-free is entirely within kernel memory and yields kernel-level compromise of the same system; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - This is a use-after-free: disk-\u003efops dangles into freed module memory and disk-\u003eprivate_data into a freed slab object, so the attacker can reclaim those allocations and use the stale references to disclose arbitrary kernel memory.\nI:H - The dangling fops pointer results in an indirect call through freed executable module memory, which is reclaimable by subsequent module loads or BPF JIT allocations, giving a realistic control-flow-hijack/arbitrary-write primitive; the freed brd_device is likewise a heap-spray target.\nA:H - The demonstrated result is a kernel oops (unhandled page fault in blkdev_put_whole() \u2192 bdev_release() path), and any use-after-free of this kind reliably panics the machine."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:46:07.115Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/41219c147df8bbd6591f59af5d695fb6c9a1cbff"
        },
        {
          "url": "https://git.kernel.org/stable/c/259bf925583ec9e3781df778cadf00594095090d"
        },
        {
          "url": "https://git.kernel.org/stable/c/410896624db639500f24f46478b4bfa05c76bf56"
        },
        {
          "url": "https://git.kernel.org/stable/c/c0c2744cd2939ec5999c51dbaf2af16886548b7b"
        },
        {
          "url": "https://git.kernel.org/stable/c/63dfd728b30f79495dacc886127695a379805152"
        },
        {
          "url": "https://git.kernel.org/stable/c/826cc42adf44930a633d11a5993676d85ddb0842"
        }
      ],
      "title": "brd: defer automatic disk creation until module initialization succeeds",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-56693",
    "datePublished": "2024-12-28T09:46:18.203Z",
    "dateReserved": "2024-12-27T15:00:39.849Z",
    "dateUpdated": "2026-08-05T11:46:07.115Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-56693",
      "date": "2026-09-16",
      "epss": "0.00243",
      "percentile": "0.15719"
    },
    "fkie_nvd": {
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbrd: defer automatic disk creation until module initialization succeeds\\n\\nMy colleague Wupeng found the following problems during fault injection:\\n\\nBUG: unable to handle page fault for address: fffffbfff809d073\\nPGD 6e648067 P4D 123ec8067 PUD 123ec4067 PMD 100e38067 PTE 0\\nOops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI\\nCPU: 5 UID: 0 PID: 755 Comm: modprobe Not tainted 6.12.0-rc3+ #17\\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS\\n1.16.1-2.fc37 04/01/2014\\nRIP: 0010:__asan_load8+0x4c/0xa0\\n...\\nCall Trace:\\n \u003cTASK\u003e\\n blkdev_put_whole+0x41/0x70\\n bdev_release+0x1a3/0x250\\n blkdev_release+0x11/0x20\\n __fput+0x1d7/0x4a0\\n task_work_run+0xfc/0x180\\n syscall_exit_to_user_mode+0x1de/0x1f0\\n do_syscall_64+0x6b/0x170\\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\\n\\nloop_init() is calling loop_add() after __register_blkdev() succeeds and\\nis ignoring disk_add() failure from loop_add(), for loop_add() failure\\nis not fatal and successfully created disks are already visible to\\nbdev_open().\\n\\nbrd_init() is currently calling brd_alloc() before __register_blkdev()\\nsucceeds and is releasing successfully created disks when brd_init()\\nreturns an error. This can cause UAF for the latter two case:\\n\\ncase 1:\\n    T1:\\nmodprobe brd\\n  brd_init\\n    brd_alloc(0) // success\\n      add_disk\\n        disk_scan_partitions\\n          bdev_file_open_by_dev // alloc file\\n          fput // won\u0027t free until back to userspace\\n    brd_alloc(1) // failed since mem alloc error inject\\n  // error path for modprobe will release code segment\\n  // back to userspace\\n  __fput\\n    blkdev_release\\n      bdev_release\\n        blkdev_put_whole\\n          bdev-\u003ebd_disk-\u003efops-\u003erelease // fops is freed now, UAF!\\n\\ncase 2:\\n    T1:                            T2:\\nmodprobe brd\\n  brd_init\\n    brd_alloc(0) // success\\n                                   open(/dev/ram0)\\n    brd_alloc(1) // fail\\n  // error path for modprobe\\n\\n                                   close(/dev/ram0)\\n                                   ...\\n                                   /* UAF! */\\n                                   bdev-\u003ebd_disk-\u003efops-\u003erelease\\n\\nFix this problem by following what loop_init() does. Besides,\\nreintroduce brd_devices_mutex to help serialize modifications to\\nbrd_list.\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: brd: aplazar la creaci\\u00f3n autom\\u00e1tica de discos hasta que la inicializaci\\u00f3n del m\\u00f3dulo tenga \\u00e9xito. Mi colega Wupeng encontr\\u00f3 los siguientes problemas durante la inyecci\\u00f3n de fallas: ERROR: no se puede gestionar la falla de p\\u00e1gina para la direcci\\u00f3n: fffffbfff809d073 PGD 6e648067 P4D 123ec8067 PUD 123ec4067 PMD 100e38067 PTE 0 Oops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI CPU: 5 UID: 0 PID: 755 Comm: modprobe No contaminado 6.12.0-rc3+ #17 Nombre del hardware: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014 RIP: 0010:__asan_load8+0x4c/0xa0 ... Seguimiento de llamadas:  blkdev_put_whole+0x41/0x70 bdev_release+0x1a3/0x250 blkdev_release+0x11/0x20 __fput+0x1d7/0x4a0 task_work_run+0xfc/0x180 syscall_exit_to_user_mode+0x1de/0x1f0 do_syscall_64+0x6b/0x170 entry_SYSCALL_64_after_hwframe+0x76/0x7e loop_init() est\\u00e1 llamando a loop_add() despu\\u00e9s de que __register_blkdev() tenga \\u00e9xito e ignora el error de disk_add() de loop_add(), ya que el error de loop_add() no es fatal y los discos creados correctamente ya est\\u00e1n visibles para bdev_open().brd_init() actualmente est\\u00e1 llamando a brd_alloc() antes de que __register_blkdev() tenga \\u00e9xito y est\\u00e1 liberando discos creados exitosamente cuando brd_init() devuelve un error. Esto puede causar UAF para los \\u00faltimos dos casos: caso 1: T1: modprobe brd brd_init brd_alloc(0) // \\u00e9xito add_disk disk_scan_partitions bdev_file_open_by_dev // asignar archivo fput // no se liberar\\u00e1 hasta que regrese al espacio de usuario brd_alloc(1) // fall\\u00f3 debido a un error de asignaci\\u00f3n de memoria inject // error la ruta para modprobe liberar\\u00e1 el segmento de c\\u00f3digo // de regreso al espacio de usuario __fput blkdev_release bdev_release blkdev_put_whole bdev-\u0026gt;bd_disk-\u0026gt;fops-\u0026gt;release // fops est\\u00e1 liberado ahora, \\u00a1UAF! caso 2: T1: T2: modprobe brd brd_init brd_alloc(0) // \\u00e9xito open(/dev/ram0) brd_alloc(1) // error // ruta de error para modprobe close(/dev/ram0) ... /* UAF! */ bdev-\u0026gt;bd_disk-\u0026gt;fops-\u0026gt;release Solucione este problema siguiendo lo que hace loop_init(). Adem\\u00e1s, vuelva a introducir brd_devices_mutex para ayudar a serializar las modificaciones a brd_list.\"}]",
      "id": "CVE-2024-56693",
      "lastModified": "2024-12-28T10:15:14.833",
      "published": "2024-12-28T10:15:14.833",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/259bf925583ec9e3781df778cadf00594095090d\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/410896624db639500f24f46478b4bfa05c76bf56\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/41219c147df8bbd6591f59af5d695fb6c9a1cbff\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/63dfd728b30f79495dacc886127695a379805152\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/826cc42adf44930a633d11a5993676d85ddb0842\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/c0c2744cd2939ec5999c51dbaf2af16886548b7b\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-56693\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-12-28T10:15:14.833\",\"lastModified\":\"2026-06-17T08:12:45.590\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbrd: defer automatic disk creation until module initialization succeeds\\n\\nMy colleague Wupeng found the following problems during fault injection:\\n\\nBUG: unable to handle page fault for address: fffffbfff809d073\\nPGD 6e648067 P4D 123ec8067 PUD 123ec4067 PMD 100e38067 PTE 0\\nOops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI\\nCPU: 5 UID: 0 PID: 755 Comm: modprobe Not tainted 6.12.0-rc3+ #17\\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS\\n1.16.1-2.fc37 04/01/2014\\nRIP: 0010:__asan_load8+0x4c/0xa0\\n...\\nCall Trace:\\n \u003cTASK\u003e\\n blkdev_put_whole+0x41/0x70\\n bdev_release+0x1a3/0x250\\n blkdev_release+0x11/0x20\\n __fput+0x1d7/0x4a0\\n task_work_run+0xfc/0x180\\n syscall_exit_to_user_mode+0x1de/0x1f0\\n do_syscall_64+0x6b/0x170\\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\\n\\nloop_init() is calling loop_add() after __register_blkdev() succeeds and\\nis ignoring disk_add() failure from loop_add(), for loop_add() failure\\nis not fatal and successfully created disks are already visible to\\nbdev_open().\\n\\nbrd_init() is currently calling brd_alloc() before __register_blkdev()\\nsucceeds and is releasing successfully created disks when brd_init()\\nreturns an error. This can cause UAF for the latter two case:\\n\\ncase 1:\\n    T1:\\nmodprobe brd\\n  brd_init\\n    brd_alloc(0) // success\\n      add_disk\\n        disk_scan_partitions\\n          bdev_file_open_by_dev // alloc file\\n          fput // won\u0027t free until back to userspace\\n    brd_alloc(1) // failed since mem alloc error inject\\n  // error path for modprobe will release code segment\\n  // back to userspace\\n  __fput\\n    blkdev_release\\n      bdev_release\\n        blkdev_put_whole\\n          bdev-\u003ebd_disk-\u003efops-\u003erelease // fops is freed now, UAF!\\n\\ncase 2:\\n    T1:                            T2:\\nmodprobe brd\\n  brd_init\\n    brd_alloc(0) // success\\n                                   open(/dev/ram0)\\n    brd_alloc(1) // fail\\n  // error path for modprobe\\n\\n                                   close(/dev/ram0)\\n                                   ...\\n                                   /* UAF! */\\n                                   bdev-\u003ebd_disk-\u003efops-\u003erelease\\n\\nFix this problem by following what loop_init() does. Besides,\\nreintroduce brd_devices_mutex to help serialize modifications to\\nbrd_list.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: brd: aplazar la creaci\u00f3n autom\u00e1tica de discos hasta que la inicializaci\u00f3n del m\u00f3dulo tenga \u00e9xito. Mi colega Wupeng encontr\u00f3 los siguientes problemas durante la inyecci\u00f3n de fallas: ERROR: no se puede gestionar la falla de p\u00e1gina para la direcci\u00f3n: fffffbfff809d073 PGD 6e648067 P4D 123ec8067 PUD 123ec4067 PMD 100e38067 PTE 0 Oops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI CPU: 5 UID: 0 PID: 755 Comm: modprobe No contaminado 6.12.0-rc3+ #17 Nombre del hardware: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.1-2.fc37 04/01/2014 RIP: 0010:__asan_load8+0x4c/0xa0 ... Seguimiento de llamadas:  blkdev_put_whole+0x41/0x70 bdev_release+0x1a3/0x250 blkdev_release+0x11/0x20 __fput+0x1d7/0x4a0 task_work_run+0xfc/0x180 syscall_exit_to_user_mode+0x1de/0x1f0 do_syscall_64+0x6b/0x170 entry_SYSCALL_64_after_hwframe+0x76/0x7e loop_init() est\u00e1 llamando a loop_add() despu\u00e9s de que __register_blkdev() tenga \u00e9xito e ignora el error de disk_add() de loop_add(), ya que el error de loop_add() no es fatal y los discos creados correctamente ya est\u00e1n visibles para bdev_open().brd_init() actualmente est\u00e1 llamando a brd_alloc() antes de que __register_blkdev() tenga \u00e9xito y est\u00e1 liberando discos creados exitosamente cuando brd_init() devuelve un error. Esto puede causar UAF para los \u00faltimos dos casos: caso 1: T1: modprobe brd brd_init brd_alloc(0) // \u00e9xito add_disk disk_scan_partitions bdev_file_open_by_dev // asignar archivo fput // no se liberar\u00e1 hasta que regrese al espacio de usuario brd_alloc(1) // fall\u00f3 debido a un error de asignaci\u00f3n de memoria inject // error la ruta para modprobe liberar\u00e1 el segmento de c\u00f3digo // de regreso al espacio de usuario __fput blkdev_release bdev_release blkdev_put_whole bdev-\u0026gt;bd_disk-\u0026gt;fops-\u0026gt;release // fops est\u00e1 liberado ahora, \u00a1UAF! caso 2: T1: T2: modprobe brd brd_init brd_alloc(0) // \u00e9xito open(/dev/ram0) brd_alloc(1) // error // ruta de error para modprobe close(/dev/ram0) ... /* UAF! */ bdev-\u0026gt;bd_disk-\u0026gt;fops-\u0026gt;release Solucione este problema siguiendo lo que hace loop_init(). Adem\u00e1s, vuelva a introducir brd_devices_mutex para ayudar a serializar las modificaciones a brd_list.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/block/brd.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"7f9b348cb5e94259acdcbafbcaed55d3bb515304\",\"lessThan\":\"41219c147df8bbd6591f59af5d695fb6c9a1cbff\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7f9b348cb5e94259acdcbafbcaed55d3bb515304\",\"lessThan\":\"259bf925583ec9e3781df778cadf00594095090d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7f9b348cb5e94259acdcbafbcaed55d3bb515304\",\"lessThan\":\"410896624db639500f24f46478b4bfa05c76bf56\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7f9b348cb5e94259acdcbafbcaed55d3bb515304\",\"lessThan\":\"c0c2744cd2939ec5999c51dbaf2af16886548b7b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7f9b348cb5e94259acdcbafbcaed55d3bb515304\",\"lessThan\":\"63dfd728b30f79495dacc886127695a379805152\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"7f9b348cb5e94259acdcbafbcaed55d3bb515304\",\"lessThan\":\"826cc42adf44930a633d11a5993676d85ddb0842\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/block/brd.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.14\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.14\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.174\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.120\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.64\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.11.11\",\"lessThanOrEqual\":\"6.11.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.2\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.13\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2025-02-10T17:12:21.851341Z\",\"id\":\"CVE-2024-56693\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"total\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-416\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.14\",\"versionEndExcluding\":\"5.15.174\",\"matchCriteriaId\":\"018DF5B7-C996-453C-A0E3-17831086B30F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"6.1.120\",\"matchCriteriaId\":\"09AC6122-E2A4-40FE-9D33-268A1B2EC265\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.64\",\"matchCriteriaId\":\"CA16DEE3-ABEC-4449-9F4A-7A3DC4FC36C7\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.11.11\",\"matchCriteriaId\":\"21434379-192D-472F-9B54-D45E3650E893\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.12\",\"versionEndExcluding\":\"6.12.2\",\"matchCriteriaId\":\"D8882B1B-2ABC-4838-AC1D-DBDBB5764776\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/259bf925583ec9e3781df778cadf00594095090d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/410896624db639500f24f46478b4bfa05c76bf56\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/41219c147df8bbd6591f59af5d695fb6c9a1cbff\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/63dfd728b30f79495dacc886127695a379805152\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/826cc42adf44930a633d11a5993676d85ddb0842\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/c0c2744cd2939ec5999c51dbaf2af16886548b7b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-06-28T08:17:07+00:00",
      "cve": "CVE-2024-56693",
      "id": "CVE-2024-56693",
      "initial_release_date": "2024-12-28T00:00:00+00:00",
      "product_status:fixed": "305",
      "product_status:known_affected": "64",
      "product_status:known_not_affected": "48",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: brd: defer automatic disk creation until module initialization succeeds",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-56693.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-16T00:20:46Z",
      "cve": "CVE-2024-56693",
      "id": "CVE-2024-56693",
      "initial_release_date": "2024-12-29T03:48:08Z",
      "product_status:known_affected": "410",
      "product_status:known_not_affected": "321",
      "product_status:recommended": "401",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-56693",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-56693.json",
      "version": "131"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://lists.debian.org/debian-lts-announce/2025/03/msg00001.html\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-11-03T20:52:41.179Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.8, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-56693\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2025-02-10T17:12:21.851341Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-416\", \"description\": \"CWE-416 Use After Free\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2025-02-10T17:12:23.390Z\"}}], \"cna\": {\"title\": \"brd: defer automatic disk creation until module initialization succeeds\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - Triggering requires local access \\u2014 loading/autoloading the brd module and holding an open file descriptor on /dev/ram0 across the failed initialization. There is no network-facing path into drivers/block/brd.c.\\nAC:L - The attacker drives the exploitable side of the race directly by spinning open()/close() on /dev/ram0 (or by triggering block-major-1 autoload) and can retry unboundedly because a failed load leaves the major unregistered; the allocation failure that aborts brd_init() is inducible via local memory pressure. This matches the treatment of other allocation/registration error-path UAFs in this subsystem.\\nPR:L - The attacker needs only a local account able to open the ram-disk device node (e.g. disk-group membership on stock distros, or the looser block-device permissions common on embedded/Android/appliance systems); no CAP_SYS_MODULE is needed since the module load can be an admin/boot action or kernel-initiated autoload.\\nUI:N - No victim action is needed \\u2014 the attacker\u0027s own open() of a major-1 node can trigger the module autoload, and the boot-time load path requires no interactive user involvement.\\nS:U - The use-after-free is entirely within kernel memory and yields kernel-level compromise of the same system; no VM, IOMMU, or sandbox boundary is crossed.\\nC:H - This is a use-after-free: disk-\u003efops dangles into freed module memory and disk-\u003eprivate_data into a freed slab object, so the attacker can reclaim those allocations and use the stale references to disclose arbitrary kernel memory.\\nI:H - The dangling fops pointer results in an indirect call through freed executable module memory, which is reclaimable by subsequent module loads or BPF JIT allocations, giving a realistic control-flow-hijack/arbitrary-write primitive; the freed brd_device is likewise a heap-spray target.\\nA:H - The demonstrated result is a kernel oops (unhandled page fault in blkdev_put_whole() \\u2192 bdev_release() path), and any use-after-free of this kind reliably panics the machine.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"7f9b348cb5e94259acdcbafbcaed55d3bb515304\", \"lessThan\": \"41219c147df8bbd6591f59af5d695fb6c9a1cbff\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7f9b348cb5e94259acdcbafbcaed55d3bb515304\", \"lessThan\": \"259bf925583ec9e3781df778cadf00594095090d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7f9b348cb5e94259acdcbafbcaed55d3bb515304\", \"lessThan\": \"410896624db639500f24f46478b4bfa05c76bf56\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7f9b348cb5e94259acdcbafbcaed55d3bb515304\", \"lessThan\": \"c0c2744cd2939ec5999c51dbaf2af16886548b7b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7f9b348cb5e94259acdcbafbcaed55d3bb515304\", \"lessThan\": \"63dfd728b30f79495dacc886127695a379805152\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"7f9b348cb5e94259acdcbafbcaed55d3bb515304\", \"lessThan\": \"826cc42adf44930a633d11a5993676d85ddb0842\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/block/brd.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.14\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.14\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.15.174\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.120\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.64\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.11.11\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.11.*\"}, {\"status\": \"unaffected\", \"version\": \"6.12.2\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.12.*\"}, {\"status\": \"unaffected\", \"version\": \"6.13\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/block/brd.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/41219c147df8bbd6591f59af5d695fb6c9a1cbff\"}, {\"url\": \"https://git.kernel.org/stable/c/259bf925583ec9e3781df778cadf00594095090d\"}, {\"url\": \"https://git.kernel.org/stable/c/410896624db639500f24f46478b4bfa05c76bf56\"}, {\"url\": \"https://git.kernel.org/stable/c/c0c2744cd2939ec5999c51dbaf2af16886548b7b\"}, {\"url\": \"https://git.kernel.org/stable/c/63dfd728b30f79495dacc886127695a379805152\"}, {\"url\": \"https://git.kernel.org/stable/c/826cc42adf44930a633d11a5993676d85ddb0842\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbrd: defer automatic disk creation until module initialization succeeds\\n\\nMy colleague Wupeng found the following problems during fault injection:\\n\\nBUG: unable to handle page fault for address: fffffbfff809d073\\nPGD 6e648067 P4D 123ec8067 PUD 123ec4067 PMD 100e38067 PTE 0\\nOops: Oops: 0000 [#1] PREEMPT SMP KASAN NOPTI\\nCPU: 5 UID: 0 PID: 755 Comm: modprobe Not tainted 6.12.0-rc3+ #17\\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS\\n1.16.1-2.fc37 04/01/2014\\nRIP: 0010:__asan_load8+0x4c/0xa0\\n...\\nCall Trace:\\n \u003cTASK\u003e\\n blkdev_put_whole+0x41/0x70\\n bdev_release+0x1a3/0x250\\n blkdev_release+0x11/0x20\\n __fput+0x1d7/0x4a0\\n task_work_run+0xfc/0x180\\n syscall_exit_to_user_mode+0x1de/0x1f0\\n do_syscall_64+0x6b/0x170\\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\\n\\nloop_init() is calling loop_add() after __register_blkdev() succeeds and\\nis ignoring disk_add() failure from loop_add(), for loop_add() failure\\nis not fatal and successfully created disks are already visible to\\nbdev_open().\\n\\nbrd_init() is currently calling brd_alloc() before __register_blkdev()\\nsucceeds and is releasing successfully created disks when brd_init()\\nreturns an error. This can cause UAF for the latter two case:\\n\\ncase 1:\\n    T1:\\nmodprobe brd\\n  brd_init\\n    brd_alloc(0) // success\\n      add_disk\\n        disk_scan_partitions\\n          bdev_file_open_by_dev // alloc file\\n          fput // won\u0027t free until back to userspace\\n    brd_alloc(1) // failed since mem alloc error inject\\n  // error path for modprobe will release code segment\\n  // back to userspace\\n  __fput\\n    blkdev_release\\n      bdev_release\\n        blkdev_put_whole\\n          bdev-\u003ebd_disk-\u003efops-\u003erelease // fops is freed now, UAF!\\n\\ncase 2:\\n    T1:                            T2:\\nmodprobe brd\\n  brd_init\\n    brd_alloc(0) // success\\n                                   open(/dev/ram0)\\n    brd_alloc(1) // fail\\n  // error path for modprobe\\n\\n                                   close(/dev/ram0)\\n                                   ...\\n                                   /* UAF! */\\n                                   bdev-\u003ebd_disk-\u003efops-\u003erelease\\n\\nFix this problem by following what loop_init() does. Besides,\\nreintroduce brd_devices_mutex to help serialize modifications to\\nbrd_list.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.174\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.120\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.64\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.11.11\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.12.2\", \"versionStartIncluding\": \"5.14\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.13\", \"versionStartIncluding\": \"5.14\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:46:07.115Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-56693\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:46:07.115Z\", \"dateReserved\": \"2024-12-27T15:00:39.849Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-12-28T09:46:18.203Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

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…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…