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, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
netfs: Fix barriering when walking subrequest list

In the Linux kernel, the following vulnerability has been resolved: netfs: Fix barriering when walking subrequest list Fix the barriering used when walking the subrequest list in retry as there's a possibility of seeing a subreq that's just been added by the application thread.

Affected products

Linux
  • ==6.10
  • =<*
  • <5c6ce05e406520290c1d89da97fb3cd70c09137d
  • =<7.1.*
  • <6.10
  • <be47c047250671c9225c0319ca4695be9b391c59
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ieee802154: fix kernel-infoleak in dgram_recvmsg()

In the Linux kernel, the following vulnerability has been resolved: ieee802154: fix kernel-infoleak in dgram_recvmsg() KMSAN reported a kernel-infoleak in move_addr_to_user(): BUG: KMSAN: kernel-infoleak in instrument_copy_to_user include/linux/instrumented.h:131 [inline] BUG: KMSAN: kernel-infoleak in _inline_copy_to_user include/linux/uaccess.h:205 [inline] BUG: KMSAN: kernel-infoleak in _copy_to_user+0xcc/0x120 lib/usercopy.c:26 instrument_copy_to_user include/linux/instrumented.h:131 [inline] _inline_copy_to_user include/linux/uaccess.h:205 [inline] _copy_to_user+0xcc/0x120 lib/usercopy.c:26 copy_to_user include/linux/uaccess.h:236 [inline] move_addr_to_user+0x2e7/0x440 net/socket.c:302 ____sys_recvmsg+0x232/0x610 net/socket.c:2925 ... Uninit was stored to memory at: ieee802154_addr_to_sa include/net/ieee802154_netdev.h:369 [inline] dgram_recvmsg+0xa09/0xbe0 net/ieee802154/socket.c:739 The issue occurs because the `pan_id` field of `struct ieee802154_addr` is left uninitialized when the address mode is `IEEE802154_ADDR_NONE`. The execution flow is as follows: 1. `__ieee802154_rx_handle_packet()` declares a local `struct ieee802154_hdr hdr` on the stack. 2. `ieee802154_hdr_pull()` calls `ieee802154_hdr_get_addr()` to parse the source and destination addresses into this structure. 3. If the address mode is `IEEE802154_ADDR_NONE`, `ieee802154_hdr_get_addr()` previously only set the `mode` field, leaving the `pan_id` field containing uninitialized stack memory. 4. This uninitialized `pan_id` is later copied into a `struct sockaddr_ieee802154` in `dgram_recvmsg()` via `ieee802154_addr_to_sa()`. 5. Finally, `move_addr_to_user()` copies the socket address structure to user space, leaking the uninitialized bytes. Fix this by using `memset` to zero out the address structure in `ieee802154_hdr_get_addr()` when the mode is `IEEE802154_ADDR_NONE`.

Affected products

Linux
  • <a2ee1a038a16e286d084bc293a7522d010a59ec3
  • =<5.10.*
  • <c88e687e44cb9c7690f5039a5a5941dba1f6a204
  • <09cfe665f2c5d7a8a5ed4d6b487434a011325368
  • <71b5add66c51d6764325de5f2e300bbf4f39e7a6
  • =<6.6.*
  • =<*
  • <f14802465f5956baafe5f4b4541eb626b06b41f1
  • ==3.15
  • <3.15
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • <fc8766467b53335220b4b594ba15bc8f8cee0c76
  • =<5.15.*
  • <de3bd9809af7555611334cb6a071806744430ef7
  • =<6.1.*
  • <4db86f8ab11b5a41bfc36680be837e6ac1375ec6
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
memstick: ms_block: reject a card that reports too many blocks

In the Linux kernel, the following vulnerability has been resolved: memstick: ms_block: reject a card that reports too many blocks msb_ftl_initialize() computes the zone count from the card block count with no bound: msb->zone_count = msb->block_count / MS_BLOCKS_IN_ZONE; ... for (i = 0; i < msb->zone_count; i++) msb->free_block_count[i] = MS_BLOCKS_IN_ZONE; msb->block_count is a card value. msb_read_boot_blocks() reads number_of_blocks from the card boot page and byte swaps it. free_block_count is a fixed int[MS_MAX_ZONES]. MS_MAX_ZONES is 16, so the valid indices are 0 to 15. The init loop above indexes it by zone_count. msb_mark_block_used() and msb_mark_block_unused() index it by pba / MS_BLOCKS_IN_ZONE, for pba up to block_count - 1. A card may report up to 65535 blocks. A block_count above 8192 (MS_MAX_ZONES * MS_BLOCKS_IN_ZONE) lets the pba index reach 16. That writes past free_block_count[] and corrupts struct msb_data. A larger count runs the init loop past the end too. A real Memory Stick has at most 16 zones. So it has at most 8192 blocks. msb_ftl_initialize() now rejects a card that reports more than MS_MAX_ZONES * MS_BLOCKS_IN_ZONE blocks.

Affected products

Linux
  • <47f0c7d856c67c9935546d2644f18c0d0131b449
  • <718178f524b98bc920d74bc771aed823c8b81425
  • <3.12
  • =<5.10.*
  • =<6.6.*
  • =<*
  • <f1c675ecf6e5ad02722f0019f729d8bb588d502e
  • <b86666ac4009a252501cc17242582a7ec9ed976e
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • <39151f0708c84221e94cdd6aa070aba5d7cb1c01
  • =<5.15.*
  • ==3.12
  • <a4b9961efe8640f50800811b4a2b2046b3dc2ccc
  • <8937b11f1c3896e066c3fb07387ba17bc8c50b8a
  • =<6.1.*
  • <d5db3439ee8d1c165a09a47e984c4ba508c130df
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control()

In the Linux kernel, the following vulnerability has been resolved: usb: host: max3421: Fix shift-out-of-bounds in max3421_hub_control() The `max3421_hub_control()` function handles USB hub class requests to the virtual root hub. In the `default` branches of both the `ClearPortFeature` and `SetPortFeature` switch statements, it modifies `max3421_hcd->port_status` by left shifting 1 by the request's `value` parameter. However, it does not validate whether this shift will exceed the width of `port_status`. So if a malicious userspace task with access to the root hub via /dev/bus/usb/.../001 issues a USBDEVFS_CONTROL ioctl with `wValue` greater than or equal to 32, the left shift operation invokes shift-out-of-bounds undefined behavior. This results in arbitrary bit corruption of `port_status`, including the normally-immutable change bits, which can bypass internal state checks and confuse the hub status. Fix this by rejecting requests whose `value` exceeds the shift width before performing the shift. This issue was found using a KLEE-based symbolic execution tool for kernel drivers that I'm currently developing.

Affected products

Linux
  • <08b1d4cab0230697bc74c63fc4e40170a7559c54
  • =<5.10.*
  • =<6.6.*
  • <cff06b03b530ae1fe8a13e93a7848f2130e00fb4
  • =<*
  • <00dd025324b56d39d37e57a08f473dab3a660f30
  • <3.16
  • <4da073d57176d8e1c2bca34febfbc81d2560c1a5
  • <d512bdefd241b98f4d7bcb5bab5614a86411fad4
  • <3be5f24e8270ba53b3c814d13689bb8644c86237
  • ==3.16
  • <02d03c61e8a7b016956acb48e8a2512d16d87517
  • =<6.12.*
  • =<6.18.*
  • =<5.15.*
  • <e5fa9d8f40746ec3447335c9642c03410f5fd3af
  • =<7.1.*
  • =<6.1.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: L2CAP: fix tx ident leak for commands without a response

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: fix tx ident leak for commands without a response Commit 6c3ea155e5ee ("Bluetooth: L2CAP: Fix not tracking outstanding TX ident") changed ident allocation to use an IDA, releasing idents in l2cap_put_ident() when the matching response command is received. But identifiers allocated for commands that have no response defined are never released. In particular L2CAP_LE_CREDITS is sent repeatedly for the lifetime of an LE CoC channel, so a peer streaming data to the host exhausts the 1-255 ident range after 254 credit packets. From then on l2cap_get_ident() fails: kernel: Bluetooth: Unable to allocate ident: -28 and every subsequent L2CAP_LE_CREDITS packet is sent with ident 0, which is invalid (Core Spec, Vol 3, Part A, Section 4: "Signaling identifier 0x00 is an invalid identifier and shall never be used in any command"). Remote stacks that validate the ident drop these commands, never receive new credits, and the channel stalls permanently. With default socket buffers this happens after roughly 0.5 MB of received data (the exact amount depends on the socket receive buffer): < ACL Data TX: Handle 2048 flags 0x00 dlen 12 LE L2CAP: LE Flow Control Credit (0x16) ident 0 len 4 Source CID: 64 Credits: 1 Release the ident immediately after sending L2CAP_LE_CREDITS since no response will ever release it. Use a local variable instead of chan->ident so that an ident that an EXT_FLOWCTL channel may be waiting on (e.g. a pending reconfigure) is not overwritten by a credit packet. Also add the missing L2CAP_LE_CONN_RSP case to l2cap_put_ident() so idents allocated for outgoing L2CAP_LE_CONN_REQ commands are released when the response arrives.

Affected products

Linux
  • <bd1e01170341291292fd4c46b5f6949da282ca6c
  • ==84bc3197f7d87c5b89c156e853d0561a9154eceb
  • <5.11
  • <b8a32a5fc915b024c60f18d51b6cffd2bd64d4a6
  • <6.20
  • =<*
  • <6e1930ece855a4c256f1c7e6632d634cfb9888b5
  • ==7.0
  • <7.0
  • ==8c1cdbc1bacc0cf9c27c3ebda11a81c3dcd01630
  • =<6.18.*
  • <0c602cb8f148a36bfb39c25ade400bdadc023c4f
  • <6.18.40
  • <5.16
  • =<7.1.*
  • ==ed97bb2cf96684ee646be6f37e4c4835f9d30caa
  • <d0a2b0c81f112540a337cde1c20251bf05ddf1da
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
platform/x86/intel/tpmi: use cleanup helpers in mem_write()

In the Linux kernel, the following vulnerability has been resolved: platform/x86/intel/tpmi: use cleanup helpers in mem_write() In mem_write(), the temporary array returned by parse_int_array_user() must be released on all exit paths. Convert the array variable to use cleanup.h scope-based cleanup so it is freed automatically on return. This also moves the array declaration next to parse_int_array_user() as required by cleanup.h usage guidelines.

Affected products

Linux
  • =<*
  • <7.1
  • <2137f21542900233a42bf00578817f9b8dfecadc
  • =<7.1.*
  • ==7.1
  • <a221557958e3a82d8565729d445a7385963f30b6
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
RDMA/bnxt_re: Free CQ toggle page after firmware teardown

In the Linux kernel, the following vulnerability has been resolved: RDMA/bnxt_re: Free CQ toggle page after firmware teardown Free the toggle page only after firmware teardown completes so that an NQ interrupt arriving during bnxt_qplib_destroy_cq() won't write the toggle value to an already-freed page. Move free_page() after bnxt_qplib_destroy_cq.

Affected products

Linux
  • ==6.8
  • <b193854675ecad43b4d69c304c1b6a90b206cc99
  • <6.8
  • =<*
  • <bb45e06f9914ca64ac95341a80a0c20bb8dd46a9
  • =<7.1.*
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
crypto: sun4i-ss - Remove insecure and unused rng_alg

In the Linux kernel, the following vulnerability has been resolved: crypto: sun4i-ss - Remove insecure and unused rng_alg Remove sun4i_ss_rng, as it is insecure and unused: - It has multiple vulnerabilities. sun4i_ss_prng_seed() is missing locking and has a buffer overflow. sun4i_ss_prng_generate() fails to fill the entire buffer with cryptographic random bytes, because it rounds the destination length down and also doesn't actually wait for the hardware to be ready before pulling bytes from it. - No user of this code is known. It's usable only theoretically via the "rng" algorithm type of AF_ALG. But userspace actually just uses the actual Linux RNG (/dev/random etc) instead. And rng_algs don't contribute entropy to the actual Linux RNG either. (This may have been confused with hwrng, which does contribute entropy.) The sun4i_ss_prng_seed() buffer overflow was reported by Tianchu Chen and discovered by Atuin - Automated Vulnerability Discovery Engine There's no point in fixing all these vulnerabilities individually when this is unused code, so let's just remove it.

Affected products

Linux
  • <c401492e01c7bfd38cf14c94d85c7efafe7d1a25
  • <4.14
  • <ee2458f8188732aa53a5d42f56e87bfad288b44e
  • <9c8086d9511189c34dfa3f9e3a03f2bee12f56a5
  • ==4.14
  • =<6.6.*
  • =<*
  • <2eafecaba1b46bb9774eaf3556619fd5b6a17c1c
  • <e4b7b9819811c4c51064c3d3d3c02f0be7491707
  • <b2c41fa9dd8fc740c489e060b199165771f268d1
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • =<5.15.*
  • =<6.1.*
  • <306ded31bfa00a69d25823a60d7c797170bfb4f8
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
Bluetooth: ISO: avoid deadlocks in iso_sock_timeout

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: ISO: avoid deadlocks in iso_sock_timeout iso_sock_timeout() takes lock_sock, so sync disabling the timer while holding that lock may deadlock. iso_sock_timeout() may also run concurrently with iso_conn_del(), which leads to UAF [Task 1] [Task hdev->workqueue] iso_sock_timeout iso_conn_del iso_conn_hold_unless_zero iso_chan_del `------------> iso_conn_put caller frees hcon iso_conn_put iso_conn_free conn->hcon->iso_data = NULL; /* UAF */ Fix the deadlock by removing the disable from the lock_sock sections. Move the timer from iso_conn to iso_pinfo to decouple it from iso_conn which may need to be freed in lock_sock section. Convert some of the clear_timer to disable_timer.

Affected products

Linux
  • <6.12.103
  • =<*
  • <200fa1629c57a3ca2b03d3ca63fd3a9bfd910c43
  • <6.12
  • <16d89a63e08280abeef7218970a3bbd7ca62b021
  • <3c3d5f85db80145636bb991a6005e2760012b985
  • ==6.13
  • <6.13
  • =<6.12.*
  • =<6.18.*
  • <82e982f54f962f72646868ddbb2c3bd9ea178568
  • =<7.1.*
  • ==f53e7489273dc2bb307bf50f319b3762d45534f0
Dismissed
(max. allowed matches exceeded)
created 3 weeks, 3 days ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/rockchip: dw_dp: Switch to drmm_kzalloc()

In the Linux kernel, the following vulnerability has been resolved: drm/rockchip: dw_dp: Switch to drmm_kzalloc() Driver makes use of drmm_encoder_init() to initialize the encoder and automatically handle the cleanup by registering drm_encoder_cleanup() with drmm_add_action(). However, the internal structure containing the encoder part gets allocated with devm_kzalloc(), which happens while component_bind_all() is being called from Rockchip DRM driver. The component framework further ensures it is deallocated as part of releasing all the resources claimed during bind, which is triggered from component_unbind_all(). When the reference to the DRM device gets eventually dropped via drm_dev_put() in rockchip_drm_unbind(), drmm_encoder_alloc_release() attempts to access the now released encoder structure, leading to use-after-free. Ensure driver's internal structure is still reachable on encoder cleanup by switching from a device-managed allocation to a drm-managed one.

Affected products

Linux
  • <0d60b835bca42f0f790689dd47819ed881a92ccc
  • <ed9da8d23020352ad24c528db09b5acdd78b81fd
  • <6b0b92d1110eccccbd5ba2949bd2b9fb6ea5fc12
  • <6.18
  • =<*
  • ==6.18
  • =<6.18.*
  • =<7.1.*