Nixpkgs security tracker

Login with GitHub

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 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
udf: validate free block extents against the partition length

In the Linux kernel, the following vulnerability has been resolved: udf: validate free block extents against the partition length udf_free_blocks() checks the logical block number and count against the partition length, but drops the extent offset from that final bound. A crafted extent can pass the guard while logicalBlockNum + offset + count points past the partition, which later indexes past the space bitmap array. A single ftruncate(2) on a file backed by such an extent reliably panics the kernel. This is a local availability issue. On desktop systems where UDisks/polkit allows the active user to mount removable UDF media without CAP_SYS_ADMIN, an unprivileged local user can supply the crafted filesystem and trigger the panic by truncating a writable file on it. Systems that require root or CAP_SYS_ADMIN to mount the image have a higher prerequisite. No confidentiality or integrity impact is claimed: the reproduced primitive is an out-of-bounds read of a bitmap pointer slot followed by a kernel panic. Use the already computed logicalBlockNum + offset + count value for the partition length check. Also make load_block_bitmap() reject an out-of-range block group before indexing s_block_bitmap[], so corrupted callers cannot walk past the flexible array.

Affected products

Linux
  • <5.10.261
  • <6.11
  • <fb49099206c5c57af28a157249fa7bcb5518f99e
  • =<7.1.*
  • =<6.1.*
  • =<5.15.*
  • =<5.10.*
  • <5.15.212
  • <4.20
  • <b54aee5652fcd7c23a0904a4623ec462c3edc70c
  • ==097420e48e30f51e8f4f650b5c946f5af63ec1a3
  • ==05fb2bf477d3fe5421bd4cb699574737f52bd88b
  • <fdd6229d2ae9914c1f25d1041db0f4f312a4fa76
  • ==5def895b42ef16a2da6402818cba8d7ec8ede1ef
  • <6.6.145
  • <9442d75429b0c556292a7454fe888d54259f5240
  • =<6.6.*
  • <be87de7789a82a030a4896bc7683415ec9fa6f2b
  • <5.5
  • ==6.11
  • <6.1.178
  • <5f0419457f89dce1a3f1c8e62a3adf2f39ab8168
  • =<6.18.*
  • <335202ab25b01fdd45889ff25eab70864686dea3
  • =<6.12.*
  • <6.11
  • =<*
  • <12af328d2ee8d68e81ba612246d0b54b22d23e1f
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: ISO: avoid NULL deref of conn in iso_conn_big_sync()

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: ISO: avoid NULL deref of conn in iso_conn_big_sync() iso_conn_big_sync() drops the socket lock to call hci_get_route() and then re-acquires it, but dereferences iso_pi(sk)->conn->hcon afterwards without re-checking that conn is still valid. While the lock is dropped, the connection can be torn down under the same socket lock: iso_disconn_cfm() -> iso_conn_del() -> iso_chan_del() sets iso_pi(sk)->conn to NULL (and the broadcast teardown path can also clear conn->hcon on its own). When iso_conn_big_sync() re-acquires the lock and reads conn->hcon, conn may be NULL, causing a NULL pointer dereference (hcon is the first member of struct iso_conn). This path is reached from iso_sock_recvmsg() for a PA-sync broadcast sink socket (BT_SK_DEFER_SETUP | BT_SK_PA_SYNC), so the dropped-lock window can race with connection teardown driven by controller events. Re-validate iso_pi(sk)->conn and its hcon after re-acquiring the socket lock and bail out if the connection went away, as already done in the sibling iso_sock_rebind_bc().

Affected products

Linux
  • <01afd198c2c286cd3b81f44d4e33a2e638711550
  • <b84eeb7636d6962dd882d5e0b31475e4f404313c
  • =<6.18.*
  • <6.12.96
  • <6.13
  • =<6.12.*
  • =<7.1.*
  • =<*
  • ==6.13
  • <b3e647a4aa4d2d054f86a783f5c426035e1dc237
  • <d5541eb148da72d5e0a1bca8ecd171f9fc8b366f
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer()

In the Linux kernel, the following vulnerability has been resolved: coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer() When the SMB sink is used as a perf AUX sink, smb_update_buffer() calls smb_sync_perf_buffer() to copy hardware trace data into the perf AUX ring buffer pages. It derives pg_idx = head >> PAGE_SHIFT from @head, which is handle->head, and indexes dst_pages[pg_idx]. The pg_idx %= nr_pages normalization is only applied after the first loop iteration. This leaves the initial page index underived from the buffer size, which can result in an out-of-bounds write past dst_pages[] when head exceeds the AUX buffer size. Normalize head modulo the AUX buffer size before deriving the page index and offset, mirroring tmc_etr_sync_perf_buffer().

Affected products

Linux
  • <4c5a0a946373da99a80398289b28845b5ae40cd1
  • <661a019ac0413ecec9e5d1dfcc12fbca8e78d5fb
  • =<6.18.*
  • =<6.12.*
  • <98495b5a4d77dd22e106f462b76e1093a55b29a7
  • =<7.1.*
  • =<*
  • =<6.6.*
  • <daf6246ab988fc8bdc82ad7c8d0b1c182d11b15f
  • <6.3
  • <38dbc8db8341ccdf8e1e1a067453d33ad751864b
  • ==6.3
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
sched/rt: Have RT_PUSH_IPI be default off for non PREEMPT_RT

In the Linux kernel, the following vulnerability has been resolved: sched/rt: Have RT_PUSH_IPI be default off for non PREEMPT_RT RT migration is done aggressively. When a CPU schedules out a high priority RT task for a lower priority task, it will look to see if there's any RT tasks that are waiting to run on another CPU that is of higher priority than the task this CPU is about to run. If it finds one, it will pull that task over to the CPU and allow it to run there instead. Normally, this pulling is done by looking at the RT overloaded mask (rto) which contains all the CPUs in the scheduler domain with RT tasks that are waiting to run due to a higher priority RT task currently running on their CPU. The CPU that is about to schedule a lower priority task will grab the rq lock of the overloaded CPU and move the RT task from that CPU's runqueue to the local one and schedule the higher priority RT task. This caused issues when a lot of CPUs would schedule a lower priority task at the same time. They would all try to grab the same runqueue lock of the CPU with the overloaded RT tasks. Only the first CPU that got in will get that task. All the others would wait until they got the runqueue lock and see there's nothing to pull and do nothing. On systems with lots of CPUs, this caused a large latency (up to 500us) which is beyond what PREEMPT_RT is to allow. The solution to that was to create an RT_PUSH_IPI logic. When any CPU wanted to pull a task, instead of grabbing the runqueue lock of the overloaded CPU, it would start by sending an IPI to the overloaded CPU, and that IPI handler would have the CPU with the waiting RT task do a push instead. Then that handler would send an IPI to the next CPU with overloaded RT tasks, and so on. Note, after the first CPU starts this process, if another CPU wanted to do a pull, it would see that the process has already begun and would only increment a counter to have the IPIs continue again. The RT_PUSH_IPI solved the latency problem with PREEMPT_RT but could cause a new issue with non PREEMPT_RT. Namely, softirqs run in a threaded context on PREEMPT_RT but they can run in an interrupt context in non-RT. If an IPI lands on a CPU that has just woken up multiple RT tasks and the current CPU is running a non RT or a low priority RT task, instead of doing a push, it would simply do a schedule on that CPU. But if a softirq was also executing on this CPU, the schedule would need to wait until the softirq finished. Until then, the CPU would still be considered overloaded as there are RT tasks still waiting to run on it. A live lock occurred on a workload that was doing heavy networking traffic on a large machine where the softirqs would run 500us out of 750us. And it would also be waking up RT tasks, causing the RT pull logic to be constantly executed. When a softirq triggered on a CPU with RT tasks queued but not running yet, and the other CPUs would see this CPU as being overloaded, they would send an IPI over to it. The CPU would notice that the waiting RT tasks are of higher priority than the currently running task and simply schedule that CPU instead. But because the softirq was executing, before it could schedule, it would receive another IPI to do the same. The amount of IPIs would slow down the currently running softirq so much that before it could return back to task context, it would execute another softirq never allowing the CPU to schedule. This live locked that CPU. As RT_PUSH_IPI was created to help PREEMPT_RT, make it default off if PREEMPT_RT is not enabled.

Affected products

Linux
  • <860aaff72c8446fed5e576249e19952883a18885
  • <4bd0da48fbc1dbef6774175129107fbbdd353e26
  • <4.1
  • =<5.10.*
  • <d8312a56d9a162e3ec76476aa487e7d20bc602e9
  • <44aae426dbfd51286f7eb601cfa14bc32164812a
  • <a18f80bf5359238c4f067d691b96af00286fdd89
  • =<6.18.*
  • <b99f04ae3d200d2f8844aa29145bd18eccbeecde
  • =<6.12.*
  • =<5.15.*
  • =<7.1.*
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <dd29c017aed628076e915fe4cdfb5392fd4c5cab
  • ==4.1
  • <89237c8fc15d8016a194076e648ccb57d75e65ae
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
KVM: x86: Ensure vendor's exit handler runs before fastpath userspace exits

In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Ensure vendor's exit handler runs before fastpath userspace exits Move the handling of fastpath userspace exits into vendor code to ensure KVM runs vendor specific operations that need to run before userspace gains control of the vCPU. E.g. for VMX (and soon to be for SVM as well), KVM needs to flush the PML buffer prior to exiting to userspace, otherwise any memory written by the final KVM_RUN might never be flagged as dirty. Note, waiting to snapshot CR0 and CR3 until svm_handle_exit() is flawed in general, as that risks consuming stale state in a fastpath handler. That will be addressed in a future change.

Affected products

Linux
  • <4ad73ef0e7966ecfe67de0060537b4cb14d9acd4
  • ==6.12
  • <f2ca2b5326211bd38490f0497eb583721ce0bbc0
  • <b3436d9b9b1affe1c3191ac9831308923f5f03c3
  • =<6.18.*
  • <6.12
  • =<6.12.*
  • =<7.1.*
  • <0ffedf43910e44b76c2c1db4e9fbf12b268190c1
  • =<*
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
fs/ntfs3: validate Dirty Page Table capacity in log_replay copy_lcns

In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: validate Dirty Page Table capacity in log_replay copy_lcns In the analysis pass of $LogFile journal replay, log_replay() copies LCNs from each action log record into an existing Dirty Page Table (DPT) entry without bounding the destination index. A crafted NTFS image with DPT entry lcns_follow=1 and an action log record with lcns_follow=2 produces a kernel slab out-of-bounds write at mount time: BUG: KASAN: slab-out-of-bounds in log_replay+0x654c/0xdb60 Write of size 8 at addr ffff8880095e1040 by task mount Two attacker-controlled fields can drive j+i past the allocated page_lcns[] array: 1. dp->lcns_follow (capacity) can be smaller than lrh->lcns_follow. 2. lrh->target_vcn may be smaller than dp->vcn, making the u64 subtraction wrap to a huge size_t. Validate target VCN delta and per-record LCN count against the DPT entry capacity, bail via the existing out: cleanup label with -EINVAL. This mirrors the bounds-check pattern added in commit b2bc7c44ed17 ("fs/ntfs3: Fix slab-out-of-bounds read in DeleteIndexEntryRoot") and commit 0ca0485e4b2e ("fs/ntfs3: validate rec->used in journal-replay file record check").

Affected products

Linux
  • <57382ec6ac63b63dce2789e835fded28b698ae79
  • <946046841013ebac8492ef49651c53638d7a9a6a
  • <f433acc85b86f327d03ba8b03a33c105c51053de
  • =<6.18.*
  • <5.15
  • <964c3fae1dfc49dde5468eace940f199cda234e9
  • =<6.12.*
  • <cf28fc1658463d768657cf1c27a83980d4ba7ef2
  • =<7.1.*
  • ==5.15
  • <3aa96956ca2200674e2a8f9c23ec6ecd45e5010f
  • =<6.1.*
  • =<6.6.*
  • =<*
  • =<5.15.*
  • <c6f9e804f73ef809529865fbc7256dd189ff8c33
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
staging: rtl8723bs: fix heap buffer overflow in rtw_cfg80211_set_wpa_ie()

In the Linux kernel, the following vulnerability has been resolved: staging: rtl8723bs: fix heap buffer overflow in rtw_cfg80211_set_wpa_ie() supplicant_ie is a 256-byte array in struct security_priv. The WPA and WPA2 IE copy paths use: memcpy(padapter->securitypriv.supplicant_ie, &pwpa[0], wpa_ielen + 2); where wpa_ielen is the raw IE length field (u8, 0-255). When a local user supplies a connect request via nl80211 with a crafted WPA IE of length 255, wpa_ielen + 2 equals 257, overflowing the 256-byte buffer by one byte into the adjacent last_mic_err_time field. rtw_parse_wpa_ie() does not prevent this: its length consistency check compares *(wpa_ie+1) against (u8)(wpa_ie_len-2), which is (u8)(255) == 255 when wpa_ie_len = 257, so the check passes silently. Add explicit bounds checks for both the WPA and WPA2 paths before the memcpy, rejecting any IE whose total size (wpa_ielen + 2) exceeds the supplicant_ie buffer.

Affected products

Linux
  • <138cd190efd56ab36c9fdd8fef8749d06937f24b
  • =<5.10.*
  • =<6.18.*
  • <a94a643a80a84ceb8139061c3d6bf988d75e45a5
  • <2131621986c62c86109ce4d84cf73a73757eb8a6
  • <5d7812360abf3143afcbf5efe4ef242448fa1f28
  • <b9c4bf133c3c47e23baf4f5403b98a953bf58606
  • =<6.12.*
  • <6f20d7b0ee47c470734a69379b0fc6647c519603
  • =<7.1.*
  • ==4.12
  • =<6.1.*
  • =<*
  • =<6.6.*
  • =<5.15.*
  • <46f66c16a95191d9aca07a72ae6b1252a244e26c
  • <4.12
  • <5a752a616e756844388a1a45404db9fc29fec655
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
s390: Revert support for DCACHE_WORD_ACCESS

In the Linux kernel, the following vulnerability has been resolved: s390: Revert support for DCACHE_WORD_ACCESS load_unaligned_zeropad() reads eight bytes from unaligned addresses and may cross page boundaries. It handles exceptions which may happen if reading from the second page results in an exception. For pages which are donated to the Ultravisor for secure execution purposes the do_secure_storage_access() exception handler however does not handle such exceptions correctly. Such an exception may result in an endless exception loop which will never be resolved. An attempt to fix this [1] turned out to be not sufficient. For now revert load_unaligned_zeropad() until this problem has been resolved in a proper way. Note that the implementation of load_unaligned_zeropad() itself is correct. The revert is just a temporary workaround until there is complete fix for secure storage access exceptions. [1] commit b00be77302d7 ("s390/mm: Add missing secure storage access fixups for donated memory")

Affected products

Linux
  • <c94806905e02cc8e17a69c822d93c41743b7ffc5
  • =<6.18.*
  • <be79d285bea70d0edd5015bd487311bfa8cbebc9
  • <37540b8c287fc817bdbd0c62bb75ad6eab0e5d03
  • =<6.12.*
  • <c9e0f1517631ac08987f8385817119bccf2f1f12
  • =<7.1.*
  • =<*
  • <6.7
  • ==6.7
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ksmbd: add a WRITE_DAC/WRITE_OWNER check to SMB2 SET_INFO SECURITY

In the Linux kernel, the following vulnerability has been resolved: ksmbd: add a WRITE_DAC/WRITE_OWNER check to SMB2 SET_INFO SECURITY commit cc57232cae23 ("ksmbd: fix FSCTL permission bypass by adding a permission check for FSCTL_SET_SPARSE") added a fp->daccess gate to fsctl_set_sparse and noted that "similar handle-level checks exist in other functions but are missing here." The SMB2 SET_INFO SECURITY arm is one of the missing ones, and the most security-relevant: smb2_set_info_sec() calls set_info_sec() with no per-handle access check. set_info_sec() (fs/smb/server/smbacl.c) re-permissions the file: it rewrites owner/group/mode via notify_change(), rewrites the POSIX ACL via set_posix_acl(), and on KSMBD_SHARE_FLAG_ACL_XATTR shares removes and rewrites the Windows security descriptor via ksmbd_vfs_set_sd_xattr(). Every other persistent-mutation arm of the sibling handler smb2_set_info_file() checks fp->daccess first (FILE_WRITE_DATA / FILE_DELETE / FILE_WRITE_EA / FILE_WRITE_ATTRIBUTES); the SECURITY arm — which mutates the access control itself — is the only one with no gate. A client can therefore open a handle with FILE_WRITE_ATTRIBUTES only (no FILE_WRITE_DAC / FILE_WRITE_OWNER) and use SMB2_SET_INFO with InfoType SMB2_O_INFO_SECURITY to rewrite the file's DACL and owner, granting itself access the handle's daccess never carried. Unlike the FSCTL data arms this is a metadata/xattr operation, so there is no FMODE_WRITE VFS backstop — the missing fp->daccess check is the entire gate. Setting a security descriptor is the WRITE_DAC / WRITE_OWNER operation, so require at least one of those on the handle before re-permissioning the file. -EACCES is mapped to STATUS_ACCESS_DENIED by smb2_set_info().

Affected products

Linux
  • <6.1.178
  • <44df157a1183a7f746caa970c169255da5ac61f8
  • =<6.18.*
  • <7.1.4
  • <6.12.96
  • =<6.12.*
  • <aae600cdaffc6d9ce97645f129799a103a97d06d
  • <6.6.145
  • =<7.1.*
  • <e6aa731f1b4b3e08caebf66a99f04b22bdab2e99
  • <9ab2ffd3ed3d4ca1667c52de27026ddabc11e537
  • <f56535db508ead8dec1c481ad93d7d8acd8f8f1e
  • <0848b1d8b403f530878195dcbe241a2fddb9d0e1
  • =<6.1.*
  • =<6.6.*
  • =<*
  • <6.18.39
Dismissed
(max. allowed matches exceeded)
created 11 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
mm: shrinker: fix NULL pointer dereference in debugfs

In the Linux kernel, the following vulnerability has been resolved: mm: shrinker: fix NULL pointer dereference in debugfs shrinker_debugfs_add() creates both "count" and "scan" debugfs files unconditionally. That assumes every shrinker implements both count_objects() and scan_objects(), which is not guaranteed. For example, the xen-backend shrinker sets count_objects() but leaves scan_objects() NULL, so writing to its scan file calls through a NULL function pointer and panics the kernel: BUG: kernel NULL pointer dereference, address: 0000000000000000 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. Call Trace: <TASK> shrinker_debugfs_scan_write+0x12e/0x270 full_proxy_write+0x5f/0x90 vfs_write+0xde/0x420 ? filp_flush+0x75/0x90 ? filp_close+0x1d/0x30 ? do_dup2+0xb8/0x120 ksys_write+0x68/0xf0 ? filp_flush+0x75/0x90 do_syscall_64+0xb3/0x5b0 entry_SYSCALL_64_after_hwframe+0x76/0x7e The count path has the same issue in principle if a shrinker omits count_objects(). To fix it, only create "count" and "scan" debugfs files when the corresponding callbacks are present.

Affected products

Linux
  • <6.0
  • =<6.18.*
  • <ebb45c2648b1f60715fd283700f651e05e431231
  • <b9beed2322f3538b0d2d53307062da4102b8d8d8
  • <e30453c61e185e914fde83c650e268067b140218
  • =<6.12.*
  • =<7.1.*
  • ==6.0
  • =<6.1.*
  • =<*
  • <09d2407985b8ce3e831f9d4310fe7ac06a6b3ae9
  • =<6.6.*
  • <006467ab932698612398f853344a7405164541f4
  • <36f8534f461222291a74156ab91f3ba9f09b6f93