CVE-2024-50264

Published Nov 19, 2024

Last updated 9 months ago

CVSS high 7.8
Linux Kernel

Overview

AI description

Automated description summarized from trusted sources.

CVE-2024-50264 is a vulnerability in the Linux kernel, specifically within the vsock/virtio subsystem. It arises from a dangling pointer issue during loopback communication. A dangling pointer can be created in `vsk->trans`, potentially leading to a Use-After-Free condition. The vulnerability occurs because the `vsk->trans` pointer is not properly initialized. The fix involves initializing `vsk->trans` to NULL, which prevents the use of the dangling pointer and resolves the Use-After-Free condition.

Description
In the Linux kernel, the following vulnerability has been resolved: vsock/virtio: Initialization of the dangling pointer occurring in vsk->trans During loopback communication, a dangling pointer can be created in vsk->trans, potentially leading to a Use-After-Free condition. This issue is resolved by initializing vsk->trans to NULL.
Source
416baaa9-dc9f-4396-8d5f-8c081fb06d67
NVD status
Modified
Products
linux_kernel

Risk scores

CVSS 3.1

Type
Primary
Base score
7.8
Impact score
5.9
Exploitability score
1.8
Vector string
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Severity
HIGH

Weaknesses

nvd@nist.gov
CWE-416
134c704f-9b21-4f2e-91b3-4a467353bcc0
CWE-416

Social media

Hype score
Not currently trending
  1. Race Condition Symphony: From Tiny Idea to Pwnie Slides from a talk by @v4bel and @_qwerty_po about exploiting CVE-2024-50264 — a race condition in the vsock subsystem. https://t.co/0ATZjFEet7 https://t.co/t1CsyPz5UH

    @linkersec

    25 Nov 2025

    1169 Impressions

    6 Retweets

    28 Likes

    13 Bookmarks

    1 Reply

    0 Quotes

  2. Kernel-hack-drill и новый эксплойт для CVE-2024-50264 в ядре Linux https://t.co/lHdHrLv5co https://t.co/YoG5XmldjN

    @VulnersHub

    3 Oct 2025

    0 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  3. Reduce the attack surface for CVE-2024-50264 without patching https://t.co/xFXXcDi3qV

    @vicariusltd

    16 Sept 2025

    100 Impressions

    0 Retweets

    1 Like

    0 Bookmarks

    0 Replies

    0 Quotes

  4. Linuxカーネル脆弱性CVE-2024-50264に対し、新たな権限昇格手法が公開された。従来は不安定なレース条件と複雑なメモリスプレーを要したが、研究者Alexander Popovはmsg_msgオブジェクトを利用し、安定したUAF悪用を

    @yousukezan

    9 Sept 2025

    1461 Impressions

    2 Retweets

    8 Likes

    1 Bookmark

    0 Replies

    0 Quotes

  5. Linuxカーネルの重大脆弱性CVE-2024-50264に対して、新たな攻撃手法が発見された。従来は困難とされたカーネルハードニングを突破し、権限昇格を現実的な脅威に変えた点で注目を集めている。 この脆弱性はLinu

    @yousukezan

    9 Sept 2025

    3234 Impressions

    7 Retweets

    19 Likes

    16 Bookmarks

    0 Replies

    0 Quotes

  6. Kernel-hack-drill and a new approach to exploiting CVE-2024-50264 in the Linux kernel #cybersecurity #linux https://t.co/sp0VgWbXyJ

    @davilagrau

    5 Sept 2025

    200 Impressions

    0 Retweets

    2 Likes

    1 Bookmark

    0 Replies

    0 Quotes

  7. Kernel-hack-drill and exploiting CVE-2024-50264 in the Linux kernel: https://t.co/R5KoUy1l3V #infosec #cybersecurity #tech #AI #linux

    @GothamJSharma

    3 Sept 2025

    145 Impressions

    0 Retweets

    1 Like

    0 Bookmarks

    0 Replies

    0 Quotes

  8. Kernel-hack-drill and a new approach to exploiting CVE-2024-50264 in the Linux kernel https://t.co/Zb1OPynINg

    @_r_netsec

    3 Sept 2025

    577 Impressions

    0 Retweets

    0 Likes

    1 Bookmark

    0 Replies

    0 Quotes

  9. Fascinating deep dive into exploiting a Linux kernel UAF vulnerability (CVE-2024-50264) 🔍. Even Hacker News readers are struggling to pull away! A must-read for security enthusiasts. #HackerNews #Tech 🐧 https://t.co/LthumtmvJp

    @thatkid02

    3 Sept 2025

    2 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  10. Kernel-hack-drill and exploiting CVE-2024-50264 in the Linux kernel #HackerNews https://t.co/pTTubrJsaM https://t.co/rPWbny9KZa

    @hackernewstop5

    3 Sept 2025

    96 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  11. My new article: "Kernel-hack-drill and a new approach to exploiting CVE-2024-50264 in the Linux kernel"⚡️ I tell a bug collision story and introduce my pet project kernel-hack-drill, which helped me to exploit the hard bug that received @PwnieAwards 2025 https://t.co/0DJzCJ

    @a13xp0p0v

    2 Sept 2025

    10136 Impressions

    56 Retweets

    165 Likes

    83 Bookmarks

    1 Reply

    0 Quotes

  12. New article by @a13xp0p0v: "Kernel-hack-drill and a new approach to exploiting CVE-2024-50264 in the Linux kernel." Alexander used his pet project kernel-hack-drill to exploit a hard race condition that received the Pwnie Award 2025. https://t.co/qiZwf1UvRe https://t.co/1zWley1

    @ptswarm

    2 Sept 2025

    2697 Impressions

    16 Retweets

    35 Likes

    9 Bookmarks

    0 Replies

    0 Quotes

  13. Top 5 Trending CVEs: 1 - CVE-2017-5689 2 - CVE-2025-31324 3 - CVE-2025-8088 4 - CVE-2025-4609 5 - CVE-2024-50264 #cve #cvetrends #cveshield #cybersecurity https://t.co/4Fua3CAN6W

    @CVEShield

    10 Aug 2025

    13 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  14. Our CVE-2024-50264 with @_qwerty_po has won the Best Privilege Escalation category at the 2025 Pwnie Awards. Thank you, @PwnieAwards!! https://t.co/zYEZFNT1Tv

    @v4bel

    9 Aug 2025

    5474 Impressions

    9 Retweets

    102 Likes

    14 Bookmarks

    7 Replies

    0 Quotes

  15. 🇰🇷 Our researcher @a13xp0p0v spoke at #Zer0Con2025 in Seoul, describing his experiments with CVE-2024-50264 in the Linux kernel involving his toolkit kernel-hack-drill. Huge respect 👏 Until next time! #LinuxSecurity https://t.co/Gebwo88bYy

    @PTsecurity_EN

    16 Apr 2025

    18 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

  16. Slides of my talk at #Zer0Con2025! ⚡️ Kernel-Hack-Drill: Environment For Developing Linux Kernel Exploits ⚡️ I presented the kernel-hack-drill open-source project and showed how it helped me to exploit CVE-2024-50264 in the Linux kernel. Enjoy! https://t.co/84DqT4rdvm https://

    @a13xp0p0v

    14 Apr 2025

    9680 Impressions

    70 Retweets

    232 Likes

    107 Bookmarks

    3 Replies

    2 Quotes

  17. kernelCTF VSock 0-day write-up by @v4bel @_qwerty_po (exp196/exp197, CVE-2024-50264) https://t.co/ChTa7JC8PR

    @alexjplaskett

    20 Jan 2025

    3205 Impressions

    8 Retweets

    87 Likes

    31 Bookmarks

    0 Replies

    0 Quotes

  18. kernelCTF VSock 0-day: CVE-2024-50264 by @v4bel and @_qwerty_po https://t.co/ChTa7JCGFp

    @alexjplaskett

    6 Jan 2025

    4465 Impressions

    22 Retweets

    105 Likes

    54 Bookmarks

    3 Replies

    0 Quotes

  19. I just released our kernelCTF VSock 0-day write-up with @_qwerty_po . (exp196/exp197, CVE-2024-50264) https://t.co/8UpGrVcDFF We made history by being the first to exploit VSock in kernelCTF, expanding its known attack vectors. 🥳 It’s a pretty *simple* race condition, right? h

    @v4bel

    19 Dec 2024

    12731 Impressions

    46 Retweets

    193 Likes

    85 Bookmarks

    6 Replies

    3 Quotes

  20. CVE-2024-50264 In the Linux kernel, the following vulnerability has been resolved: vsock/virtio: Initialization of the dangling pointer occurring in vsk->trans During loopback com… https://t.co/8odlWu3zoz

    @CVEnew

    19 Nov 2024

    557 Impressions

    0 Retweets

    0 Likes

    0 Bookmarks

    0 Replies

    0 Quotes

Configurations

  1. In the Linux kernel, the following vulnerability has been resolved: KVM: x86/mmu: Ensure hugepage is in by slot before checking max mapping level When recovering hugepages in the shadow MMU, verify that the base gfn of the shadow page is actually contained within the target memslot, *before* querying the max mapping level given the shadow page's gfn. Failure to pre-check the validity of the gfn can lead to an out-of-bounds access to the slot's lpage_info (which typically manifests as a host #PF because the lpage_info is vmalloc'd) if the guest creates a hugepage mapping (in its PTEs) that extends "below" the bounds of a memslot. When faulting in memory for a guest, and the size of the guest mapping is greater than KVM's (current) max mapping, then KVM will create a "direct" shadow page (direct in that there are no gPTEs to shadow, and so the target gfn is a direct calculation given the base gfn of the shadow page). The hugepage recovery flow looks for such direct shadow pages, as forcing 4KiB mappings when dirty logging generates the guest > host mapping size case. When the 4KiB restriction is lifted, then KVM can replace the shadow page with a hugepage. But if KVM originally used a smaller mapping than the guest because the range of memory covered by the guest hugepage exceeds the bounds of a memslot, then KVM will link a direct shadow page with a gfn that is outside the bounds of the memslot being used to fault in memory. The rmap entry added for the leaf mapping is correct and within bounds, but the gfn of the leaf SPTE's parent shadow page will be out of bounds. BUG: unable to handle page fault for address: ffffc90000806ffc #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 100000067 P4D 100000067 PUD 1002a7067 PMD 10612f067 PTE 0 Oops: Oops: 0000 [#1] SMP CPU: 13 UID: 1000 PID: 757 Comm: mmu_stress_test Not tainted 7.1.0-rc1-48ce1e26eace-x86_pir_to_irr_comments-vm #341 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:kvm_mmu_max_mapping_level+0x79/0x2b0 [kvm] Call Trace: <TASK> kvm_mmu_recover_huge_pages+0x21b/0x320 [kvm] kvm_set_memslot+0x1ee/0x590 [kvm] kvm_set_memory_region.part.0+0x3a1/0x4d0 [kvm] kvm_vm_ioctl+0x9bf/0x15d0 [kvm] __x64_sys_ioctl+0x8a/0xd0 do_syscall_64+0xb7/0xbb0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x7f21c0f1a9bf </TASK> Don't bother pre-checking the bounds of the potential hugepage, i.e. don't check that e.g. sp->gfn + KVM_PAGES_PER_HPAGE(sp->role.level + 1) is also within the memslot, as the checks performed by kvm_mmu_max_mapping_level() are a superset of the basic bounds checks. I.e. pre-checking the full range would be a dubious micro-optimization.CVE-2026-63807
  2. In the Linux kernel, the following vulnerability has been resolved: KVM: Replace guest-triggerable BUG_ON() in ioeventfd datamatch with get_unaligned() Drop a BUG_ON() that has been reachable since it was first added, way back in 2009, and instead use get_unaligned() to perform potentially-unaligned accesses. For a given store, KVM x86's emulator tracks the entire value in the destination operand, x86_emulate_ctxt.dst. If the destination is memory, and the target splits multiple pages and/or is emulated MMIO, then KVM handles each fragment independently. E.g. on a page split starting at page offset 0xffc, KVM writes 4 bytes to the first page, then the remaining bytes to the second page, using ctxt->dst as the source for both (with appropriate offsets). If the destination splits a page *and* hits emulated MMIO on the second page, then KVM will complete the write to the first page, then emulate the MMIO access to the second page. If there is a datamatch-enabled ioeventfd at offset 0 of the second page, then KVM will process the remainder of the store as a potential ioeventfd signal. Putting it all together, if the guest emits a store that splits a page starting at page offset N, and the second page has a datamatch-enabled ioeventfd at offset 0, then KVM will check for datamatch using &dst.valptr[N] as the source. Due to dst (and thus dst.valptr) being 32-byte aligned, if N is not aligned to @len, the BUG_ON() fires. E.g. with a 16-byte store at page offset 0xffc, to an ioeventfd of len 8, all initial checks in ioeventfd_in_range() will succeed, and the BUG_ON() fires due to @val being 4-byte aligned, but not 8-byte aligned. ------------[ cut here ]------------ kernel BUG at arch/x86/kvm/../../../virt/kvm/eventfd.c:783! Oops: invalid opcode: 0000 [#1] SMP CPU: 0 UID: 1000 PID: 615 Comm: repro Not tainted 7.1.0-rc2-ff238429d1ea #365 PREEMPT Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015 RIP: 0010:ioeventfd_write+0x6c/0x70 [kvm] Call Trace: <TASK> __kvm_io_bus_write+0x85/0xb0 [kvm] kvm_io_bus_write+0x53/0x80 [kvm] vcpu_mmio_write+0x66/0xf0 [kvm] emulator_read_write_onepage+0x12a/0x540 [kvm] emulator_read_write+0x109/0x2b0 [kvm] x86_emulate_insn+0x4f8/0xfb0 [kvm] x86_emulate_instruction+0x181/0x790 [kvm] kvm_mmu_page_fault+0x313/0x630 [kvm] vmx_handle_exit+0x18a/0x590 [kvm_intel] kvm_arch_vcpu_ioctl_run+0xc81/0x1c90 [kvm] kvm_vcpu_ioctl+0x2d5/0x970 [kvm] __x64_sys_ioctl+0x8a/0xd0 do_syscall_64+0xb7/0x890 entry_SYSCALL_64_after_hwframe+0x4b/0x53 RIP: 0033:0x7f19c931a9bf </TASK> Modules linked in: kvm_intel kvm irqbypass ---[ end trace 0000000000000000 ]--- In a perfect world, the fix would be to simply delete the BUG_ON(), as KVM x86 doesn't perform alignment checks on "normal" memory accesses at CPL0. Sadly, C99 ruins all the fun; while the x86 architecture plays nice, dereferencing an unaligned pointer directly is undefined behavior in C, e.g. triggers splats when running with CONFIG_UBSAN_ALIGNMENT=y.CVE-2026-63806
  3. In the Linux kernel, the following vulnerability has been resolved: hdlc_ppp: sync per-proto timers before freeing hdlc state Each PPP control protocol (LCP/IPCP/IPV6CP) embedded in struct ppp registers a timer via timer_setup(). That struct ppp is the hdlc->state allocation, which detach_hdlc_protocol() frees with kfree() in both teardown paths: unregister_hdlc_device() and the re-attach inside attach_hdlc_protocol(). The ppp proto never registered a .detach callback, so detach_hdlc_protocol() performs no timer synchronization before the kfree(). The only cancel, timer_delete(&proto->timer) in ppp_cp_event(), is partial (it does not wait for a running callback) and only runs on the ->CLOSED transition; ppp_stop()/ppp_close() do not sync either. A ppp_timer callback already executing (blocked on ppp->lock) survives the kfree and then dereferences proto->state / ppp->lock in freed memory, leading to a use-after-free. Fix this by adding a .detach helper that calls timer_shutdown_sync() on every per-proto timer. detach_hdlc_protocol() invokes proto->detach(dev) before kfree(hdlc->state), so timer_shutdown_sync() now runs on both free paths. timer_shutdown_sync() is used instead of timer_delete_sync() because the keepalive path re-arms the timer through add_timer()/mod_timer() and shutdown blocks any re-activation during teardown. Initialize the per-protocol timers in ppp_ioctl() when the protocol is attached, and remove the now-redundant timer_setup() from ppp_start(), so that the timers are initialized exactly once at attach time and ppp_timer_release() never operates on uninitialized timer_list structures. attach_hdlc_protocol() uses kmalloc() (not kzalloc), so struct ppp's protos[i].timer is uninitialized garbage until the first timer_setup(); without this init-at-attach, attaching the PPP protocol without ever bringing the device up would leave timer_shutdown_sync() operating on uninitialized memory in .detach. Moving the init out of ppp_start() (which only runs on NETDEV_UP) into the attach path makes the initialization unconditional and avoids initializing the same timer_list twice. This bug was found by static analysis.CVE-2026-63803