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 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
net/sched: act_api: use RCU with deferred freeing for action lifecycle

In the Linux kernel, the following vulnerability has been resolved: net/sched: act_api: use RCU with deferred freeing for action lifecycle When NEWTFILTER and DELFILTER are run concurrently it is possible to create a race with an associated action. Let's illustrate with CPU0 running NEWTFILTER and CPU1 running DELFILTER: 0: mutex_lock() <-- holds the idr lock 0: rcu_read_lock() 0: p = idr_find(idr, index) <-- action p is valid (RCU protects IDR) 0: mutex_unlock() <-- releases the idr lock 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex held 1: idr_remove(idr, index) <-- Action removed from IDR 1: mutex_unlock() <-- mutex released allowing us to delete the action 1: tcf_action_cleanup(p); kfree(p) <-- Kfrees p immediately, no deferral 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- ouch, UAF p points to freed memory This patch fixes the race condition between NEWTFILTER and DELFILTER by adding struct rcu_head to tc_action used in the deferral and introducing a call_rcu() in the delete path to defer the final kfree(). Note: this is a revert of commit d7fb60b9cafb ("net_sched: get rid of tcfa_rcu") but also modernization/simplification to directly use kfree_rcu(). Let's illustrate the new restored code path: 0: rcu_read_lock() 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex held 1: idr_remove(idr, index) 1: mutex_unlock() 1: call_rcu(&p->tcfa_rcu, tcf_action_rcu_free) <-- defer kfree after grace period 0: p = idr_find(idr, index) 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- fails, refcnt already 0 1: rcu_read_unlock() <-- release so freeing can run after grace period After CPU1 calls idr_remove(), the object is no longer reachable through the IDR. CPU0's subsequent idr_find() will return NULL, and even if it still held a stale pointer, the immediate kfree() is now deferred until after the RCU grace period, so no UAF can occur.

Affected products

Linux
  • <1f1b98fea6b9ea30507d0f2fbff6750292d097e2
  • <8b136f18ac4b2ace5aaad3305b3f8a5d8165a009
  • ==4.14
  • <4.14
  • <5057e1aca011e51ef51498c940ef96f3d3e8a305
  • =<6.1.*
  • =<*
  • <18af5d2ef0c4f65787fd1280c8b23286b9f2a835
  • <98b2e40879abf0245be5a5b7af69e0f6ff524ac3
  • =<5.15.*
  • =<5.10.*
  • =<6.18.*
  • =<6.6.*
  • =<6.12.*
  • =<7.0.*
  • <91d105d2cbe002f9c7b43a6183adedc37e1da1f7
  • <b60e9391142e983fab2be53497aa8f71fdd09cd5
  • <5dd51e09020c65aa53cf128e5e3517cd53b3c113
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/amd/display: Clamp VBIOS HDMI retimer register count to array size

In the Linux kernel, the following vulnerability has been resolved: drm/amd/display: Clamp VBIOS HDMI retimer register count to array size [Why & How] The VBIOS integrated info tables (v1_11 and v2_1) contain HdmiRegNum and Hdmi6GRegNum fields that are used as loop bounds when copying retimer I2C register settings into fixed-size arrays (dp*_ext_hdmi_reg_settings[9] and dp*_ext_hdmi_6g_reg_settings[3]). These u8 fields are not validated before use, so a malformed VBIOS can specify values up to 255, causing an out-of-bounds heap write during driver probe. Clamp each register count to the destination array size using min_t() before the copy loops, in both get_integrated_info_v11() and get_integrated_info_v2_1(). (cherry picked from commit 5a7f0ef90195940c54b0f5bb85b87da55f038c69)

Affected products

Linux
  • <7.0.13
  • <029571d51140650783be4fb98fe7cb4754752086
  • =<*
  • =<6.12.*
  • <8aaa7e317fbd4beb9c6a9f77aa4cf52fae78b117
  • <fb0707ce00eef4e2d60c3020e1c0432739703e4a
  • =<6.1.*
  • <d6be8e59af412623e3d874be3a048406c0edfe60
  • =<6.6.*
  • <6.6.143
  • <5.15.210
  • <4d1c3c26c2ab1842e139e61983395d64bd2e518b
  • <6.1.176
  • <5f8b39452fb16f507c9e4d8b4a83ce27e893307c
  • <6.12.94
  • =<5.15.*
  • =<6.18.*
  • =<7.0.*
  • <3f32d52ec604c659725d865cf8cc6a17a33f9c6a
  • <6.18.36
Dismissed
(max. allowed matches exceeded)
Permalink CVE-2026-5796
4.3 MEDIUM
  • CVSS version (CVSS): 3.1
  • Attack Vector (AV): Network (N)
  • Attack Complexity (AC): Low (L)
  • Privileges Required (PR): Low (L)
  • User Interaction (UI): None (N)
  • Scope (S): Unchanged (U)
  • Confidentiality (C): Low (L)
  • Integrity (I): None (N)
  • Availability (A): None (N)
  • Modified Attack Vector (MAV): Network (N)
  • Modified Attack Complexity (MAC): Low (L)
  • Modified Privileges Required (MPR): Low (L)
  • Modified User Interaction (MUI): None (N)
  • Modified Confidentiality (MC): Low (L)
  • Modified Scope (MS): Unchanged (U)
  • Modified Integrity (MI): None (N)
  • Modified Availability (MA): None (N)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Incorrect Authorization in GitLab

GitLab has remediated an issue in GitLab CE/EE affecting all versions from 13.6 before 18.11.6, 19.0 before 19.0.3, and 19.1 before 19.1.1 that under certain conditions could have allowed an authenticated user with Reporter-level group permissions to view package metadata from projects with the Package Registry disabled due to incorrect authorization checks in the group packages feature.

Affected products

GitLab
  • <19.1.1
  • <19.0.3
  • <18.11.6
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
accel/ivpu: Add bounds checks for firmware log indices

In the Linux kernel, the following vulnerability has been resolved: accel/ivpu: Add bounds checks for firmware log indices Add validation that read and write indices in the firmware log buffer are within valid bounds (< data_size) before using them. If out-of-bounds indices are encountered (from firmware), clamp them to safe values instead of proceeding with invalid offsets. This prevents potential out-of-bounds buffer access when firmware supplies invalid log indices.

Affected products

Linux
  • ==6.13
  • <6.13
  • <8ec70c0dbdf04392a26e03e38798a373934177be
  • <6.12.94
  • =<*
  • <535da9ad8420c3b686a642403d4147ff220255fd
  • <5961c703414048f46818be8bbb11075a9a63fb4e
  • =<6.18.*
  • =<7.0.*
  • =<6.12.*
  • <dd1311bcf0e62f0c515115f46a3813370f4a4bb1
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
netfilter: nft_exthdr: fix register tracking for F_PRESENT flag

In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_exthdr: fix register tracking for F_PRESENT flag nft_exthdr_init() passes user-controlled priv->len to nft_parse_register_store(), which marks that many bytes in the register bitmap as initialized. However, when NFT_EXTHDR_F_PRESENT is set, the eval paths write only 1 byte (nft_reg_store8) or 4 bytes (*dest = 0 on TCP/DCCP error path). When len > 4, registers beyond the first are never written, retaining uninitialized stack data from nft_regs. Bail out if userspace requests too much data when F_PRESENT is set.

Affected products

Linux
  • <19748967d59c31d24d21d40b728570788310b237
  • <772cecf198da732faebb5dcfc46d66a505be8495
  • =<6.1.*
  • <4.11
  • =<*
  • <78069a6d8bc86c9e036eb82c2af4a19cc1871a53
  • <67b27434c43b68a97becda98c9f0c8cf6cba2134
  • =<5.15.*
  • =<5.10.*
  • ==4.11
  • =<6.18.*
  • <f08fb3d42fd3aad0b7a263da3ac3ebaf0845e265
  • =<6.6.*
  • =<6.12.*
  • <46fc15a044e9938e7ea77786fb37edd2cd74f031
  • =<7.0.*
  • <cd513e43b4b2bd1de39e2367bc4261c699a8652f
  • <8738b1b6d0e639ca1fc0f61516afd3557ac4ecc6
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ALSA: timer: Fix UAF at snd_timer_user_params()

In the Linux kernel, the following vulnerability has been resolved: ALSA: timer: Fix UAF at snd_timer_user_params() At releasing a timer object, e.g. when a userspace timer (CONFIG_SND_UTIMER) gets closed and snd_timer_free() is called, it tries to detach the timer instances and release the resources. However, it's still possible that other in-flight tasks are holding the timer instance where the to-be-deleted timer object is associated, and this may lead to racy accesses. Fortunately, most of ioctls dealing with the timer instance list already have the protection with register_mutex, and this also avoids such races. But, SNDRV_TIMER_IOCTL_PARAMS isn't protected, hence the concurrent ioctl may lead to use-after-free. This patch just adds the guard with register_mutex to protect snd_timer_user_params() for covering the code path as a quick workaround. It's no hot-path but rather a rarely issued ioctl, so the performance penalty doesn't matter.

Affected products

Linux
  • <7.0.13
  • =<*
  • <b2214914e461d0466548a52dfe4f4ee8ce362276
  • =<5.10.*
  • =<6.12.*
  • =<6.1.*
  • <e2331730175f74169046d2af8db1b47243df7c7a
  • <3d39da65b5c422c5e5afb7d5651b0698d060a827
  • <5.10.259
  • =<6.6.*
  • <053a401b592be424fea9d57c789f66cd5d8cec11
  • <38034d04d4a75bbca01df2b313ced0bcd0fa3242
  • <6.6.143
  • <117743d62e1225e208568a3ffc2c07214f1347cb
  • <5.15.210
  • <6.1.176
  • <92ad2d7f80cad43b046f093e808e11fe919d304a
  • <6.12.94
  • =<5.15.*
  • =<6.18.*
  • <306427adf9b97e29e5958cb9cf3096c6151fc9ff
  • =<7.0.*
  • <6.18.36
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: fix memory leak in error path of hci_alloc_dev()

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: fix memory leak in error path of hci_alloc_dev() Early failures in Bluetooth HCI UART configuration leak SRCU percpu memory. When device initialization fails before hci_register_dev() completes, the HCI_UNREGISTER flag is never set. As a result, when the device reference count reaches zero, bt_host_release() evaluates this flag as false and falls back to a direct kfree(hdev). Because hci_release_dev() is bypassed, the SRCU struct initialized early in hci_alloc_dev() is never cleaned up, resulting in a leak of percpu memory. Fix the leak by explicitly calling cleanup_srcu_struct() in the fallback (unregistered) branch of bt_host_release() before freeing the device.

Affected products

Linux
  • <ce4b4cac3c5749b6aa75e62e2991ae2263f2f889
  • =<*
  • =<6.12.*
  • <37b3009bf5976e8ab77c8b9a9bc3bbd7ff49e37f
  • ==6.16
  • <0622e527a31d4b44737fed5c1a2ac1fc2cfb5184
  • ==0e5c144c557df910ab64d9c25d06399a9a735e65
  • =<6.1.*
  • <6.16
  • =<6.6.*
  • <bc2efe73c194a74839d7cf57b63880d97e21d309
  • <5.11
  • <6.6.143
  • <5.15.210
  • <6.16
  • <6.1.176
  • <c016118b9e51eeaf5bc93850d4c455a3b583c0aa
  • ==dd4becd3fd4102696e1c15e6d260a1712a2d8685
  • <f82799407a50af7bcacacf09cc9b279af8fe9b81
  • <5b7dfca6f852e6b9d809fd0263b5427cc9fb33fd
  • <6.12.94
  • =<5.15.*
  • =<6.18.*
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
USB: serial: io_ti: fix heap overflow in get_manuf_info()

In the Linux kernel, the following vulnerability has been resolved: USB: serial: io_ti: fix heap overflow in get_manuf_info() get_manuf_info() reads le16_to_cpu(rom_desc->Size) bytes from the device I2C EEPROM into a buffer allocated with kmalloc_obj(), which is sizeof(struct edge_ti_manuf_descriptor) = 10 bytes. The Size field comes from the device and is only validated (in check_i2c_image()) to make sure the descriptor fits within TI_MAX_I2C_SIZE (16384 bytes), not against the destination buffer size. A malicious USB device can therefore set Size to any value up to 16377, causing a heap overflow of up to 16367 bytes when plugged into a host running this driver. valid_csum() is called after read_rom() and also iterates buffer[0..Size-1], compounding the out-of-bounds access. Fix by rejecting descriptors with unexpected length before calling read_rom(). [ johan: amend commit message; also check for short descriptors ]

Affected products

Linux
  • <b849f30d1a9e66aae6b715aaef66e427390cb081
  • <561edb021486e6723d841926aa4b48097da06190
  • =<6.1.*
  • <cfd634f6dfd40c49a84f9bddc2867a80e2e2623a
  • <d214d2341d4f9f447e36a7d012cdf6a6631a55f1
  • =<*
  • =<5.15.*
  • <f96cf7bf9fbf15d7fcf0c91fec47ba8a010369ea
  • =<5.10.*
  • =<6.18.*
  • =<7.0.*
  • <2.6.12
  • <d92f17af7097d10bdeddf26f66f34b354104b277
  • =<6.6.*
  • =<6.12.*
  • <e168db91442b94e64fa82a7dd297983d48ea5cc0
  • ==2.6.12
  • <183c1076eca43bbb3e7bdf597456f91d81c73e74
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
tee: shm: fix shm leak in register_shm_helper()

In the Linux kernel, the following vulnerability has been resolved: tee: shm: fix shm leak in register_shm_helper() register_shm_helper() allocates shm before calling iov_iter_npages(). If iov_iter_npages() returns 0, the function jumps to err_ctx_put and leaks shm. This can be triggered by TEE_IOC_SHM_REGISTER with struct tee_ioctl_shm_register_data where length is 0. Jump to err_free_shm instead.

Affected products

Linux
  • <26682f5efc276e3ad96d102019472bfbf03833b2
  • <c10c9c48b2903f41ed4c532043b0576e86228236
  • =<*
  • ==6.8
  • <6.8
  • =<6.18.*
  • <4277759906b44d923a38c8f59f5576501b187b0d
  • <dbf779db927414f5b37c1f666013e9b48a88cfde
  • =<6.12.*
  • =<7.0.*
Dismissed
(max. allowed matches exceeded)
created 2 months, 1 week ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ksmbd: fix NULL-deref of opinfo->conn in oplock/lease break notifiers

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix NULL-deref of opinfo->conn in oplock/lease break notifiers smb2_oplock_break_noti() and smb2_lease_break_noti() read opinfo->conn into a local with neither READ_ONCE() nor a NULL check. Both run from oplock_break() after opinfo_get_list() has dropped ci->m_lock, so a concurrent SMB2 LOGOFF (session_fd_check()) can set op->conn = NULL under ci->m_lock within that window. ksmbd_conn_r_count_inc(conn) then writes through NULL at offset 0xc4 -- a remotely triggerable oops. Guard both reads the way compare_guid_key() already does: read opinfo->conn with READ_ONCE() and return early if it is NULL, before allocating the work struct so nothing leaks. A NULL conn means the client is gone and the break is moot, so return 0; oplock_break() treats that as success and runs the normal teardown.

Affected products

Linux
  • <1ff58dcfcab434ebb51649da33774fbb8e1f7b67
  • <945a86b21b40fb17183f5b27461baa6f03e2467f
  • =<*
  • <6.9
  • <b003086d76968298f22e7cf62239833b5a3a06b1
  • <75e33deda658c1ab3a9336cbdb1436536f9b3660
  • ==6.9
  • =<6.18.*
  • =<6.6.*
  • <e735dbd489e3ea02be78dba991056fe1138be51e
  • =<6.12.*
  • =<7.0.*
  • <6.6.143