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 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
NFSv4: include MAY_WRITE in open permission mask for O_TRUNC

In the Linux kernel, the following vulnerability has been resolved: NFSv4: include MAY_WRITE in open permission mask for O_TRUNC POSIX requires write permission to truncate a file, so an open() that specifies O_TRUNC must be authorized for write access regardless of the O_ACCMODE access mode. nfs_open_permission_mask() builds the access mask passed to nfs_may_open(), which is the local authorization gate for OPENs the client serves itself from a cached write delegation via the can_open_delegated() path in nfs4_try_open_cached(). The mask is derived from O_ACCMODE alone, so an open(O_RDONLY | O_TRUNC) against a file the caller cannot write requests only MAY_READ and passes the local check. The OPEN is then satisfied locally and the truncation is issued to the server as a SETATTR(size=0) over the delegation stateid, which the server accepts under standard write-delegation semantics. POSIX requires that this open fail with EACCES. Include MAY_WRITE in the mask whenever O_TRUNC is set so the local check matches the access the server would have enforced.

Affected products

Linux
  • <4817c8974315b666e895b7d1bb83cd3664c323b1
  • <5140f099ecd8a2f2808b7f7b720ee1bad8468974
  • <a937e92c1d00534b5c2e3e9f4381b7e988180797
  • <30fdf4df6c3c00efec947e4ddf97f0fdd4473628
  • =<6.18.*
  • =<6.12.*
  • <6bd7d0a06b53c4e797e1a9cea0d2d41aa1b26230
  • <cb148a2762d644bff1894728e8835a9a4b84f9ea
  • =<7.1.*
  • <22c1fd1355ad4ca27aa7f0fa02719122dd92d9de
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <e36501b7d4abdcd6d69a7cb901b2f286b7a3d041
  • =<5.15.*
  • ==2.6.24
  • <2.6.24
  • =<5.10.*
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/hyperv: validate resolution_count and fix WIN8 fallback

In the Linux kernel, the following vulnerability has been resolved: drm/hyperv: validate resolution_count and fix WIN8 fallback A SYNTHVID_RESOLUTION_RESPONSE with resolution_count > 64 walks past the supported_resolution[SYNTHVID_MAX_RESOLUTION_COUNT] array in the parse loop. Bound resolution_count against the array size, folded into the existing zero-check. When the WIN10 resolution probe fails, the caller in hyperv_connect_vsp() left hv->screen_*_max / preferred_* unpopulated, which sets mode_config.max_width / max_height to 0 and makes drm_internal_framebuffer_create() reject every userspace framebuffer with -EINVAL. The pre-WIN10 branch had the same gap for preferred_width / preferred_height. Use a single post-probe fallback guarded by screen_width_max == 0 so both paths converge on the WIN8 defaults.

Affected products

Linux
  • <8a114b25b5521eae451b13bce98ae978624962e5
  • <5.14
  • =<6.18.*
  • <bc573752f3dac0d1ab8df7078c1851bc76717653
  • =<7.0.*
  • =<6.12.*
  • <96f7de3172d4aa878b7f87173b2b3507c350fcd6
  • <9c698b2c43c2667c34f5336bf46ad5786216ac2a
  • =<6.1.*
  • =<*
  • <1fb565b77b8f44afabb02de6310065f109d89e94
  • ==5.14
  • <a321c908f2eeea01539668eb270d074d9b88e490
  • =<5.15.*
  • <13d33b9ef67066c77c84273fac5a1d3fde3533d1
  • =<6.6.*
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
iio: adc: ti-ads1119: fix PM reference leak in buffer preenable

In the Linux kernel, the following vulnerability has been resolved: iio: adc: ti-ads1119: fix PM reference leak in buffer preenable ads1119_triggered_buffer_preenable() resumes the device with pm_runtime_resume_and_get() before starting a conversion. If i2c_smbus_write_byte() fails, the function returns the error directly and leaves the runtime PM usage counter elevated. The matching postdisable callback is not called when preenable fails, so the reference is leaked and the device may remain runtime-active indefinitely. Store the I2C transfer result in ret and drop the runtime PM reference on failure before returning the error.

Affected products

Linux
  • <f40292fb19399a3c3f82de698023ba87c01e66cf
  • ==6.11
  • =<6.18.*
  • =<6.12.*
  • =<7.1.*
  • <6537f08100189d12bec4975000244e6ac4873c28
  • <6.11
  • =<*
  • <adf4bc07f814da8329278d32600147f5a150938c
  • <ffb2195921c3d629194b9807de589578df9f9cb8
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
pinctrl: meson: amlogic-a4: fix deadlock issue

In the Linux kernel, the following vulnerability has been resolved: pinctrl: meson: amlogic-a4: fix deadlock issue Accessing the pinconf-pins sysfs node may deadlock. pinconf_pins_show() holds pctldev->mutex, and the platform driver calls pinctrl_find_gpio_range_from_pin(), which tries to acquire the same mutex again, leading to a deadlock. Use pinctrl_find_gpio_range_from_pin_nolock() to fix this issue.

Affected products

Linux
  • <6.15
  • =<6.18.*
  • =<7.0.*
  • ==6.15
  • <e917713f013423069782ff554935c7a5d4266783
  • <e72ce029810390eb987a036fb2c8a5da9a23b685
  • =<*
  • <744ac926c0e55267a10b49b5b72582afef4ad49f
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
fuse-uring: fix moving cancelled entry to ent_in_userspace list

In the Linux kernel, the following vulnerability has been resolved: fuse-uring: fix moving cancelled entry to ent_in_userspace list fuse_uring_cancel() moves entries that are available (these have no reqs attached) to the ent_in_userspace list. ent_list_request_expired() checks the first entry on ent_in_userspace and dereferences ent->fuse_req unconditionally, which will crash on a cancelled entry that was moved to this list. Fix this by freeing the entry and dropping queue_refs directly in fuse_uring_cancel(). This is safe because cancel is the cancel handler itself - after io_uring_cmd_done(), no more cancels will be dispatched for this command, and teardown serializes with cancel via queue->lock. Since cancel now decrements queue_refs, fuse_uring_abort() must no longer gate fuse_uring_abort_end_requests() on queue_refs > 0, as cancelled entries may have already dropped queue_refs while requests are still queued. Remove the gate so abort always flushes requests and stops queues.

Affected products

Linux
  • =<6.18.*
  • ==6.16
  • =<7.1.*
  • <50f3e03db823cabc41fe35c27d77c2bdb112baad
  • <198f45eeb9f78b2a2d6d8be95e4e43468eb2c6bc
  • =<*
  • <6.16
  • <e8afc85acdf329361b2d8df2ad9b52364686235f
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
RDMA/rtrs-srv: Bound RDMA-Write length to chunk size in rdma_write_sg

In the Linux kernel, the following vulnerability has been resolved: RDMA/rtrs-srv: Bound RDMA-Write length to chunk size in rdma_write_sg When the server answers an RTRS READ, rdma_write_sg() builds the source scatter/gather entry for the IB_WR_RDMA_WRITE that returns data to the peer. Its length is taken directly from the wire descriptor: plist->length = le32_to_cpu(id->rd_msg->desc[0].len); rd_msg points into the chunk buffer that the remote peer filled via RDMA-WRITE-WITH-IMM (rtrs_srv_rdma_done() -> process_io_req() -> process_read()), so desc[0].len is attacker-controlled and, before this change, was only rejected when zero. The source address is the fixed chunk start (dma_addr[msg_id]) and the source lkey is the PD-wide local_dma_lkey, which is not tied to the chunk's MR mapping, so the verbs layer does not constrain the transfer length to max_chunk_size. msg_id and off are bounded against queue_depth and max_chunk_size in rtrs_srv_rdma_done(), but desc[0].len is a separate field that was not checked against the chunk size. A peer that advertises desc[0].len larger than max_chunk_size can make the posted RDMA write read past the chunk's mapped region. The resulting behaviour depends on the IOMMU configuration: with no IOMMU or in passthrough mode the read may extend into memory adjacent to the chunk and be returned to the peer, which can disclose host memory; with a translating IOMMU the out-of-range access is expected to fault and abort the connection. In either case the transfer exceeds what the protocol permits and is driven by a remote peer. Reject a descriptor length above max_chunk_size, mirroring the existing off >= max_chunk_size bound in rtrs_srv_rdma_done(). Legitimate clients do not exceed it: the client sets desc[0].len to its MR length, which is capped at the negotiated max_io_size (max_chunk_size - MAX_HDR_SIZE).

Affected products

Linux
  • <963af8d97a8c6a117134a8d0db1415e0489200b1
  • <6f40246f4312fdbab5a13cc440adebf95eb2aa66
  • <6cada540150894e81042a0ae0c796a21a9a877da
  • =<6.18.*
  • =<5.15.*
  • =<6.12.*
  • <2912f3d40355dabc08fdbaaf2764d02445fe88dc
  • =<7.1.*
  • <5a45d0aa1fa50a333ce5763ade744e2d89838667
  • =<6.1.*
  • ==5.8
  • <5.8
  • =<6.6.*
  • =<*
  • <68c09762172f6224e9ddf9b0a60bacbb36e443eb
  • <da3e44add94b05dfde56f898421922f5cf35705f
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
iio: chemical: scd30: Cleanup initializations and fix sign-extension bug

In the Linux kernel, the following vulnerability has been resolved: iio: chemical: scd30: Cleanup initializations and fix sign-extension bug Include linux/bitfield.h for FIELD_GET(). Create new macros for bit manipulation in combination with manual bit manipulation being replaced with FIELD_GET(). The current variable declaration and initializations are barely readable and use comma separations across multiple lines. Refactor the initializations so that mantissa and exp have separate declarations and sign gets initialized later. In addition (and due to the nature of the cleanup), fix a sign-extension bug where, float32 would get bitwise anded with ~BIT(31) (which is 0xFFFFFFFF7FFFFFFF) which corrupted the exponent.

Affected products

Linux
  • <82accdd57404399eddf3d56fd9beda7c61307388
  • <d49ff54b2784aa56a7c97982de713604de89d23a
  • <8d4a46e971cf846bda98b20d4cabfa21c1276e5f
  • =<6.18.*
  • <1821bcacd8ac5b214c53be16cbb8172bf193f0b6
  • ==5.9
  • <40bb0fdb37f441c9c9f52bf58bbd8a0ca3cc9598
  • =<6.12.*
  • <5.9
  • =<7.1.*
  • =<6.1.*
  • =<*
  • =<6.6.*
  • <0ccff849bde90973e6c13a666f6ceab5c55b30d4
  • =<5.15.*
  • <60d877910a43c305b5165131b258a17b1d772d57
  • =<5.10.*
  • <b131f0011dfef72350f4e3f11df94dc3e6b46065
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
drm/hyperv: validate VMBus packet size in receive callback

In the Linux kernel, the following vulnerability has been resolved: drm/hyperv: validate VMBus packet size in receive callback hyperv_receive_sub() reads msg->vid_hdr.type and dispatches into one of four message-type branches without knowing how many bytes the host wrote into hv->recv_buf. The completion path then runs memcpy(hv->init_buf, msg, VMBUS_MAX_PACKET_SIZE), so the consumer that wakes on wait_for_completion_timeout() can read up to 16 KiB of residue from a prior message as if it were the response payload. Pass bytes_recvd into hyperv_receive_sub() and reject any packet that does not cover the pipe + synthvid header. A single switch on msg->vid_hdr.type then computes the type-specific payload size: the three completion-driving types (SYNTHVID_VERSION_RESPONSE, SYNTHVID_RESOLUTION_RESPONSE, SYNTHVID_VRAM_LOCATION_ACK) fall through to a shared exit that requires that size before memcpy/complete, while SYNTHVID_FEATURE_CHANGE validates its own payload and returns before reading is_dirt_needed. Unknown types are dropped. SYNTHVID_RESOLUTION_RESPONSE is variable length: the host fills resolution_count entries, not the full SYNTHVID_MAX_RESOLUTION_COUNT array. Validate the fixed prefix first so resolution_count can be read, bound it against the array, then require only the count-sized array, so the shorter responses the host actually sends are accepted. Only run the sub-handler when vmbus_recvpacket() returned success. The memcpy length is bytes_recvd, which is bounded by VMBUS_MAX_PACKET_SIZE only on a successful receive; on -ENOBUFS vmbus_recvpacket() instead reports the required length, which can exceed hv->recv_buf, so copying bytes_recvd would read and write past the 16 KiB buffers. Gating on the success return keeps the copy bounded. The nonzero-return path is itself a malformed-message case and is now logged rather than silently skipped; channel recovery is not attempted. Rejected packets are reported via drm_err_ratelimited() rather than silently dropped, matching the CoCo-hardened pattern in hv_kvp_onchannelcallback().

Affected products

Linux
  • <588c84b461393ff1998ac7b97b04f953f642e0df
  • <049a6b474823049fe60212f25f26e4b30f44ee8f
  • <5.14
  • =<6.18.*
  • <7f87763f47a3c22fb50265a00619ef10f2394b18
  • <57d5d697642e05d5dd2d40660817765943dd709f
  • =<7.0.*
  • =<6.12.*
  • <f5251226551bfec98c4705641b6f94ff1f238d91
  • =<6.1.*
  • ==5.14
  • =<6.6.*
  • =<*
  • =<5.15.*
  • <164dc7bf17609340233c6bf4f66bb7c7008a0511
  • <c8974d96b6a5496f33dc69a3ce28a7bf5078def4
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
ALSA: seq: Fix uninitialised heap leak in snd_seq_event_dup()

In the Linux kernel, the following vulnerability has been resolved: ALSA: seq: Fix uninitialised heap leak in snd_seq_event_dup() snd_seq_event_dup() copies an incoming event into a pool cell and, in the UMP-enabled build, clears the trailing cell->ump.raw.extra word that the memcpy() did not cover. The guard deciding whether to clear it compares the copied size against sizeof(cell->event): memcpy(&cell->ump, event, size); if (size < sizeof(cell->event)) cell->ump.raw.extra = 0; For a legacy (non-UMP) event, size == sizeof(struct snd_seq_event) == sizeof(cell->event), so the condition is false and the extra word keeps stale data. The cell pool is allocated with kvmalloc() (not zeroed) and cells are reused via a free list, so that word holds uninitialised heap or leftover event data. When such a cell is delivered to a UMP client (client->midi_version > 0) that set SNDRV_SEQ_FILTER_NO_CONVERT -- so the legacy event reaches it unconverted -- snd_seq_read() reads it out as the larger struct snd_seq_ump_event and copies the stale word to user space, a 4-byte kernel heap infoleak to an unprivileged /dev/snd/seq client. Compare against sizeof(cell->ump) instead, so the trailing word is zeroed for every event shorter than the UMP cell.

Affected products

Linux
  • <435990e25bf1f4af3e6df12a6fbfd1f7ba4a97d4
  • =<6.18.*
  • <a224c84e5d3d35708c082c84ad12d81d90762195
  • <6ded42615fa1f4949925afd0a8a9e1ab3bf96202
  • <fb1aa5082847b98f44f9c6272aee9d0dca9244f0
  • <ea672a9f6cc38f06fe69dd2c257ef8a3d4db179a
  • =<6.12.*
  • <651ba82fe2a144bc7356d940bfd235c3810b0549
  • =<7.1.*
  • =<*
  • =<6.6.*
  • ==6.5
  • <d7649aa11089a93ea2285c210397aa67e5800766
  • <6.5
Dismissed
(max. allowed matches exceeded)
created 5 hours ago Activity log
  • Created & dismissed (max. allowed matches exceeded) suggestion
usb: typec: tcpm: Validate SVID index in svdm_consume_modes()

In the Linux kernel, the following vulnerability has been resolved: usb: typec: tcpm: Validate SVID index in svdm_consume_modes() In svdm_consume_modes(), the SVID value is read from pmdata->svids using pmdata->svid_index as an array index without bounds validation: paltmode->svid = pmdata->svids[pmdata->svid_index]; If pmdata->svid_index is driven beyond SVID_DISCOVERY_MAX (16), it results in an out-of-bounds read of the pmdata->svids array. Because pd_mode_data is embedded inside struct tcpm_port, indexing past svids reads into adjacent fields. In particular: - At index 16, it reads the altmodes count. - At index 18 and beyond, it reads into altmode_desc[], which contains partner-supplied SVDM Discovery Modes VDOs. By injecting a chosen SVID into altmode_desc[0].vdo and driving svid_index to 20, the partner can force paltmode->svid to be loaded with an arbitrary, partner- chosen SVID, which is then registered via typec_partner_register_altmode(). Fix this by validating that pmdata->svid_index is non-negative and strictly less than pmdata->nsvids before accessing the pmdata->svids array inside svdm_consume_modes().

Affected products

Linux
  • <f8163c414de8640f2ca82ce4dc93409d4cdc2fad
  • <313ca06e7e224ca1dfadd5722fe71fb8bc276b8b
  • <d638ec188e95fe60f4b01106ffd41958f8fb3c2c
  • <7b681dd5fbf60b24a13c14661e5b7735759fb491
  • <3e1b1ac47e8163627f159f30d80d51b914620dd4
  • =<6.18.*
  • <89ff289cbf5d3b659a2babc5ccaae4eaf7e7cf53
  • <4.19
  • =<6.12.*
  • =<7.1.*
  • =<6.1.*
  • <012406f89abc52d1d5f07aa5653b519ebf6d2407
  • =<6.6.*
  • =<*
  • =<5.15.*
  • <c6d2af3b217a525741c472f0ab45d7d274b8468f
  • ==4.19
  • =<5.10.*