Nixpkgs security tracker

Login with GitHub
⚠️ You are using a production deployment that is still only suitable for demo purposes. Any work done in this might be wiped later without notice.

Dismissed suggestions

These automatic suggestions were dismissed after initial triaging.

to select a suggestion for revision.

View:
Compact
Detailed
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net/smc: avoid NULL deref of conn->lnk in smc_msg_event tracepoint

In the Linux kernel, the following vulnerability has been resolved: net/smc: avoid NULL deref of conn->lnk in smc_msg_event tracepoint The smc_msg_event tracepoint class, shared by smc_tx_sendmsg and smc_rx_recvmsg, unconditionally dereferences smc->conn.lnk: __string(name, smc->conn.lnk->ibname) conn->lnk is only set for SMC-R; for SMC-D it is NULL. Other code on these paths already handles this (e.g. !conn->lnk in SMC_STAT_RMB_TX_SIZE_SMALL()). With the tracepoint enabled, the first sendmsg()/recvmsg() on an SMC-D socket crashes: Oops: general protection fault, probably for non-canonical address KASAN: null-ptr-deref in range [...] RIP: 0010:strlen+0x1e/0xa0 Call Trace: trace_event_raw_event_smc_msg_event (net/smc/smc_tracepoint.h:44) smc_rx_recvmsg (net/smc/smc_rx.c:515) smc_recvmsg (net/smc/af_smc.c:2859) __sys_recvfrom (net/socket.c:2315) __x64_sys_recvfrom (net/socket.c:2326) do_syscall_64 The faulting address 0x3e0 is offsetof(struct smc_link, ibname), confirming the NULL ->lnk deref. Enabling the tracepoint requires root, but the trigger itself is unprivileged: socket(AF_SMC, ...) has no capability check, and SMC-D negotiation needs no admin step on s390 or on x86 with the loopback ISM device loaded. Log an empty device name for SMC-D instead of dereferencing NULL.

Affected products

Linux
  • <720c76b930c52cd58f50eb6b10569d03dccc7959
  • =<6.1.*
  • =<6.18.*
  • ==5.16
  • =<6.12.*
  • =<7.0.*
  • =<*
  • <561cf66fa9b6c86dfe4e687d2d1aeaaa6739917f
  • <68200112534bb2acd1d7117dc2d5c124868d866d
  • =<6.6.*
  • <7bf563badd37cb796df5477d2b78bb64148a1268
  • <b706d6d76a2a2793fe5ad0fbc2a75b6a460094ef
  • <5.16
  • <d2ea0b8aef8746e147602eac87ca8538f4bc7e66
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net/sched: sch_dualpi2: drain both C-queue and L-queue in dualpi2_change()

In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_dualpi2: drain both C-queue and L-queue in dualpi2_change() Fix dualpi2_change() to correctly enforce updated limit and memlimit values after a configuration change of the dualpi2 qdisc. Before this patch, dualpi2_change() always attempted to dequeue packets via the root qdisc (C-queue) when reducing backlog or memory usage, and unconditionally assumed that a valid skb will be returned. When traffic classification results in packets being queued in the L-queue while the C-queue is empty, this leads to a NULL skb dereference during limit or memlimit enforcement. This is fixed by first dequeuing from the C-queue path if it is non-empty. Once the C-queue is empty, packets are dequeued directly from the L-queue. Return values from qdisc_dequeue_internal() are checked for both queues. When dequeuing from the L-queue, the parent qdisc qlen and backlog counters are updated explicitly to keep overall qdisc statistics consistent.

Affected products

Linux
  • <478ed6b7d2577439c610f91fa8759a4c878a4264
  • <6.17
  • =<6.18.*
  • =<7.0.*
  • <86cf2eba2056bcf9c41fba260e599bd95bf9943b
  • =<*
  • ==6.17
  • <3042add80c2c50bd127d570b83319af612efde65
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
batman-adv: dat: handle forward allocation error

In the Linux kernel, the following vulnerability has been resolved: batman-adv: dat: handle forward allocation error batadv_dat_forward_data() calls pskb_copy_for_clone() to duplicate an skb for each DHT candidate, but does not check the return value before passing it to batadv_send_skb_prepare_unicast_4addr(). That function dereferences the skb unconditionally, so a failed allocation triggers a NULL pointer dereference. Skip forwarding to the current DHT candidate on allocation failure.

Affected products

Linux
  • <2d8826a2d3657cea66fb0370f9e521575a673871
  • =<5.15.*
  • <9cceea8eeba710def2a5707ee00f00c74a9a1cac
  • =<6.18.*
  • =<6.12.*
  • <2edb8aeb3cdda9d00ec4997252dc5bcd6f54d8ef
  • <9bcebaedfb8479cb4affb23c7a0d000ca9a20e73
  • ==3.8
  • =<7.0.*
  • <cf48e75fc4fe0d5cc7721c82d454221d01367b93
  • <866ac1d57040ed0b44ca732e3c66b3aa6b93011c
  • <ce0c381199402a2c58f4599f4f6ed100d872d0da
  • =<*
  • =<6.6.*
  • <3.8
  • =<6.1.*
  • =<5.10.*
  • <4d420d9ee70a220a2cd95aa0dd2e15acad66a505
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ALSA: usb-audio: Bound MIDI endpoint descriptor scans

In the Linux kernel, the following vulnerability has been resolved: ALSA: usb-audio: Bound MIDI endpoint descriptor scans snd_usbmidi_get_ms_info() validates the internal MIDIStreaming endpoint descriptor size before using baAssocJackID[], but the descriptor walker can still return a class-specific endpoint descriptor whose bLength exceeds the remaining bytes in the endpoint-extra scan. That leaves later flexible-array reads bounded by bLength, but not by the remaining bytes in the endpoint-extra scan. Stop walking when bLength is zero or extends past the remaining endpoint-extra scan.

Affected products

Linux
  • =<6.18.*
  • ==0868bc5654c07628c421547f0821650a8c2cb8f3
  • <4.5
  • ==5.7
  • =<7.0.*
  • ==78483c1c7741ffa72991d93d19a75bfdcc2cbf57
  • ==65d95462001c6ccd9bc9499c1fc9a90eca9de496
  • <5.7
  • =<6.1.*
  • <09141583bd97f4bbd7358e29fd138fe798467cdb
  • <4.20
  • <e2f1260a056eb3215c13c48c5378f3e4112dc3af
  • <d6854daa67be623860f4e1873fd3d3c275aba4ed
  • <4.15
  • <5.5
  • <3d3b2b01a3e73828e201ece96f863e7a3e0cdc6e
  • <4.10
  • <c65b137d351e21cbc5630e73ef0eb1e1d75f5b20
  • <728ab0c72e49ca27185067984cd565425eb69b2e
  • ==9e0c71f2f633b0442661966228827d1a33df485f
  • <c59159ce10e75b568cd0d4b29efcb0fb0ddecc94
  • =<5.15.*
  • =<*
  • ==ca767cf0152d18fc299cde85b18d1f46ac21e1ba
  • =<5.10.*
  • =<6.12.*
  • <a0226560540c16717efcceaf15c862cf115b01d3
  • =<6.6.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
sched/fair: Clear rel_deadline when initializing forked entities

In the Linux kernel, the following vulnerability has been resolved: sched/fair: Clear rel_deadline when initializing forked entities A yield-triggered crash can happen when a newly forked sched_entity enters the fair class with se->rel_deadline unexpectedly set. The failing sequence is: 1. A task is forked while se->rel_deadline is still set. 2. __sched_fork() initializes vruntime, vlag and other sched_entity state, but does not clear rel_deadline. 3. On the first enqueue, enqueue_entity() calls place_entity(). 4. Because se->rel_deadline is set, place_entity() treats se->deadline as a relative deadline and converts it to an absolute deadline by adding the current vruntime. 5. However, the forked entity's deadline is not a valid inherited relative deadline for this new scheduling instance, so the conversion produces an abnormally large deadline. 6. If the task later calls sched_yield(), yield_task_fair() advances se->vruntime to se->deadline. 7. The inflated vruntime is then used by the following enqueue path, where the vruntime-derived key can overflow when multiplied by the entity weight. 8. This corrupts cfs_rq->sum_w_vruntime, breaks EEVDF eligibility calculation, and can eventually make all entities appear ineligible. pick_next_entity() may then return NULL unexpectedly, leading to a later NULL dereference. A captured trace shows the effect clearly. Before yield, the entity's vruntime was around: 9834017729983308 After yield_task_fair() executed: se->vruntime = se->deadline the vruntime jumped to: 19668035460670230 and the deadline was later advanced further to: 19668035463470230 This shows that the deadline had already become abnormally large before yield_task_fair() copied it into vruntime. rel_deadline is only meaningful when se->deadline really carries a relative deadline that still needs to be placed against vruntime. A freshly forked sched_entity should not inherit or retain this state. Clear se->rel_deadline in __sched_fork(), together with the other sched_entity runtime state, so that the first enqueue does not interpret the new entity's deadline as a stale relative deadline.

Affected products

Linux
  • =<6.18.*
  • <c71bf35caba12bfd9bc23e32b0bcd9e02d1cf1ac
  • <f3c16e1f4a314a20717ab90a41885f8111a242ab
  • =<7.0.*
  • ==6.12
  • =<*
  • <6.12
  • =<6.12.*
  • <3da56dc063cd77b9c0b40add930767fab4e389f3
  • <8f4a16200785f49cf02c5b71bdfe7a9dab63f23a
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ocfs2: validate bg_bits during freefrag scan

In the Linux kernel, the following vulnerability has been resolved: ocfs2: validate bg_bits during freefrag scan [BUG] A crafted filesystem can trigger an out-of-bounds bitmap walk when OCFS2_IOC_INFO is issued with OCFS2_INFO_FL_NON_COHERENT. BUG: KASAN: use-after-free in instrument_atomic_read include/linux/instrumented.h:68 [inline] BUG: KASAN: use-after-free in _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline] BUG: KASAN: use-after-free in test_bit_le include/asm-generic/bitops/le.h:21 [inline] BUG: KASAN: use-after-free in ocfs2_info_freefrag_scan_chain fs/ocfs2/ioctl.c:495 [inline] BUG: KASAN: use-after-free in ocfs2_info_freefrag_scan_bitmap fs/ocfs2/ioctl.c:588 [inline] BUG: KASAN: use-after-free in ocfs2_info_handle_freefrag fs/ocfs2/ioctl.c:662 [inline] BUG: KASAN: use-after-free in ocfs2_info_handle_request+0x1c66/0x3370 fs/ocfs2/ioctl.c:754 Read of size 8 at addr ffff888031bce000 by task syz.0.636/1435 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0xbe/0x130 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0xd1/0x650 mm/kasan/report.c:482 kasan_report+0xfb/0x140 mm/kasan/report.c:595 check_region_inline mm/kasan/generic.c:186 [inline] kasan_check_range+0x11c/0x200 mm/kasan/generic.c:200 __kasan_check_read+0x11/0x20 mm/kasan/shadow.c:31 instrument_atomic_read include/linux/instrumented.h:68 [inline] _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline] test_bit_le include/asm-generic/bitops/le.h:21 [inline] ocfs2_info_freefrag_scan_chain fs/ocfs2/ioctl.c:495 [inline] ocfs2_info_freefrag_scan_bitmap fs/ocfs2/ioctl.c:588 [inline] ocfs2_info_handle_freefrag fs/ocfs2/ioctl.c:662 [inline] ocfs2_info_handle_request+0x1c66/0x3370 fs/ocfs2/ioctl.c:754 ocfs2_info_handle+0x18d/0x2a0 fs/ocfs2/ioctl.c:828 ocfs2_ioctl+0x632/0x6e0 fs/ocfs2/ioctl.c:913 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:597 [inline] __se_sys_ioctl fs/ioctl.c:583 [inline] __x64_sys_ioctl+0x197/0x1e0 fs/ioctl.c:583 ... [CAUSE] ocfs2_info_freefrag_scan_chain() uses on-disk bg_bits directly as the bitmap scan limit. The coherent path reads group descriptors through ocfs2_read_group_descriptor(), which validates the descriptor before use. The non-coherent path uses ocfs2_read_blocks_sync() instead and skips that validation, so an impossible bg_bits value can drive the bitmap walk past the end of the block. [FIX] Compute the bitmap capacity from the filesystem format with ocfs2_group_bitmap_size(), report descriptors whose bg_bits exceeds that limit, and clamp the scan to the computed capacity. This keeps the freefrag report going while avoiding reads beyond the buffer.

Affected products

Linux
  • =<5.15.*
  • =<6.18.*
  • <bb3c54d1e71578521111f1a1ee7d5f4761a242b8
  • =<6.12.*
  • =<7.0.*
  • <e0dcf12665d6dde37facf790803cdad44d5c328c
  • <3.0
  • <0998674eec138c55e9e349b9cbd9dbc5129a9cc8
  • =<*
  • <4c2d62ddde8928db12f4608950b67a20e67deab2
  • <bb2906a1065ec28de021bac2ed03f2624edd7d07
  • <8f687eeed3da3012152b0f9473f578869de0cd7b
  • =<5.10.*
  • <05d0cbea41167b6b061c6ba5b70ee5a9a7a24c9e
  • ==3.0
  • =<6.1.*
  • <3e167e230d19cd273108bab2e4c61800fc335ae8
  • =<6.6.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ocfs2: validate group add input before caching

In the Linux kernel, the following vulnerability has been resolved: ocfs2: validate group add input before caching [BUG] OCFS2_IOC_GROUP_ADD can trigger a BUG_ON in ocfs2_set_new_buffer_uptodate(): kernel BUG at fs/ocfs2/uptodate.c:509! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI RIP: 0010:ocfs2_set_new_buffer_uptodate+0x194/0x1e0 fs/ocfs2/uptodate.c:509 Code: ffffe88f 42b9fe4c 89e64889 dfe8b4df Call Trace: ocfs2_group_add+0x3f1/0x1510 fs/ocfs2/resize.c:507 ocfs2_ioctl+0x309/0x6e0 fs/ocfs2/ioctl.c:887 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:597 [inline] __se_sys_ioctl fs/ioctl.c:583 [inline] __x64_sys_ioctl+0x197/0x1e0 fs/ioctl.c:583 x64_sys_call+0x1144/0x26a0 arch/x86/include/generated/asm/syscalls_64.h:17 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x93/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7bbfb55a966d [CAUSE] ocfs2_group_add() calls ocfs2_set_new_buffer_uptodate() on a user-controlled group block before ocfs2_verify_group_and_input() validates that block number. That helper is only valid for newly allocated metadata and asserts that the block is not already present in the chosen metadata cache. The code also uses INODE_CACHE(inode) even though the group descriptor belongs to main_bm_inode and later journal accesses use that cache context instead. [FIX] Validate the on-disk group descriptor before caching it, then add it to the metadata cache tracked by INODE_CACHE(main_bm_inode). Keep the validation failure path separate from the later cleanup path so we only remove the buffer from that cache after it has actually been inserted. This keeps the group buffer lifetime consistent across validation, journaling, and cleanup.

Affected products

Linux
  • <6c5e70409c1961fe1278968f038eaaed6cc1145a
  • ==2.6.25
  • <76bd722db0a92b84ccd99e03796a0b6f1ae71c31
  • <b9ae3942deec4c9e3fa2070521f90910f7490011
  • <70b672833f4025341c11b22c7f83778a5cd611bc
  • <2.6.25
  • =<5.15.*
  • =<6.18.*
  • =<6.12.*
  • <e7c2cb552e6eb85c0f5aefdd7f0f7c3c8591a6a3
  • =<7.0.*
  • <22544ddedf381ed5191cfc783aea8d6c936bc201
  • <aed87e866d1a321edb9703563c2faa8fec89835d
  • =<*
  • =<6.6.*
  • =<6.1.*
  • =<5.10.*
  • <f7e139d7563f6947ad509fb468903941d0bb7ddd
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
batman-adv: frag: disallow unicast fragment in fragment

In the Linux kernel, the following vulnerability has been resolved: batman-adv: frag: disallow unicast fragment in fragment batadv_frag_skb_buffer() is called by batadv_batman_skb_recv() when a BATADV_UNICAST_FRAG packet is received. Once all fragments are collected and the packet is reassembled, batadv_recv_frag_packet() calls batadv_batman_skb_recv() again to process the defragmented payload. A malicious sender can craft a BATADV_UNICAST_FRAG packet whose reassembled payload is itself a BATADV_UNICAST_FRAG packet (matryoshka-style nesting). Each nesting level recurses through batadv_batman_skb_recv() without bound, growing the kernel stack until it is exhausted. Since refragmentation or fragments in fragments are not actually allowed, discard all packets which are still BATADV_UNICAST_FRAG packets after the defragmentation process.

Affected products

Linux
  • =<6.6.*
  • =<5.15.*
  • =<6.18.*
  • <3.13
  • =<6.12.*
  • <bc62216dc8e221e3781afa14430f45208bfa9af9
  • =<7.0.*
  • <b54e459cf86943583c1aa2ee3081874e7ab1f5f3
  • <bcda4814dc6524283c0b958882cb963d75fe411d
  • <0c208fa3859e3a33a1c38bebc41d021166e94ac8
  • ==3.13
  • <7138c35c9ad39a2fca6264af6b87466471f04ffc
  • <5895ad21c7059a652da83fb817510f7a1e962abf
  • =<*
  • =<5.10.*
  • =<6.1.*
  • <5418be6c2e117bf8a316582795a8e3ff90f45e5d
  • <aea54d0bbe156d5ab7d00d68f66149ff41f4612a
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
greybus: raw: fix use-after-free if write is called after disconnect

In the Linux kernel, the following vulnerability has been resolved: greybus: raw: fix use-after-free if write is called after disconnect If a user writes to the chardev after disconnect has been called, the kernel panics with the following trace (with CONFIG_INIT_ON_FREE_DEFAULT_ON=y): BUG: kernel NULL pointer dereference, address: 0000000000000218 ... Call Trace: <TASK> gb_operation_create_common+0x61/0x180 gb_operation_create_flags+0x28/0xa0 gb_operation_sync_timeout+0x6f/0x100 raw_write+0x7b/0xc7 [gb_raw] vfs_write+0xcf/0x420 ? task_mm_cid_work+0x136/0x220 ksys_write+0x63/0xe0 do_syscall_64+0xa4/0x290 entry_SYSCALL_64_after_hwframe+0x77/0x7f Disconnect calls gb_connection_destroy, which ends up freeing the connection object. When gb_operation_sync is called in the write file operations, its gets a freed connection as parameter and the kernel panics. The gb_connection_destroy cannot be moved out of the disconnect function, as the Greybus subsystem expect all connections belonging to a bundle to be destroyed when disconnect returns. To prevent this bug, use a rw lock to synchronize access between write and disconnect. This guarantees that the write function doesn't try to use a disconnected connection.

Affected products

Linux
  • <84265cbd96b97058ef67e3f8be3933667a000835
  • ==4.9
  • =<7.0.*
  • <48d6c32bc049abd114e8f0836c0e7d7cbfba7827
  • =<*
  • <4.9
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 5 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
tap: fix stack info leak in tap_ioctl() SIOCGIFHWADDR

In the Linux kernel, the following vulnerability has been resolved: tap: fix stack info leak in tap_ioctl() SIOCGIFHWADDR In the SIOCGIFHWADDR path, tap_ioctl() copies 16 bytes of an uninitialised on-stack struct sockaddr_storage to userspace via ifr_hwaddr, but netif_get_mac_address() only writes sa_family and dev->addr_len (6 for Ethernet) bytes, leaving sa_data[6..13] uninitialised. Those 8 trailing bytes leak kernel stack contents; SIOCGIFHWADDR on a macvtap chardev returns kernel .text and direct-map pointers, defeating KASLR. Initialise ss at declaration.

Affected products

Linux
  • =<6.18.*
  • <bddc09212c24934643bd44fc794748d2bbb3b6cd
  • <5.5
  • <5.11
  • ==1fc205d9e400f069ebf30d3faa6ec2bab2cbd7b4
  • ==5.12
  • =<7.0.*
  • <5.12
  • <5.12
  • <719007c3492f0f1f9e9cdbed8ac45ba45bb13eeb
  • =<*
  • ==176188cff67ec1aa55103647b61d02315cc38e98
  • <05305e832be7b9d65b2b72caacf7d850b3942b2a
  • ==4d0ae760c02c98fc78b78d3a0509896bc648ad1c