Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

suse-cvrf логотип

SUSE-SU-2026:4667-1

Опубликовано: 14 окт. 2026
Источник: suse-cvrf

Описание

Security update for the Linux Kernel

The SUSE Linux Enterprise 15 SP5 kernel was updated to fix various security issues:

The following security issues were fixed:

  • CVE-2022-50645: EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper() (bsc#1254633).
  • CVE-2025-39964: kernel: crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg (bsc#1251966).
  • CVE-2025-40022: kernel: crypto: af_alg - Fix incorrect boolean values in af_alg_ctx (bsc#1252682).
  • CVE-2026-43502: net/rds: handle zerocopy send cleanup before the message is queued (bsc#1266008).
  • CVE-2026-53266: netfilter: bridge: make ebt_snat ARP rewrite writable (bsc#1269136).
  • CVE-2026-53400: i2c: core: fix adapter registration race (bsc#1271906).
  • CVE-2026-64279: i2c: core: fix adapter deregistration race (bsc#1273953).
  • CVE-2026-64319: nvmet-auth: fix return value check in auth send (bsc#1273339).
  • CVE-2026-64422: net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes (bsc#1273290).
  • CVE-2026-64556: perf/core: Detach event groups during remove_on_exec (bsc#1273251).
  • CVE-2026-64580: xfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst() (bsc#1274037).
  • CVE-2026-68155: libceph: Reject monmaps advertising zero monitors (bsc#1275304).
  • CVE-2026-68158: libceph: Fix multiplication overflow in decode_new_up_state_weight() (bsc#1275307).
  • CVE-2026-68159: libceph: bound pg_{temp,upmap,upmap_items} length to CEPH_PG_MAX_SIZE (bsc#1275470).
  • CVE-2026-68376: sctp: fix auth_hmacs array size in struct sctp_cookie (bsc#1274836).
  • CVE-2026-68445: drm/vc4: Prevent shader BO mappings from becoming writable (bsc#1276277).
  • CVE-2026-68451: s390/zcrypt: Validate length for CCA ECC private key requests (bsc#1276287).
  • CVE-2026-68452: s390/zcrypt: Validate length for CCA AES cipher key requests (bsc#1276295).
  • CVE-2026-68454: KVM: s390: pci: Fix handling of AIF enable without AISB (bsc#1276388).
  • CVE-2026-72051: net: ip6_tunnel: require CAP_NET_ADMIN in the device netns for changelink (bsc#1276801).
  • CVE-2026-72052: net: ip6_gre: require CAP_NET_ADMIN in the device netns for changelink (bsc#1276803).
  • CVE-2026-72053: net: ipip: require CAP_NET_ADMIN in the device netns for changelink (bsc#1276814).
  • CVE-2026-72054: net: ip_vti: require CAP_NET_ADMIN in the device netns for changelink (bsc#1276818).
  • CVE-2026-72055: net: ip6_vti: require CAP_NET_ADMIN in the device netns for changelink (bsc#1276821).
  • CVE-2026-72061: net: sit: require CAP_NET_ADMIN in the device netns for changelink (bsc#1277249).
  • CVE-2026-72066: cpu: hotplug: Bound hotplug states sysfs output (bsc#1277149).
  • CVE-2026-72083: scsi: target: core: Fix iSCSI ISID use-after-free in REGISTER AND MOVE (bsc#1275535).
  • CVE-2026-72084: scsi: target: core: Generate correct identifiers for PR OUT transport IDs (bsc#1275540).
  • CVE-2026-72098: dm-verity: fix buffer overflow in FEC calculation (bsc#1275543).
  • CVE-2026-72129: nvmet-rdma: handle inline data with a nonzero offset (bsc#1275545).
  • CVE-2026-72136: xfrm: xfrm_interface: require CAP_NET_ADMIN in the device netns for changelink (bsc#1277574).
  • CVE-2026-72157: net: thunderbolt: Fix frags[] overflow by bounding frame_count (bsc#1277544).
  • CVE-2026-72164: ocfs2: avoid moving extents to occupied clusters (bsc#1277553).
  • CVE-2026-72322: ipv6: mcast: Fix potential UAF in MLD delayed work (bsc#1275972).
  • CVE-2026-72323: ipv4: igmp: Fix potential UAF in igmp_gq_start_timer() (bsc#1275985).
  • CVE-2026-72339: qede: fix off-by-one in BD ring consumption on build_skb failure (bsc#1276006).
  • CVE-2026-72348: netfilter: ip6tables: mark malformed IPv6 extension headers for hotdrop (bsc#1276007).
  • CVE-2026-72351: gue: validate REMCSUM private option length (bsc#1276009).
  • CVE-2026-72383: sctp: fix addr_wq_timer race in sctp_free_addr_wq() (bsc#1277857).
  • CVE-2026-72398: sctp: fix association labeling in the duplicate COOKIE-ECHO case (bsc#1276381).
  • CVE-2026-72434: netfilter: ipset: make sure gc is properly stopped (bsc#1278054).
  • CVE-2026-72449: drm/amdkfd: fix list_del corruption in kfd_criu_resume_svm (bsc#1278108).
  • CVE-2026-74267: net/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen (bsc#1276519).
  • CVE-2026-74283: tipc: require net admin for TIPCv2 netlink mutators (bsc#1276475).
  • CVE-2026-74330: configfs: fix lockless traversals of ->s_children (bsc#1277129).
  • CVE-2026-74388: ALSA: seq: oss: Fix UAF at handling events with embedded SysEx data (bsc#1278253).
  • CVE-2026-74398: ipv6: addrconf: bail out of dad_failure when state is no longer POSTDAD (bsc#1277410).
  • CVE-2026-74406: vxlan: Fix potential null-ptr-deref in vxlan_gro_prepare_receive() (bsc#1276395).
  • CVE-2026-74443: drm/vmwgfx: bound DMA command body size against suffix pointer (bsc#1278210).
  • CVE-2026-74444: drm/vmwgfx: validate DRAW_PRIMITIVES header size before division (bsc#1278211).
  • CVE-2026-74453: drm/vc4: Zero the tile state data array before each BIN job (bsc#1278178).
  • CVE-2026-74469: sctp: prevent peer transport count overflow (bsc#1277792).
  • CVE-2026-74473: vxlan: use pskb_network_may_pull() in route_shortcircuit() (bsc#1276340).
  • CVE-2026-74479: net: pktgen: fix proc entry use-after-free (bsc#1276354).
  • CVE-2026-74480: net: bridge: stop fast-leave after deleting a port group (bsc#1276353).
  • CVE-2026-74492: netfilter: ipset: do not update comments from kernel-side hash adds (bsc#1276337).
  • CVE-2026-74493: net/smc: fix socket use-after-free during link group termination (bsc#1276338).
  • CVE-2026-74540: Bluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp (bsc#1275681).
  • CVE-2026-74556: scsi: libiscsi_tcp: Bound SCSI Response data segment to the connection buffer (bsc#1275696).
  • CVE-2026-74586: sctp: clear new_transport when removing a peer (bsc#1277820).
  • CVE-2026-74588: sctp: keep chunk->transport in step with the list it is queued on (bsc#1277766).
  • CVE-2026-74589: bpf, sockmap: Fix sk_redir use-after-free in send verdict (bsc#1277904).
  • CVE-2026-74597: ip6_tunnel: clear skb2->cb in ip6ip6_err() (bsc#1277493).
  • CVE-2026-74609: tipc: read le->link under the node lock in tipc_node_link_down() (bsc#1277906).
  • CVE-2026-74615: vxlan: do not arm the ageing timer on a device that is down (bsc#1277901).
  • CVE-2026-74616: xdp: reject clones that overrun skb_shared_info tailroom (bsc#1277813).
  • CVE-2026-74630: ipv6: prevent in6_dev_get() from resurrecting inet6_dev (bsc#1278191).
  • CVE-2026-74688: sctp: clear control chunk transport if it is being removed (bsc#1277489).
  • CVE-2026-74700: net/sched: cls_api: Always acquire rtnl_lock when destroying locked classifiers (bsc#1277626).
  • CVE-2026-74719: net/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler() (bsc#1276572).
  • CVE-2026-74737: net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG (bsc#1277898).
  • CVE-2026-74743: macvlan: inherit needed_headroom and needed_tailroom from lowerdev (bsc#1277908).
  • CVE-2026-74744: ipvlan: inherit needed_headroom and needed_tailroom from phy_dev (bsc#1278094).
  • CVE-2026-74752: sctp: validate cookie AUTH state before use (bsc#1278315).
  • CVE-2026-80540: drm/amdgpu: Fix UVD decode image min size calculation (bsc#1277590).
  • CVE-2026-80580: fbdev: bound mode sysfs output to the sysfs buffer (bsc#1278294).
  • CVE-2026-80714: ipvs: do not propagate one-packet flag to synced conns (bsc#1277561).
  • CVE-2026-80716: ALSA: pcm: wake linked drain waiters on unlink (bsc#1277837).
  • CVE-2026-80737: serial: amba-pl011: synchronize DMA teardown (bsc#1279487).
  • CVE-2026-80785: fbdev: serialize mode sysfs access with lock_fb_info() (bsc#1279619).
  • CVE-2026-80789: nvmet-tcp: bound SGL data length before allocating command buffers (bsc#1279621).
  • CVE-2026-80840: ipv6: seg6: clear IPv4 control block on IPIP decapsulation (bsc#1279875).
  • CVE-2026-80841: net/packet: defer vmalloc TX_RING free until skbs finish (bsc#1279835).
  • CVE-2026-80844: xfrm: ah6: validate routing header segments_left (bsc#1279786).
  • CVE-2026-80852: tls: device: fix out-of-bounds write in tls_append_frag() (bsc#1279532).
  • CVE-2026-80909: drm/amdgpu: Reject UVD message with invalid number of h265 refs (bsc#1279422).
  • CVE-2026-81000: net: tun: bound receive headroom (bsc#1280263).
  • CVE-2026-89479: sctp: stop processing a packet once its association is deleted (bsc#1280786).
  • CVE-2026-89482: nvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone (bsc#1280350).
  • CVE-2026-89532: svcrdma: Fix pcl_for_each_segment for empty chunks (bsc#1280985).
  • CVE-2026-89533: svcrdma: Fix offset arithmetic in read_chunk_range (bsc#1280993).
  • CVE-2026-89544: SUNRPC: fix gssx_dec_option_array error path bugs (bsc#1280758).
  • CVE-2026-89551: SUNRPC: xdr_buf_trim: clamp buf->len to avoid underflow (bsc#1280727).
  • CVE-2026-89569: Bluetooth: RFCOMM: serialize security confirmation handling (bsc#1280733).
  • CVE-2026-89603: entry: Fix seccomp bypass after ptrace with TSYNC (bsc#1280923).
  • CVE-2026-89631: smb: client: reject a tree connect response whose byte count is too small (bsc#1280496).
  • CVE-2026-89636: smb: client: clear ce->tgthint in free_tgts() (bsc#1281042).
  • CVE-2026-89638: smb: client: clear setuid/setgid bit on write with cifsacl/modefromsid/posix extensions (bsc#1281046).
  • CVE-2026-89674: nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget (bsc#1280243).
  • CVE-2026-89932: KVM: nVMX: Always flush vpid02 on first use (bsc#1281360).
  • CVE-2026-89968: nvmet-tcp: reject unsolicited H2CData PDUs (bsc#1281229).
  • CVE-2026-90003: futex: Prevent rcuwait use-after-free during requeue PI (bsc#1281295).
  • CVE-2026-90104: NFSv4.1: zero referring call lists before decoding (bsc#1281546).
  • CVE-2026-90198: ALSA: core: Fix use-after-free in snd_card_do_free() (bsc#1281818).
  • CVE-2026-90413: IB/isert: reject login PDUs declaring more data than was received (bsc#1282113).
  • CVE-2026-90414: IB/isert: reject PDUs declaring more data than (bsc#1282110).
  • CVE-2026-93104: RDMA/rvt: Return NULL after port allocation failure (bsc#1282284).
  • CVE-2026-93782: vhost-scsi: flush backend after device ioctls (bsc#1282906).
  • CVE-2026-93787: smb: client: bound dirent name against end of SMB response in cifs_filldir (bsc#1282932).
  • CVE-2026-100075: RDMA/srpt: Fix srpt_alloc_rw_ctxs() unwind counters (bsc#1282881).

The following non security issues were fixed:

  • default_gfp(): avoid using the 'newfangled' VA_OPT trick (bsc#1280139).
  • fbdev/sysfs: Fix locking (jsc#PED-1166 jsc#PED-1168 jsc#PED-1170 jsc#PED-1218 jsc#PED-1220 jsc#PED-1222 jsc#PED-1223 jsc#PED-1225).
  • i2c: core: fix irq domain leak on adapter registration failure (git-fixes).
  • kernel-binary.spec.in: Fix syntax error.
  • net: mana: Cap MSI-X vectors to the device MSI-X table size (bsc#1277254).
  • net: mana: Clear RDMA teardown and suspend state in mana_rdma_probe() (git-fixes).
  • net: mana: Fall back to scattered pages for GDMA queues (bsc#1281085).
  • net: mana: Reserve extra CQ slot for the fence completion CQE (git-fixes).
  • perf: Reject exited events as group leaders (git-fixes).
  • slab: Introduce kmalloc_obj() and family (bsc#1280139).
  • slab: recognize @GFP parameter as optional in kernel-doc (bsc#1280139).
  • smb: client: fix data/file corruption on reconnects (bsc#1253005).
  • smb: client: fix stuck kworkers on reconnects during writes (bsc#1253005).

Список пакетов

Container suse/sle-micro/base-5.5:latest
kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest
kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS
cluster-md-kmp-default-5.14.21-150500.55.192.2
dlm-kmp-default-5.14.21-150500.55.192.2
gfs2-kmp-default-5.14.21-150500.55.192.2
kernel-64kb-5.14.21-150500.55.192.2
kernel-64kb-devel-5.14.21-150500.55.192.2
kernel-default-5.14.21-150500.55.192.2
kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
kernel-default-devel-5.14.21-150500.55.192.2
kernel-devel-5.14.21-150500.55.192.2
kernel-docs-5.14.21-150500.55.192.1
kernel-macros-5.14.21-150500.55.192.2
kernel-obs-build-5.14.21-150500.55.192.2
kernel-source-5.14.21-150500.55.192.2
kernel-syms-5.14.21-150500.55.192.1
ocfs2-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS
cluster-md-kmp-default-5.14.21-150500.55.192.2
dlm-kmp-default-5.14.21-150500.55.192.2
gfs2-kmp-default-5.14.21-150500.55.192.2
kernel-64kb-5.14.21-150500.55.192.2
kernel-64kb-devel-5.14.21-150500.55.192.2
kernel-default-5.14.21-150500.55.192.2
kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
kernel-default-devel-5.14.21-150500.55.192.2
kernel-devel-5.14.21-150500.55.192.2
kernel-docs-5.14.21-150500.55.192.1
kernel-macros-5.14.21-150500.55.192.2
kernel-obs-build-5.14.21-150500.55.192.2
kernel-source-5.14.21-150500.55.192.2
kernel-syms-5.14.21-150500.55.192.1
ocfs2-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise Live Patching 15 SP5
kernel-default-livepatch-5.14.21-150500.55.192.2
kernel-default-livepatch-devel-5.14.21-150500.55.192.2
kernel-livepatch-5_14_21-150500_55_192-default-1-150500.11.3.2
SUSE Linux Enterprise Micro 5.5
kernel-default-5.14.21-150500.55.192.2
kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
kernel-macros-5.14.21-150500.55.192.2
kernel-source-5.14.21-150500.55.192.2
SUSE Linux Enterprise Server 15 SP5-LTSS
cluster-md-kmp-default-5.14.21-150500.55.192.2
dlm-kmp-default-5.14.21-150500.55.192.2
gfs2-kmp-default-5.14.21-150500.55.192.2
kernel-64kb-5.14.21-150500.55.192.2
kernel-64kb-devel-5.14.21-150500.55.192.2
kernel-default-5.14.21-150500.55.192.2
kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
kernel-default-devel-5.14.21-150500.55.192.2
kernel-devel-5.14.21-150500.55.192.2
kernel-docs-5.14.21-150500.55.192.1
kernel-macros-5.14.21-150500.55.192.2
kernel-obs-build-5.14.21-150500.55.192.2
kernel-source-5.14.21-150500.55.192.2
kernel-syms-5.14.21-150500.55.192.1
kernel-zfcpdump-5.14.21-150500.55.192.2
ocfs2-kmp-default-5.14.21-150500.55.192.2
reiserfs-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise Server for SAP Applications 15 SP5
cluster-md-kmp-default-5.14.21-150500.55.192.2
dlm-kmp-default-5.14.21-150500.55.192.2
gfs2-kmp-default-5.14.21-150500.55.192.2
kernel-default-5.14.21-150500.55.192.2
kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
kernel-default-devel-5.14.21-150500.55.192.2
kernel-devel-5.14.21-150500.55.192.2
kernel-docs-5.14.21-150500.55.192.1
kernel-macros-5.14.21-150500.55.192.2
kernel-obs-build-5.14.21-150500.55.192.2
kernel-source-5.14.21-150500.55.192.2
kernel-syms-5.14.21-150500.55.192.1
ocfs2-kmp-default-5.14.21-150500.55.192.2
reiserfs-kmp-default-5.14.21-150500.55.192.2

Описание

In the Linux kernel, the following vulnerability has been resolved: EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper() As the comment of pci_get_domain_bus_and_slot() says, it returns a PCI device with refcount incremented, so it doesn't need to call an extra pci_dev_get() in pci_get_dev_wrapper(), and the PCI device needs to be put in the error path.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion. Furthermore, concurrent writes may create inconsistencies in the internal socket state. Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: crypto: af_alg - Fix incorrect boolean values in af_alg_ctx Commit 1b34cbbf4f01 ("crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg") changed some fields from bool to 1-bit bitfields of type u32. However, some assignments to these fields, specifically 'more' and 'merge', assign values greater than 1. These relied on C's implicit conversion to bool, such that zero becomes false and nonzero becomes true. With a 1-bit bitfields of type u32 instead, mod 2 of the value is taken instead, resulting in 0 being assigned in some cases when 1 was intended. Fix this by restoring the bool type.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: RDMA/srpt: Fix srpt_alloc_rw_ctxs() unwind counters When srpt_alloc_rw_ctxs() fails partway through a multi-buffer indirect descriptor, the unwind path destroys RDMA contexts but leaves stale n_rw_ctx and n_rdma values (and a dangling rw_ctxs pointer). Later sq_wr_avail accounting in srpt_queue_response() or srpt_write_pending() can then subtract the wrong number of send queue credits. Reset the counters and clear rw_ctxs after freeing the heap allocation before returning an error.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net/rds: handle zerocopy send cleanup before the message is queued A zerocopy send can fail after user pages have been pinned but before the message is attached to the sending socket. The purge path currently infers zerocopy state from rm->m_rs, so an unqueued message can be cleaned up as if it owned normal payload pages. However, zerocopy ownership is really determined by the presence of op_mmp_znotifier, regardless of whether the message has reached the socket queue. Capture op_mmp_znotifier up front in rds_message_purge() and use it as the cleanup discriminator. If the message is already associated with a socket, keep the existing completion path. Otherwise, drop the pinned page accounting directly and release the notifier before putting the payload pages. This keeps early send failure cleanup consistent with the zerocopy lifetime rules without changing the normal queued completion path.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: netfilter: bridge: make ebt_snat ARP rewrite writable The ebtables SNAT target keeps the Ethernet source address rewrite behind skb_ensure_writable(skb, 0). This is intentional: at the bridge ebtables hooks the Ethernet header is addressed through skb_mac_header()/eth_hdr(), while skb->data points at the Ethernet payload. Asking skb_ensure_writable() for ETH_HLEN bytes would check the payload, not the Ethernet header, and would reintroduce the small packet regression fixed by commit 63137bc5882a. However, the optional ARP sender hardware address rewrite is different. It writes through skb_store_bits() at an offset relative to skb->data: skb_store_bits(skb, sizeof(struct arphdr), info->mac, ETH_ALEN) skb_header_pointer() only safely reads the ARP header; it does not make the later sender hardware address range writable. If that range is still held in a nonlinear skb fragment backed by a splice-imported file page, skb_store_bits() maps the frag page and copies the new MAC address directly into it. Ensure the ARP SHA range is writable before reading the ARP header and before calling skb_store_bits().


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: i2c: core: fix adapter registration race Adapters can be looked up based on their id using i2c_get_adapter() which takes a reference to the embedded struct device. Make sure that the adapter (including its struct device) has been initialised before adding it to the IDR to avoid accessing uninitialised data which could, for example, lead to NULL-pointer dereferences or use-after-free. Note that the i2c-dev chardev, which is registered from a bus notifier, currently uses i2c_get_adapter() so the adapter needs to be added to the IDR before registration.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: i2c: core: fix adapter deregistration race Adapters can be looked up by their id using i2c_get_adapter() which takes a reference to the embedded struct device. Remove the adapter from the IDR before tearing it down during deregistration (and on registration failure) to make sure its resources are not accessed after having been freed (e.g. the device name).


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: nvmet-auth: validate reply message payload bounds against transfer length nvmet_auth_reply() accesses the variable-length rval[] array using attacker-controlled hl (hash length) and dhvlen (DH value length) fields without verifying they fit within the allocated buffer of tl bytes. A malicious NVMe-oF initiator can craft a DHCHAP_REPLY message with a small transfer length but large hl/dhvlen values, causing out-of-bounds heap reads when the target processes the DH public key (rval + 2*hl) or performs the host response memcmp. With DH authentication configured, the OOB pointer is passed directly to sg_init_one() and read by crypto_kpp_compute_shared_secret(), reaching up to 526 bytes past the buffer. This is exploitable pre-authentication. Add bounds validation ensuring sizeof(*data) + 2*hl + dhvlen <= tl before any access to the variable-length fields. Discovered by Atuin - Automated Vulnerability Discovery Engine.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes Reject invalid `net.ipv4.tcp_reordering` values before they reach TCP socket state. The sysctl is stored as an `int` but copied into the `u32` `tp->reordering` field for new sockets, so negative writes wrap to large values. With `tcp_mtu_probing=2`, the wrapped value can overflow the `tcp_mtu_probe()` size calculation and drive the MTU probing path into an out-of-bounds read. Route `tcp_reordering` writes through `proc_dointvec_minmax()` and require it to be at least 1. Also require `tcp_max_reordering` to be at least 1 so the configured maximum cannot become negative either. When registering the table for a non-init network namespace, relocate `extra2` pointers that refer into `init_net.ipv4` so the `tcp_reordering` upper bound follows that namespace's `tcp_max_reordering`. Harden `tcp_mtu_probe()` itself by computing `size_needed` as `u64`. This keeps the send queue and window checks from being bypassed through signed integer overflow.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: perf/core: Detach event groups during remove_on_exec perf_event_remove_on_exec() removes events by calling perf_event_exit_event(). For top-level events, this removes the event from the context with DETACH_EXIT only. This can leave inconsistent group state when a removed event is a group leader and the group contains siblings without remove_on_exec. If the group was active, the surviving siblings can remain active and attached to the removed leader's sibling list, but are no longer represented by a valid group leader on the PMU context active lists. A later close of the removed leader uses DETACH_GROUP and can promote the still-active siblings from this stale group state. The next schedule-in can then add an already-linked active_list entry again, corrupting the PMU context active list. With DEBUG_LIST enabled, this is caught as a list_add double-add in merge_sched_in(). Fix this by detaching group relationships when remove_on_exec removes an event. This preserves the existing task-exit and revoke behavior, while ensuring surviving siblings are ungrouped before the removed event leaves the context.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: xfrm6: clear dst.dev on error to avoid double netdev_put in xfrm6_fill_dst() On the error path where in6_dev_get(dev) returns NULL, xfrm6_fill_dst() releases the device reference with netdev_put() but leaves xdst->u.dst.dev set. dst_destroy() later calls netdev_put(dst->dev) again, so the same net_device reference is released twice, underflowing its refcount (ref_tracker WARNING + "unregister_netdevice: waiting for <dev> to become free"). Clear xdst->u.dst.dev after the netdev_put(), the same way the XFRM device-offload paths xfrm_dev_state_add() and xfrm_dev_policy_add() in net/xfrm/xfrm_device.c NULL ->dev when releasing the reference on error. ref_tracker: reference already released. ref_tracker: allocated in: xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:86) ... udpv6_sendmsg (net/ipv6/udp.c:1696) ... ref_tracker: freed in: xfrm6_fill_dst (net/ipv6/xfrm6_policy.c:90) ... WARNING: lib/ref_tracker.c:322 at ref_tracker_free+0x58b/0x780 dst_destroy (net/core/dst.c:115) rcu_core handle_softirqs ...


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: libceph: Reject monmaps advertising zero monitors A message of type CEPH_MSG_MON_MAP contains a monmap that is sent from a monitor to the client. This monmap contains information about the existing monitors in the cluster. Currently, a monmap indicating that there are zero monitors in the cluster is treated as valid. However, it is impossible to have zero monitors in the cluster and still receive a valid monmap from a monitor. Therefore, such a monmap must be corrupted and should be treated as invalid. Furthermore, a monmap with a monitor count of zero can subsequently crash the client when attempting to open a session with a monitor in __open_session(). This happens because the "BUG_ON(monc->monmap->num_mon < 1)" assertion in pick_new_mon() is triggered. This patch extends a check in ceph_monmap_decode() to also reject arriving mon_maps with num_mon == 0 rather than only with num_mon > CEPH_MAX_MON. [ idryomov: drop "log output for unusual values of num_mon" part ]


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: libceph: Fix multiplication overflow in decode_new_up_state_weight() If a message of type CEPH_MSG_OSD_MAP contains a (maliciously) corrupted osdmap, out-of-bounds memory accesses may occur in decode_new_up_state_weight(). This happens because the bounds check for the new_state part is based on calculating its length depending on a len value read from the incoming message. This calculation may overflow leading to an incorrect bounds check. Subsequently, out-of-bounds reads may occur when decoding this part. This patch switches the multiplication to use check_mul_overflow() to abort processing the osdmap if an overflow occurred. Therefore, osdmaps/messages containing large values for len that result in a multiplication overflow are treated as invalid. [ idryomov: rename new_state_len -> new_state_item_size, formatting ]


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: libceph: bound pg_{temp,upmap,upmap_items} length to CEPH_PG_MAX_SIZE __decode_pg_temp() decodes an user-controlled length but only rejects values large enough to overflow the allocation; it does not bound it to CEPH_PG_MAX_SIZE. The helper backs both pg_temp and pg_upmap decoding, and apply_upmap()/get_temp_osds() later copy the decoded list into the fixed-size on-stack array struct ceph_osds.osds[CEPH_PG_MAX_SIZE]. A monitor that sends an OSDMap with a pg_temp/pg_upmap entry longer than 32 thus causes a stack out-of-bounds write. An OSD set for a single PG can never exceed CEPH_PG_MAX_SIZE, so reject longer entries at decode time. The bound is well below the old overflow threshold, so it also covers the allocation-size overflow the previous check guarded against. BUG: KASAN: stack-out-of-bounds in ceph_pg_to_up_acting_osds Write of size 4 ... by task exploit kasan_report (mm/kasan/report.c:595) ceph_pg_to_up_acting_osds (net/ceph/osdmap.c:2617 net/ceph/osdmap.c:2833) calc_target (net/ceph/osd_client.c:1638) __submit_request (net/ceph/osd_client.c:2394) ceph_osdc_start_request (net/ceph/osd_client.c:2490) ceph_osdc_call (net/ceph/osd_client.c:5164) rbd_dev_image_probe (drivers/block/rbd.c:6899) do_rbd_add (drivers/block/rbd.c:7138) ... kernel BUG at net/ceph/osdmap.c:2670! [ idryomov: do the same in __decode_pg_upmap_items() ]


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: fix auth_hmacs array size in struct sctp_cookie The auth_hmacs array in struct sctp_cookie is supposed to store a complete SCTP_AUTH_HMAC_ALGO parameter, which consists of a struct sctp_paramhdr followed by N HMAC identifiers. However, the array size was calculated using an extra 2 bytes instead of sizeof(struct sctp_paramhdr), which is 4 bytes. When four HMAC identifiers are configured, the HMAC-ALGO parameter stored in the endpoint is larger than the auth_hmacs buffer in the cookie. As a result, sctp_association_init() copies beyond the end of auth_hmacs when initializing the association, corrupting the adjacent auth_chunks field. This can lead to an invalid HMAC identifier being accepted and later cause an out-of-bounds read in sctp_auth_get_hmac(). Fix the array size calculation by including the full SCTP parameter header size.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Prevent shader BO mappings from becoming writable vc4_gem_object_mmap() rejects a writable mapping of a validated shader BO, but leaves VM_MAYWRITE set. Userspace can map the BO read-only and then turn it writable with mprotect(). Validated shader BOs must stay read-only: the validator checks the instructions once and the GPU trusts them afterwards. A writable mapping lets userspace rewrite the code after validation, bypassing the validator. Clear VM_MAYWRITE on the read-only path so the mapping cannot be upgraded, as i915 already does for its read-only objects.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: s390/zcrypt: Validate length for CCA ECC private key requests cca_ecc2protkey() derives the copy length for the CPRB parameter block directly from the length field in the key token. Reject the request early if the token length exceeds the available space in the parameter block.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: s390/zcrypt: Validate length for CCA AES cipher key requests cca_cipher2protkey() derives the copy length for the CPRB parameter block directly from the length field in the key token. Reject the request early if the token length exceeds the available space in the parameter block.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: KVM: s390: pci: Fix handling of AIF enable without AISB When a guest seeks to register IRQs without a summary bit specified, ensure that the associated GAITE then stores 0 for the guest AISB location instead of virt_to_phys(page_address(NULL)).


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: ip6_tunnel: require CAP_NET_ADMIN in the device netns for changelink ip6_tnl_changelink() operates on at most two netns, dev_net(dev) and the tunnel link netns t->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in t->net can rewrite a tunnel that lives in t->net. Gate ip6_tnl_changelink() on rtnl_dev_link_net_capable() at its top, before any attribute is parsed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: ip6_gre: require CAP_NET_ADMIN in the device netns for changelink ip6gre_changelink() and ip6erspan_changelink() operate on at most two netns, dev_net(dev) and the tunnel link netns t->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in t->net can rewrite a tunnel that lives in t->net. Gate both ops on rtnl_dev_link_net_capable() at their top, before any attribute is parsed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: ipip: require CAP_NET_ADMIN in the device netns for changelink ipip_changelink() operates on at most two netns, dev_net(dev) and the tunnel link netns t->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in t->net can rewrite a tunnel that lives in t->net. Gate ipip_changelink() on rtnl_dev_link_net_capable() at its top, before any attribute is parsed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: ip_vti: require CAP_NET_ADMIN in the device netns for changelink vti_changelink() operates on at most two netns, dev_net(dev) and the tunnel link netns t->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in t->net can rewrite a tunnel that lives in t->net. Gate vti_changelink() on rtnl_dev_link_net_capable() at its top, before any attribute is parsed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: ip6_vti: require CAP_NET_ADMIN in the device netns for changelink vti6_changelink() operates on at most two netns, dev_net(dev) and the tunnel link netns t->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in t->net can rewrite a tunnel that lives in t->net. Gate vti6_changelink() on rtnl_dev_link_net_capable() at its top, before any attribute is parsed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: sit: require CAP_NET_ADMIN in the device netns for changelink ipip6_changelink() operates on at most two netns, dev_net(dev) and the tunnel link netns t->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in t->net can rewrite a tunnel that lives in t->net. Gate ipip6_changelink() on rtnl_dev_link_net_capable() at its top, before any attribute is parsed. sit was the one tunnel type not covered by the recent series that added this check to the other changelink() handlers.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: cpu: hotplug: Bound hotplug states sysfs output states_show() adds CPU hotplug state names into a single sysfs buffer using sprintf(). With enough registered states, this can write past the end of the PAGE_SIZE buffer. Use sysfs_emit_at() so output is bounded.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: scsi: target: core: Fix iSCSI ISID use-after-free in REGISTER AND MOVE core_scsi3_emulate_pro_register_and_move() maps the PERSISTENT RESERVE OUT parameter list with transport_kmap_data_sg() and parses the destination TransportID with target_parse_pr_out_transport_id(). For an iSCSI TransportID (FORMAT CODE 01b), iscsi_parse_pr_out_transport_id() returns the ISID in iport_ptr as a raw pointer into that mapped buffer. The function then unmaps the buffer with transport_kunmap_data_sg() before dereferencing iport_ptr in strcmp(), __core_scsi3_locate_pr_reg() and core_scsi3_alloc_registration(). When the parameter list spans more than one page (PARAMETER LIST LENGTH > 4096), transport_kmap_data_sg() uses vmap() and transport_kunmap_data_sg() does vunmap(), so the kernel virtual address backing iport_ptr is torn down and every subsequent dereference is a use-after-free read of the unmapped region. Keep the parameter list mapped until iport_ptr is no longer needed: drop the early transport_kunmap_data_sg() and unmap once on the success path, right before returning. The error paths already unmap through the existing "if (buf) transport_kunmap_data_sg(cmd)" at the out: label, which now runs on every post-map error exit because buf is no longer cleared early. Only reads of the mapping happen while spinlocks are held; the map and unmap calls remain outside any lock. The sibling caller core_scsi3_decode_spec_i_port() already uses the buffer before unmapping it and is left unchanged.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: scsi: target: Bound PR-OUT TransportID parsing to the received buffer core_scsi3_decode_spec_i_port() and core_scsi3_emulate_register_and_move() hand the raw PERSISTENT RESERVE OUT parameter buffer to target_parse_pr_out_transport_id() without telling it how many bytes are valid. For an iSCSI TransportID (FORMAT CODE 01b), iscsi_parse_pr_out_transport_id() locates the ",i,0x" ISID separator with an unbounded strstr() (and on the error path prints the name with a further unbounded "%s"). An initiator can submit a TransportID whose iSCSI name contains neither a ",i,0x" substring nor a NUL terminator, filling the parameter list to its end, so the scan runs off the end of the buffer. When the parameter list spans more than one page the buffer is a multi-page vmap (transport_kmap_data_sg()), so the over-read walks into the trailing vmalloc guard page and oopses (KASAN: vmalloc-out-of-bounds in strstr). It is reachable by any fabric that delivers a PR OUT to a device exported through an iSCSI TPG, including a guest via vhost-scsi. Pass the number of received bytes down to the parser and validate the iSCSI TransportID's own self-described length (ADDITIONAL LENGTH + 4) once, up front: reject it if it is below the spc4r17 minimum or larger than the received buffer, then bound the separator search, the ISID walk and the name copy by that length. This is the length check the callers already perform after the parse (core_scsi3_decode_spec_i_port() compares tid_len against tpdl, core_scsi3_emulate_register_and_move() validates it against data_length), moved ahead of the scan. Also drop the unbounded "%s" of the unterminated name. Add per-format explicit name-length checks before copying into i_str, rather than silently truncating with min_t: for FORMAT CODE 00b reject if the descriptor body (tid_len - 4 bytes) cannot fit in i_str[TRANSPORT_IQN_LEN]; for FORMAT CODE 01b reject if the name portion (from &buf[4] up to the separator) cannot fit. Both checks make the bounds intent explicit at each format branch. While here, also reject a FORMAT CODE 01b TransportID whose ",i,0x" separator sits at the very end of the descriptor: that leaves an empty ISID and points the returned port nexus pointer at buf + tid_len, one past the descriptor, which the registration code (__core_scsi3_locate_pr_reg(), __core_scsi3_alloc_registration()) then dereferences as the ISID string -- the same over-read of the parameter buffer for a malformed descriptor.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: dm-verity: fix buffer overflow in FEC calculation There's a buffer overflow in dm-verity-fec: if (neras && *neras <= v->fec->roots) fio->erasures[(*neras)++] = i; This allows *neras to reach roots + 1 (the post-increment pushes it past roots). This value is then passed as no_eras to decode_rs8(). Inside the RS decoder (lib/reed_solomon/decode_rs.c:113-121), the erasure locator polynomial loop writes lambda[j] where j can reach nroots + 1 - one element past the end of lambda[] (which is sized nroots + 1, valid indices 0..nroots). The out-of-bounds write lands on syn[0], corrupting the syndrome buffer.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: nvmet-rdma: handle inline data with a nonzero offset nvmet_rdma_use_inline_sg() maps the host-controlled inline data offset into the per-command inline scatterlist. The bounds check admits any offset with off + len <= inline_data_size, but the mapping still assumes the data begins in the first inline page: sg->offset = off; sg->length = min_t(int, len, PAGE_SIZE - off); When a port is configured with inline_data_size > PAGE_SIZE (settable up to max(SZ_16K, PAGE_SIZE)), an offset in (PAGE_SIZE, inline_data_size] makes "PAGE_SIZE - off" underflow, so sg->length is set to ~4 GiB and the block backend reads far past the first inline page. num_pages(len) also ignores the offset, so an in-bounds offset whose [off, off+len) span crosses a page boundary under-counts the scatterlist. Map the offset properly: split it into a page index and an in-page offset, start the scatterlist at that page, and size the page count from page_off + len. Because the request scatterlist may now start at inline_sg[page_idx] rather than inline_sg[0], generalize the inline-SGL identity test in nvmet_rdma_release_rsp() to a range test; otherwise the persistent inline scatterlist is mistaken for an allocated one and nvmet_req_free_sgls() frees an inline page (and warns in free_large_kmalloc()).


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: xfrm: xfrm_interface: require CAP_NET_ADMIN in the device netns for changelink xfrmi_changelink() operates on at most two netns, dev_net(dev) and the interface link netns xi->net. They differ once the device is created in or moved to a netns other than the one the request runs in. The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev), so a caller privileged there but not in xi->net can rewrite an interface that lives in xi->net. Gate xfrmi_changelink() on rtnl_dev_link_net_capable() at its top, before any attribute is parsed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: thunderbolt: Fix frags[] overflow by bounding frame_count tbnet_poll() assembles a multi-frame ThunderboltIP packet into one skb. The first frame goes into the skb linear area and every further frame is added as a page fragment. skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, hdr_size, frame_size, TBNET_RX_PAGE_SIZE - hdr_size); A packet of frame_count frames therefore ends up with frame_count - 1 fragments. tbnet_check_frame() only bounds the peer supplied frame_count to TBNET_RING_SIZE / 4 (64), which is far above MAX_SKB_FRAGS (17 by default). A peer that sends a packet of 19 or more small frames pushes nr_frags past MAX_SKB_FRAGS, so skb_add_rx_frag() writes past skb_shinfo()->frags[] and corrupts memory after the shared info. Tighten the start of packet bound to MAX_SKB_FRAGS + 1 so a packet can never produce more fragments than frags[] can hold. This matches the recent skb frags overflow fixes in other receive paths, for example f0813bcd2d9d ("net: wwan: t7xx: fix potential skb->frags overflow in RX path") and 600dc40554dc ("net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete()").


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ocfs2: avoid moving extents to occupied clusters For non-auto OCFS2_IOC_MOVE_EXT operations, userspace supplies a physical me_goal. ocfs2_move_extent() initializes new_phys_cpos from that goal and expects ocfs2_probe_alloc_group() to replace it with a free run in the target block group. The probe currently leaves *phys_cpos unchanged if the scan reaches the end of the group without finding a free run. An occupied goal at the last bit can therefore survive the probe and be passed to __ocfs2_move_extent(), which copies file data into a cluster still owned by another inode before the bitmap is updated. When the probe does find a free run, it also subtracts move_len from the ending bit. The start of an N-bit run ending at i is i - N + 1, so the current calculation can report the bit immediately before the free run. Clear *phys_cpos before scanning and use the correct free-run start. Callers already treat a zero result as -ENOSPC, so failed probes no longer continue with an occupied caller-controlled goal.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: Fix potential UAF in MLD delayed work A race condition exists between device teardown and incoming MLD query processing, leading to a Use-After-Free in the MLD delayed work. During device destruction, the primary reference to inet6_dev is dropped, which can drop its refcount to 0. The actual freeing of inet6_dev memory is deferred via RCU. Concurrently, the packet receive path runs under RCU read lock and obtains the inet6_dev pointer. Because the memory is RCU-protected, CPU-0 can safely dereference inet6_dev even if its refcount has hit 0. However, if CPU-0 calls igmp6_event_query() and schedules delayed work, it attempts to acquire a reference using in6_dev_hold(). This increments the refcount from 0 to 1, triggering a "refcount_t: addition on 0" warning. Since the inet6_dev memory is still scheduled to be freed after the RCU grace period, the device is freed while the work is still scheduled. When the work runs, it accesses the freed memory, causing a kernel panic. Fix this by using refcount_inc_not_zero() (via a new helper in6_dev_hold_safe()) to prevent acquiring a reference if the device is already being destroyed. If the refcount is 0, we do not schedule the work.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ipv4: igmp: Fix potential UAF in igmp_gq_start_timer() A race condition exists between device teardown (inetdev_destroy) and incoming IGMP query processing (igmp_rcv), leading to a Use-After-Free in the IGMP timer callback. During device destruction, inetdev_destroy() drops the primary reference to in_device, which can drop its refcount to 0. The actual freeing of in_device memory is deferred via RCU (using call_rcu()). Concurrently, igmp_rcv() runs under RCU read lock and obtains the in_device pointer. Because the memory is RCU-protected, CPU-0 can safely dereference in_device even if its refcount has hit 0. However, if CPU-0 calls igmp_gq_start_timer() and re-arms the timer, it attempts to acquire a reference using in_dev_hold(). This increments the refcount from 0 to 1, triggering a "refcount_t: addition on 0" warning. Since the in_device memory is still scheduled to be freed after the RCU grace period (as the free callback does not check the refcount again), the device is freed while the timer is still armed. When the timer expires, it accesses the freed memory, causing a kernel panic. Fix this by using refcount_inc_not_zero() (via a new helper in_dev_hold_safe()) to prevent acquiring a reference if the device is already being destroyed. If the refcount is 0, we do not arm the timer. A similar issue in IPv6 MLD is fixed in a subsequent patch.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: qede: fix off-by-one in BD ring consumption on build_skb failure qede_rx_build_skb() and qede_tpa_rx_build_skb() do not check for a NULL return from qede_build_skb(). When it returns NULL under memory pressure, the functions still consume a BD from the ring before returning NULL. The callers then recycle additional BDs, resulting in one extra BD being consumed (off-by-one). This desynchronizes the BD ring, which can corrupt DMA page reference counts and lead to SLUB freelist corruption. Commit 4e910dbe3650 ("qede: confirm skb is allocated before using") added a NULL check inside qede_build_skb() to prevent a NULL pointer dereference, but did not address the missing NULL checks in the callers, making this off-by-one reachable. Fix this by adding NULL checks for the return value of qede_build_skb() in both qede_rx_build_skb() and qede_tpa_rx_build_skb(), returning NULL immediately before any BD ring manipulation.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: netfilter: ip6tables: mark malformed IPv6 extension headers for hotdrop The ah, hbh and rt matches check that the fixed extension header is present, then use the header length field to derive the advertised extension header length for matching. For the ah match, add the missing advertised-length check. For hbh and rt, update the existing advertised-length checks. In all three cases, set hotdrop to true before returning false when the advertised extension header length exceeds the available skb data. Returning false treats the packet as a rule mismatch. Set hotdrop to true and drop malformed packets so they cannot bypass rules intended to drop packets with these IPv6 extension headers.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: gue: validate REMCSUM private option length GUE private flags can indicate that remote checksum offload metadata is present. The private flags field itself is accounted for by guehdr_flags_len(), but guehdr_priv_flags_len() currently returns 0 even when GUE_PFLAG_REMCSUM is set. This lets a packet with only the private flags field pass validate_gue_flags(), after which gue_remcsum() and gue_gro_remcsum() read the missing REMCSUM start/offset fields from the following bytes. Account for GUE_PLEN_REMCSUM when GUE_PFLAG_REMCSUM is present so that malformed packets are rejected during option validation.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: fix addr_wq_timer race in sctp_free_addr_wq() sctp_free_addr_wq() previously removed addr_wq_timer using timer_delete() while holding addr_wq_lock. However, timer_delete() does not guarantee that a currently running timer handler has completed. This allows a race with sctp_addr_wq_timeout_handler(), where the handler may still run after addr_waitq has been freed, acquire addr_wq_lock, and access freed memory, leading to a use-after-free. Fix this by calling timer_shutdown_sync() before taking addr_wq_lock. This guarantees that any in-flight timer handler has finished and prevents the timer from being re-armed during teardown, making subsequent cleanup safe.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: add INIT verification after cookie unpacking In SCTP handshake, the INIT chunk is initially processed by the server and embedded into the cookie carried in INIT-ACK. The client then returns this cookie via COOKIE-ECHO, where the server unpacks it and reconstructs the original INIT chunk. When cookie authentication is enabled, the cookie contents are protected against tampering, so reusing the unpacked INIT without re-verification is safe. However, when cookie authentication is disabled, the reconstructed INIT can no longer be trusted. In this case, the INIT must be explicitly validated after unpacking to avoid processing potentially tampered data. Add sctp_verify_init() checks after cookie unpacking in COOKIE-ECHO processing paths (sctp_sf_do_5_1D_ce() and sctp_sf_do_5_2_4_dupcook()) when cookie_auth_enable is disabled. On failure, the new association is freed and the packet is discarded. Also tighten cookie validation in sctp_unpack_cookie() by verifying the embedded chunk type is SCTP_CID_INIT before treating it as an INIT chunk. Finally, update sctp_verify_init() to validate parameter bounds using the actual embedded INIT length instead of chunk->chunk_end, since the INIT stored in COOKIE-ECHO may not span the entire chunk buffer.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: netfilter: ipset: make sure gc is properly stopped Sashiko noticed that when destroying a set, cancel_delayed_work_sync() was called while gc calls queue_delayed_work() unconditionally which can lead not to properly shutting down the gc.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: fix list_del corruption in kfd_criu_resume_svm The cleanup tail of kfd_criu_resume_svm() walks svms->criu_svm_metadata_list and kfree()s each struct criu_svm_metadata without removing it from the list. The list head is left pointing at freed kmalloc-96 objects. A second AMDKFD_IOC_CRIU_OP from the same process re-enters: list_empty() reads the dangling ->next (use-after-free), the loop walks freed entries, and each is kfree()'d again (double-free). This is reachable by an unprivileged render-group user via /dev/kfd with no capabilities required. Add list_del() before the kfree() so the list is properly emptied. The list_for_each_entry_safe() iterator already caches the next pointer, so unlinking during the walk is safe. (cherry picked from commit 6322d278a298e2c1430b9d2697743d3a04b788b1)


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_codel: Do not call qdisc_tree_reduce_backlog during peek before restoring qlen Whenever codel drops packets during peek, it calls qdisc_tree_reduce_backlog. An issue arises because it calls qdisc_tree_reduce_backlog before it reincrements the qlen. If qlen drops to zero, but peek returns an skb, the parent's qlen_notify callback will be executed even though codel still has 1 packet on the queue and, thus, will mistakenly deactivate the parent's class causing issues like a wild memory access when qfq has codel as a child: [ 36.339843][ T370] Oops: general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI [ 36.340408][ T370] KASAN: maybe wild-memory-access in range [0xdead000000000120-0xdead000000000127] [ 36.340737][ T370] CPU: 2 UID: 0 PID: 370 Comm: tc Not tainted 7.1.0-rc5-00287-g66e13b626592 #87 PREEMPT(full) [ 36.341113][ T370] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 36.341357][ T370] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:1029 (discriminator 2) include/linux/list.h:1043 (discriminator 2) net/sched/sch_qfq.c:1369 (discriminator 2) net/sched/sch_qfq.c:1395 (discriminator 2)) sch_qfq [ 36.342221][ T370] RSP: 0018:ffff8881100ef370 EFLAGS: 00010216 [ 36.342422][ T370] RAX: 0000000000000000 RBX: ffff8881058a9568 RCX: dffffc0000000000 [ 36.342664][ T370] RDX: 1ffff11021064dc3 RSI: ffff888108326e00 RDI: dffffc0000000000 [ 36.342905][ T370] RBP: ffff8881058a8280 R08: dead000000000122 R09: 1bd5a00000000024 [ 36.343140][ T370] R10: fffffbfff2940329 R11: fffffbfff2940329 R12: 0000000000000000 [ 36.343383][ T370] R13: dead000000000100 R14: ffff8881058a9580 R15: ffff8881058a9578 [ 36.343631][ T370] FS: 00007fc04b0ca780(0000) GS:ffff888184fef000(0000) knlGS:0000000000000000 [ 36.343911][ T370] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 36.344116][ T370] CR2: 0000557c02c02000 CR3: 000000010e0ba000 CR4: 0000000000750ef0 [ 36.344359][ T370] PKRU: 55555554 [ 36.344481][ T370] Call Trace: ... [ 36.345054][ T370] qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1487) sch_qfq [ 36.345222][ T370] qdisc_reset (net/sched/sch_generic.c:1057) [ 36.345503][ T370] __qdisc_destroy (net/sched/sch_generic.c:1096) [ 36.345677][ T370] qdisc_graft (net/sched/sch_api.c:1062 net/sched/sch_api.c:1053 net/sched/sch_api.c:1159) [ 36.346335][ T370] tc_get_qdisc (net/sched/sch_api.c:1528 net/sched/sch_api.c:1556) Fix this by only calling qdisc_tree_reduce_backlog in peek after the qlen is restored.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: tipc: require net admin for TIPCv2 netlink mutators TIPCv2 registers mutating generic-netlink operations without admin permission flags. Generic netlink only checks CAP_NET_ADMIN when an operation sets GENL_ADMIN_PERM or GENL_UNS_ADMIN_PERM, so a local unprivileged process can currently change TIPC state through commands such as TIPC_NL_NET_SET, TIPC_NL_KEY_SET, TIPC_NL_KEY_FLUSH, and bearer enable/disable. The legacy TIPC netlink API already checks netlink_net_capable(..., CAP_NET_ADMIN) for administrative commands. Give the TIPCv2 mutators the equivalent generic-netlink gate. Use GENL_UNS_ADMIN_PERM, which maps to the same namespace-aware CAP_NET_ADMIN check that netlink_net_capable() performs, so the behaviour matches the legacy path and keeps working for CAP_NET_ADMIN holders in a non-initial user namespace (containers). A QEMU/KASAN repro run as uid/gid 65534 with zero effective capabilities previously succeeded in changing the network id and node identity, setting and flushing key material, and enabling/disabling a UDP bearer. With this patch applied the same operations fail with -EPERM.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: configfs: fix lockless traversals of ->s_children Having the parent directory locked protects entries from removal by another thread, but it does *not* protect cursors from being moved around by lseek() - or freed, for that matter.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ALSA: seq: oss: Fix UAF at handling events with embedded SysEx data The OSS sequencer processes the input MIDI bytes into a sequencer event to be dispatched later (in snd_seq_oss_midi_putc() called from snd_seq_oss_process_event()). When it's a SysEx data, the event record contains data.ext.ptr pointer to the original SysEx bytes, and the referred data is copied into the pool afterwards at dispatching. The problem is that, if the sequencer port gets closed concurrently before the dispatch, the OSS sequencer core also releases the resources (in snd_seq_oss_midi_check_exit_port()), while the pending event may hold a stale pointer, eventually leading to a UAF at a later dispatch. Fortunately, there is already a refcounting mechanism (snd_use_lock_t) for the OSS MIDI device access, and for addressing the issue above, we just need to extend the refcount until the event gets dispatched. This patch extends snd_seq_oss_process_event() to give back the refcount object, which is in turn released after calling the sequencer dispatcher with the given event in the caller side. According to the original report, KASAN report as below: KASAN slab-use-after-free in snd_seq_event_dup+0x40c/0x470 RIP: 0033:0x7f2cb66a6340 Read of size 6 Call trace: dump_stack_lvl+0x73/0xb0 (?:?) print_report+0xd1/0x650 (?:?) srso_alias_return_thunk+0x5/0xfbef5 (?:?) __virt_addr_valid+0x1a7/0x340 (?:?) kasan_complete_mode_report_info+0x64/0x200 (?:?) kasan_report+0xf7/0x130 (?:?) snd_seq_event_dup+0x40c/0x470 (?:?) kasan_check_range+0x10c/0x1c0 (?:?) __asan_memcpy+0x27/0x70 (?:?) snd_seq_event_dup+0x9/0x470 (?:?) snd_seq_client_enqueue_event+0x139/0x240 (?:?) _raw_spin_unlock_irqrestore+0x4b/0x60 (?:?) snd_seq_kernel_client_enqueue+0x102/0x120 (?:?) snd_seq_oss_write+0x416/0x4e0 (?:?) apparmor_file_permission+0x20/0x30 (?:?) odev_write+0x3b/0x60 (?:?) vfs_write+0x1ce/0x850 (?:?) lock_release+0xc8/0x2a0 (?:?) __kasan_check_write+0x18/0x20 (?:?) __mutex_unlock_slowpath+0x129/0x510 (?:?) ksys_write+0xe1/0x180 (?:?) mutex_unlock+0x16/0x20 (?:?) odev_ioctl+0x65/0xc0 (?:?) __x64_sys_write+0x46/0x60 (?:?) x64_sys_call+0x7d/0x20d0 (?:?) do_syscall_64+0xc1/0x360 (arch/x86/entry/syscall_64.c:87) entry_SYSCALL_64_after_hwframe+0x77/0x7f (?:?)


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ipv6: addrconf: bail out of dad_failure when state is no longer POSTDAD addrconf_dad_failure() transitions ifp->state from DAD to POSTDAD via addrconf_dad_end(), which drops ifp->lock on return. The lock is re-acquired after net_info_ratelimited(). A concurrent ipv6_del_addr() can take the lock in that window, set ifp->state to DEAD and run list_del_rcu(&ifp->if_list). addrconf_dad_failure() then overwrites DEAD with ERRDAD at errdad: and schedules a new dad_work. The work calls ipv6_del_addr() again, hitting the already-poisoned list entry: general protection fault: 0000 [#1] SMP NOPTI CPU: 4 PID: 217 Comm: kworker/4:1 Workqueue: ipv6_addrconf addrconf_dad_work RIP: 0010:ipv6_del_addr+0xe9/0x280 RAX: dead000000000122 Call Trace: addrconf_dad_stop+0x113/0x140 addrconf_dad_work+0x28c/0x430 process_one_work+0x1eb/0x3b0 worker_thread+0x4d/0x400 kthread+0x104/0x140 ret_from_fork+0x35/0x40 Fold the addrconf_dad_end() logic into addrconf_dad_failure() under a single ifp->lock critical section. The STABLE_PRIVACY branch temporarily drops ifp->lock around address regeneration, so at lock_errdad: verify the state is still POSTDAD before transitioning to ERRDAD; bail out otherwise to avoid overwriting a state set by another path while the lock was released.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: vxlan: Fix potential null-ptr-deref in vxlan_gro_prepare_receive(). udp_tunnel_sock_release() could set sk->sk_user_data to NULL while vxlan_gro_prepare_receive() is running. Let's check if rcu_dereference_sk_user_data() is NULL after skb_gro_remcsum_init().


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: bound DMA command body size against suffix pointer vmw_cmd_dma() locates the DMA suffix at (unsigned long) &cmd->body + header->size - sizeof(*suffix) without checking that header->size is large enough to contain both cmd->body and the suffix. An undersized header makes the suffix pointer underflow back into the previous command in the bounce buffer. The verifier later writes suffix->maximumOffset, clobbering verified fields of an already-relocated earlier command -- a TOCTOU on the device-visible command stream that lets one command rewrite another's GMR id, surface id, or other authenticated fields. Reject the command if the body is too small for the suffix to fit.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: drm/vmwgfx: validate DRAW_PRIMITIVES header size before division vmw_cmd_draw() computes maxnum = (header->size - sizeof(cmd->body)) / sizeof(*decl); where header->size is u32 and is taken straight from the user-supplied command stream. When header->size is less than sizeof(cmd->body) the unsigned subtraction wraps to nearly 4 GiB, producing a huge maxnum. Any user-controlled cmd->body.numVertexDecls then passes the bound and the loop dereferences decl[i] far past the end of the kernel command bounce buffer, producing an out-of-bounds read of kernel memory. Reject undersized headers up front.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: drm/vc4: Zero the tile state data array before each BIN job The binner BO is a single 16MB buffer split into 512KB slots that are handed out to jobs at submission time and recycled as jobs complete, without ever being cleared. Each slot holds the job's Tile State Data Array (TSDA) at its start, followed by the tile allocation pool. While the tile allocation pool is only walked by the render thread through branches the binner generated during the current job, the TSDA is the PTB's own per-tile bookkeeping and is consumed by the hardware itself. Although the kernel sets the "Auto-initialise Tile State Data Array" flag in the tile binning mode configuration, the PTB demonstrably still acts on stale tile state left by the slot's previous user: the binner ends up creating invalid command streams with invalid primitive streams and branches, which can cause GPU hangs as observed in [1][2]. Zero the TSDA when the job's binning slot is configured. This clears 48 bytes per tile (~24KB for a 1080p frame) in the submission path, and guarantees the PTB never sees another job's tile state. The tile count is only checked for being non-zero today, so the 8-bit fields it comes from can describe a tile state array almost six times larger than the slot it has to live in. Bound it before the slot is handed out, since such size decides how much of the slot is left for the tile alloc pool.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: prevent peer transport count overflow sctp_assoc_add_peer() increments the association's 16-bit transport_count for every new unique peer. Adding the 65,536th transport wraps the count to zero. SCTP sock_diag uses transport_count to reserve the INET_DIAG_PEERS payload, then copies one sockaddr_storage for every entry in transport_addr_list. After the wrap, a diagnostic dump reserves an empty payload and writes 8 MiB of peer addresses past the skb tail. Reject a new unique peer when transport_count has reached U16_MAX. Perform the check after the existing-peer lookup so a duplicate address continues to return its existing transport at the limit.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: vxlan: use pskb_network_may_pull() in route_shortcircuit() route_shortcircuit() currently calls pskb_may_pull(skb, sizeof(struct iphdr)) (or ipv6hdr), which checks if bytes are available starting from skb->data. However, in vxlan_xmit(), skb->data points to the MAC header, so skb_network_offset(skb) is ETH_HLEN (14 bytes). Using pskb_may_pull(skb, 20) only checks 20 bytes from skb->data (which is 14 bytes MAC header + 6 bytes of IP header), leaving the rest of the IP header potentially un-pulled in non-linear frags. Subsequent dereferences of ip_hdr(skb)->daddr can read beyond the pulled linear buffer length. Fix this by using pskb_network_may_pull(), which adds skb_network_offset(skb) to the length check to ensure the full network header is present in the linear buffer.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: pktgen: fix proc entry use-after-free pktgen_change_name() replaces pkt_dev->entry while holding t->if_lock. pktgen_remove_device() removes the same entry before _rem_dev_from_if_list() takes that lock. This allows the following interleaving: CPU 0 (NETDEV_CHANGENAME) CPU 1 (kpktgend) if_lock(t) proc_remove(pkt_dev->entry) proc_remove(pkt_dev->entry) pkt_dev->entry = proc_create_data(...) if_unlock(t) The kthread can pass the stale proc_dir_entry to proc_remove() after the rename path has freed it. A reproducer with a widened race window reports: BUG: KASAN: slab-use-after-free in proc_remove+0x78/0x80 Read of size 8 at addr ffff8881478fea70 by task kpktgend_0/67 Call Trace: proc_remove+0x78/0x80 pktgen_remove_device.isra.0+0x11c/0x4c0 pktgen_thread_worker+0x1214/0x6bc0 kthread+0x2c6/0x3b0 Allocated by task 95: __proc_create+0x204/0x790 proc_create_data+0x72/0xe0 pktgen_thread_write+0xd61/0x1510 Freed by task 28: kmem_cache_free+0xcb/0x3d0 proc_free_inode+0x5b/0x80 rcu_core+0x50a/0x1850 The buggy address belongs to the object at ffff8881478fea00 which belongs to the cache proc_dir_entry of size 192 Move proc_remove() into the if_lock-protected list removal helper. Keep it before list_del_rcu() to preserve the ordering required by add_device(). The rename path must then finish replacing the entry before removal, or it observes that the device is no longer on the list.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: bridge: stop fast-leave after deleting a port group br_multicast_leave_group() iterates mp->ports with pp = &p->next in its fast-leave path. After br_multicast_del_pg() removes p, continuing the loop advances pp through the deleted entry. If multicast-to-unicast was enabled, the bridge can hold multiple port groups for the same port and group with different source MAC addresses. Once multicast-to-unicast is disabled, br_port_group_equal() matches those entries by port only. A fast leave can then delete one entry and continue from its stale next pointer, leaving mp->ports pointing at a deleted port group. Fast leave only needs to remove one matching port group. Break after br_multicast_del_pg() so the loop stops before dereferencing the removed entry.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: netfilter: ipset: do not update comments from kernel-side hash adds mtype_resize() copies comment pointers with memcpy(), not the comment objects themselves. During the window after an entry has been copied but before the table swap and backlog replay, the old table is still published for packet-side updates while the replacement-table entry already holds the same ip_set_comment_rcu pointer. If xt_SET --add-set ... --exist hits that old entry in this window, mtype_add() calls ip_set_init_comment() even though packet-side adds carry no comment payload. That call frees the shared comment through the old entry, so the replacement-table entry now holds a stale pointer. When the queued add is replayed on the new table, mtype_add() calls ip_set_init_comment() again and strlen() dereferences the stale pointer. Fix this in mtype_add() by skipping ip_set_init_comment() when ext->target marks a packet-side add. Userspace adds still update comments, while packet-side adds can no longer free comment storage shared with a resize copy.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net/smc: fix socket use-after-free during link group termination __smc_lgr_terminate() drops conns_lock after finding a connection in lgr->conns_all, but before taking a reference on its socket. The connection is embedded in the socket, and its registration reference protects it only while the connection remains in the tree. A concurrent close can unregister the connection and drop that reference, freeing the socket before the termination worker reaches sock_hold(). The race is reachable when close overlaps link group termination. Local stress testing reproduced the use-after-free and KASAN reported: BUG: KASAN: slab-use-after-free in __smc_lgr_terminate.part.0 [smc] Write of size 4 by task kworker/3:3 Workqueue: events smc_lgr_terminate_work [smc] __smc_lgr_terminate.part.0 [smc] The socket was allocated by smc_create(), freed through slab_free_after_rcu_debug(), and was followed by: refcount_t: addition on 0; use-after-free. __smc_lgr_terminate.part.0 [smc] Take the socket reference while conns_lock still protects the tree entry. The unregister path then cannot drop the last reference until termination has finished using the socket.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: fix UAF in l2cap_le_connect_rsp l2cap_le_connect_rsp() obtains a channel via __l2cap_get_chan_by_ident() but neither holds a reference nor uses l2cap_chan_hold_unless_zero() before locking and operating on it. A concurrent l2cap_chan_del() triggered by a remote disconnect can free the channel between the lookup and l2cap_chan_lock(), causing a use-after-free. The BR/EDR counterpart l2cap_connect_rsp() and the sibling handler l2cap_le_command_rej() already use l2cap_chan_hold_unless_zero() to safely hold a reference, but l2cap_le_connect_rsp() was left unprotected. Fix by adding l2cap_chan_hold_unless_zero() after the ident lookup and l2cap_chan_put() on the exit path, consistent with other L2CAP response handlers.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: scsi: libiscsi_tcp: Bound SCSI Response data segment to the connection buffer iscsi_tcp_hdr_dissect() receives the data segment of several PDU types into the fixed-size conn->data buffer, which is allocated for ISCSI_DEF_MAX_RECV_SEG_LEN (8192) bytes. For the LOGIN_RSP, TEXT_RSP, REJECT and ASYNC_EVENT opcodes the dissect path already rejects a PDU whose DataSegmentLength exceeds that buffer. The SCSI Command Response (ISCSI_OP_SCSI_CMD_RSP) path also copies its data segment (sense/response data) into conn->data via iscsi_tcp_data_recv_prep(), but it does so without the same check. The only upstream bound on in.datalen is conn->max_recv_dlength, the initiator's advertised MaxRecvDataSegmentLength, which is commonly negotiated well above 8192 (open-iscsi defaults to 262144). A target that returns a SCSI Response with a DataSegmentLength between 8193 and max_recv_dlength therefore overflows the 8192-byte conn->data buffer. Once the same bound applies, ISCSI_OP_SCSI_CMD_RSP is handled exactly like those responses: bound the data segment, receive it into conn->data when present, and otherwise complete the PDU with no data. Fold the opcode into that case group rather than duplicating the check.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: clear new_transport when removing a peer sctp_process_asconf_param() stores a newly added peer transport in asoc->new_transport. After all parameters in the ASCONF chunk have been processed, sctp_sf_do_asconf() uses this pointer to send a HEARTBEAT to the new transport. An authenticated ASCONF from a remote SCTP peer can add a transport and remove it again with a wildcard DEL-IP parameter in the same chunk. The wildcard deletion preserves the transport on which the ASCONF arrived, but removes the newly added transport through sctp_assoc_del_nonprimary_peers(). The removal does not clear asoc->new_transport, leaving it pointing to the removed transport. sctp_sf_do_asconf() then creates a HEARTBEAT whose chunk->transport points to the removed transport without holding a transport reference. During local address replacement, src_out_of_asoc_ok keeps this HEARTBEAT on control_chunk_list. After the transport is freed by RCU, a successful ASCONF_ACK for the replacement address releases the queued HEARTBEAT and sctp_outq_select_transport() reads the freed transport's state. The issue was found during a static audit of SCTP objects. With an authenticated peer, the reproducer triggered the same KASAN report in 2 of 2 unpatched runs on a KASAN-enabled netdev/main kernel: BUG: KASAN: slab-use-after-free in sctp_outq_select_transport Read of size 4 at addr ffff88800b9bd95c by task python3/197 Call Trace: sctp_outq_select_transport+0x549/0x8b0 [sctp] sctp_outq_flush+0x306/0x2c60 [sctp] sctp_transport_immediate_rtx+0xaf/0x260 [sctp] sctp_process_asconf_ack+0xa48/0xf70 [sctp] Allocated by task 197: sctp_transport_new+0x68/0x650 [sctp] sctp_assoc_add_peer+0x258/0x12a0 [sctp] sctp_process_asconf+0x5e9/0x1090 [sctp] Last potentially related work creation: __call_rcu_common.constprop.0+0x77/0xb70 sctp_assoc_del_nonprimary_peers+0x7c/0xd0 [sctp] sctp_process_asconf+0xd9c/0x1090 [sctp] The first invalid access was a four-byte read of transport->state at net/sctp/outqueue.c:833. The same reproducer completed the full authenticated ASCONF and local-address replacement sequence with this change without a KASAN report or oops. Clear new_transport when its peer is removed, before it can be used to create the HEARTBEAT.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: keep chunk->transport in step with the list it is queued on __sctp_outq_flush_rtx() moves a gap-acked chunk onto another transport's transmitted list without updating chunk->transport: if (chunk->tsn_gap_acked) { list_move_tail(&chunk->transmitted_list, &transport->transmitted); continue; } The chunk then sits on a live transport's list while chunk->transport still names a different one. If that transport is removed - sctp_assoc_rm_peer() from an ASCONF Delete-IP - sctp_transport_free() RCU-frees it and the chunk is left with a dangling pointer. sctp_assoc_rm_peer() scrubs peer->transmitted and asoc->outqueue.out_chunk_list, but the chunk is on neither. The pointer is not followed while tsn_gap_acked is set. A SACK that reneges on the TSN clears the flag, and the next SACK reaches tchunk->transport->flight_size -= sctp_data_size(tchunk); inside the freed transport. KASAN reports a slab-use-after-free read in sctp_check_transmitted(), freed from sctp_assoc_rm_peer(). Both the removal and the SACKs come from the association peer. Set chunk->transport at the move. The ordinary resend path needs nothing: it reaches its list_move_tail() only after sctp_packet_append_chunk() returned SCTP_XMIT_OK, and __sctp_packet_append_chunk() has rebound the chunk by then. Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: bpf, sockmap: Fix sk_redir use-after-free in send verdict sk_psock_msg_verdict() takes a socket reference for psock->sk_redir. tcp_bpf_send_verdict() copies that pointer while holding the source socket lock, but does not take a reference for the local copy before dropping the lock around tcp_bpf_sendmsg_redir(). When apply_bytes keeps the cached verdict active, another sendmsg() on the same source socket can consume the remaining bytes and release the cached reference while the first thread still holds only the raw local pointer: CPU 0 CPU 1 sk_redir = psock->sk_redir apply_bytes remains nonzero release_sock(sk) lock_sock(sk) apply_bytes reaches zero psock->sk_redir = NULL release_sock(sk) tcp_bpf_sendmsg_redir(sk_redir) sock_put(sk_redir) tcp_bpf_sendmsg_redir(sk_redir) The final sock_put() can free sk_redir before CPU 0 dereferences it. KASAN reported: BUG: KASAN: slab-use-after-free in tcp_bpf_sendmsg_redir+0xf39/0x1020 Read of size 8 at addr ffff888108537090 by task poc/87 Call Trace: tcp_bpf_sendmsg_redir+0xf39/0x1020 tcp_bpf_sendmsg+0x977/0x1a50 __sys_sendto+0x32c/0x3a0 __x64_sys_sendto+0xdb/0x1b0 Allocated by task 85: sk_prot_alloc+0x56/0x210 sk_clone+0x6f/0x14b0 inet_csk_clone_lock+0x24/0x740 tcp_create_openreq_child+0x25/0x2710 tcp_v4_syn_recv_sock+0x10a/0xe00 Freed by task 0: __kasan_slab_free+0x43/0x70 slab_free_after_rcu_debug+0xa6/0x1e0 rcu_core+0x50a/0x1850 Last potentially related work creation: __sk_destruct+0x3da/0x540 sk_psock_destroy+0x81e/0xab0 process_one_work+0x63a/0x1070 Take a temporary socket reference while the source socket lock still protects psock->sk_redir, and drop it after tcp_bpf_sendmsg_redir() returns. This keeps each unlocked use independent of cached-verdict ownership.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ip6_tunnel: clear skb2->cb[] in ip6ip6_err() ip6ip6_err() clones an outer IPv6 ICMP error skb, pulls it to the quoted inner IPv6 packet, and then passes the clone to icmpv6_send(). The clone still carries the outer packet's inet6_skb_parm in skb->cb. If the outer packet had a Home Address Option, IP6CB(skb2)->dsthao remains non-zero after skb_pull(). icmpv6_send() later calls mip6_addr_swap(), which uses that stale dsthao offset against the quoted inner packet. A malformed inner destination-options header can then make the HAO lookup and address swap run past the end of the quoted packet and corrupt skb_shared_info. Clear skb2->cb[] before pulling the quoted inner IPv6 packet so the reply path does not reuse metadata left by the outer IPv6 stack.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: tipc: read le->link under the node lock in tipc_node_link_down() tipc_node_link_down() caches the link pointer before taking n->lock: struct tipc_link *l = le->link; /* unlocked */ if (!l) return; tipc_node_write_lock(n); if (!tipc_link_is_establishing(l)) { /* deref l */ ... tipc_link_reset(l); /* write into l */ if (delete) { kfree(l); le->link = NULL; The delete=true caller frees that very object under n->lock, so the lock does not protect the cached pointer against it: - CPU A, delete=false: tipc_rcv() on TIPC_LINK_DOWN_EVT, or the link supervision timer via tipc_node_timeout(), reads l unlocked and then dereferences it under n->lock; - CPU B, delete=true: netlink TIPC_NL_BEARER_DISABLE -> bearer_disable() -> tipc_node_delete_links() -> tipc_node_link_down(n, bearer_id, true) -> kfree(l). The link is freed with plain kfree(), not kfree_rcu(), and for UDP bearers disable_media() only schedules the asynchronous cleanup_bearer() work, so its synchronize_net() runs after the links are already gone. An in-flight CPU A that has read l therefore dereferences freed memory once B frees it: a use-after-free read in tipc_link_is_establishing(), and a use-after-free write via tipc_link_reset() on the establishing branch. The following trace was captured on 7.2.0-rc5-00284-gaf39eb111ce6: BUG: KASAN: slab-use-after-free in tipc_link_is_establishing (net/tipc/link.c:285) Read of size 4 at addr ffff88802e2aa068 by task swapper/2/0 tipc_link_is_establishing (net/tipc/link.c:285) tipc_node_link_down (net/tipc/node.c:1076) tipc_node_timeout (net/tipc/node.c:843) Allocated by task 9549: tipc_link_create (net/tipc/link.c:490) tipc_node_check_dest (net/tipc/node.c:1279) tipc_disc_rcv (net/tipc/discover.c:252) tipc_udp_recv (net/tipc/udp_media.c:389) Freed by task 9549: tipc_node_link_down (net/tipc/node.c:1084) tipc_node_delete_links (net/tipc/node.c:1320) bearer_disable (net/tipc/bearer.c:414) __tipc_nl_bearer_disable (net/tipc/bearer.c:992) Move the le->link read inside tipc_node_write_lock(), so it is serialised against the kfree() in the delete path. A racing teardown now either has not run yet, and we see a valid link, or has already run, and we see NULL.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: vxlan: do not arm the ageing timer on a device that is down vxlan_changelink() arms vxlan->age_timer whenever the requested ageing interval differs from the configured one: if (conf.age_interval != vxlan->cfg.age_interval) mod_timer(&vxlan->age_timer, jiffies); There is no netif_running() test, so the timer is armed even on a device that was never brought up. The only synchronous cancel in the driver is the timer_delete_sync() in vxlan_stop(), which is .ndo_stop. netif_close_many() drops devices without IFF_UP before __dev_close_many() runs, so that cancel is skipped for such a device. vxlan_setup() sets dev->needs_free_netdev = true and age_timer is a member of struct vxlan_dev, so free_netdev() releases the allocation the timer lives in while it is still queued on a timer_base. expire_timers() unlinks the entry before it loads timer->function, so the timer core writes through the freed object's list pointers: BUG: KASAN: slab-use-after-free in __run_timers+0x208/0x654 Write of size 8 at addr ffff00001adace68 by task true/192 __asan_store8+0x84/0xac __run_timers+0x208/0x654 run_timer_softirq+0x154/0x18c Allocated by task 189: alloc_netdev_mqs+0x64/0x720 rtnl_create_link+0x4ac/0x520 rtnl_newlink+0x758/0xd00 Freed by task 191: netdev_release+0x40/0x58 netdev_run_todo+0x4a4/0x8c0 rtnl_dellink+0x200/0x4e8 The rtnl operations involved are netns-scoped, so an unprivileged user can perform them in a new user and network namespace. Arming the timer on a down device never had an effect: vxlan_cleanup() returns early on !netif_running(), and vxlan_open() arms the timer for any non-zero interval once the device is brought up. Add the missing test. Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: xdp: reject clones that overrun skb_shared_info tailroom xdpf_clone() clones broadcast copies into a single page and sets frame_sz to PAGE_SIZE. __xdp_build_skb_from_frame() later treats that page like a normal XDP frame and expects the usual skb_shared_info tailroom at the end of the buffer. The current check only rejects frames whose linear xdp_frame header, headroom, and packet data exceed PAGE_SIZE. A source frame backed by a larger allocation can still satisfy that check while extending into the clone's required shared-info area. When such a clone is converted back into an skb, build_skb_around() places skb_shared_info over live packet bytes and later writes can corrupt XDP return metadata. Reject clones unless their linear area fits inside SKB_WITH_OVERHEAD(PAGE_SIZE), matching the tailroom requirement already enforced by the XDP-to-skb conversion path.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ipv6: prevent in6_dev_get() from resurrecting inet6_dev in6_dev_get() reads dev->ip6_ptr under RCU and then unconditionally increments its refcount. Device teardown can clear the pointer and drop the last reference between these operations. The increment then resurrects an object whose RCU free has already been queued, so callers can use it after it is freed. Use refcount_inc_not_zero() and return NULL when the object has already reached zero. RCU keeps the memory accessible through the attempted reference acquisition, and a successful increment pins the object for the caller. An independent run on the exact unpatched 6f5156d7a31a (v7.2-rc3) kernel reproduced the invalid reference acquisition as UID 1000: refcount_t: addition on 0; use-after-free. ip6_mc_source+0xef4/0x17e0 It was followed by the corresponding reference underflow in ip6_mc_source(). The supplied trace from the same unpatched revision additionally shows the access after the RCU read-side section ends: BUG: KASAN: slab-use-after-free in mutex_lock+0x76/0xe0 Write of size 8 at addr ffff888015b50240 by task poc/1219 Bug found and triaged by OpenAI Security Research and validated by Trail of Bits.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: clear control chunk transport if it is being removed sctp_make_heartbeat_ack() caches the destination transport in chunk->transport without taking a reference. When src_out_of_asoc_ok is enabled, the HEARTBEAT ACK may remain queued on control_chunk_list instead of being transmitted immediately. If the peer transport is removed while the chunk is still queued, sctp_assoc_rm_peer() drops the transport and schedules it for RCU freeing, but only clears cached transport pointers in out_chunk_list. The queued control chunk therefore retains a dangling transport pointer. Once an ASCONF_ACK clears the suppression and the queued control chunk is transmitted, SCTP dereferences the stale transport pointer, leading to a use-after-free. Fix this by also clearing chunk->transport for queued control chunks in control_chunk_list when removing the transport.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_api: Always acquire rtnl_lock when destroying locked classifiers Another challenge with unlocked filters. There is a short window in tc_new_tfilter where a tcf_proto can be found and briefly referenced by a totally unrelated, unlocked classifier's request and cause a race. Feng created a poc which created this race with two threads, one creating a u32 filter and other a flower filter in the same chain/prio: 1. Both threads enter tc_new_tfilter, both find the chain empty, both drop filter_chain_lock 2. u32 finishes tcf_proto_create("u32") first, calls tcf_chain_tp_insert_unique() -> inserts u32_tp into the chain 3. flower finishes tcf_proto_create("flower") later, calls tcf_chain_tp_insert_unique() -> tcf_chain_tp_find() now sees u32_tp already there, takes a reference on it, destroys flower's own tp_new and returns u32_tp to the caller. Flower then hits the kind mismatch check (because it requested for kind "flower" but tp->ops->kind is "u32") and goes through the errout path which calls tcf_proto_put() on u32_tp. If the u32 thread has already gone through its own errout (its change() call failed on the PoC's empty options) and dropped its create and insert refs, flower's put is the last one and drops u32_tp's refcnt to zero. At this point tp->ops->destroy() runs in a context that never took rtnl_lock. When that happens, it might cause a UAF like the following (illustrated by the PoC): [ +0.000710] BUG: KASAN: slab-use-after-free in u32_init (net/sched/cls_u32.c:393) [ +0.000281] Read of size 8 at addr ffff888120022f00 by task poc_feng_xue/524 Call Trace: u32_init (net/sched/cls_u32.c:393) tc_new_tfilter (net/sched/cls_api.c:2378) Allocated by task 526: u32_init (net/sched/cls_u32.c:378) tc_new_tfilter (net/sched/cls_api.c:2378) Freed by task 522: kfree u32_destroy (net/sched/cls_u32.c:662) tcf_proto_destroy (net/sched/cls_api.c:446) tcf_proto_put (net/sched/cls_api.c:459) tc_new_tfilter (net/sched/cls_api.c:2459) Fix this by having tcf_proto_destroy() take rtnl_lock around tp->ops->destroy() for locked classifiers whenever rtnl is not held. To explain why I used a temp variable "not_lockless" I'd like to point to a semi-related note on rtnl_held vs TCF_PROTO_OPS_DOIT_UNLOCKED (adding here for future cleanup if deemed necessary): The rtnl_held parameter and the TCF_PROTO_OPS_DOIT_UNLOCKED flag are redundant sources of truth for whether rtnl_lock is held. Among the nine classifier destroy(..rtnl_held..) callbacks, only flower consults the rtnl_held parameter which it propagates to tc_setup_cb_destroy() and tc_setup_cb_call(). The other eight (u32, flow, bpf, cgroup, route, basic, fw, mall) ignore it entirely;-> those that call tc_setup_cb_destroy() (u32, bpf, mall) hardcode true always instead of forwarding the parameter. A future cleanup should remove the rtnl_held parameter from the destroy callback signature entirely and have callers rely solely on their knowledge whether they are running in an unlocked context.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net/smc: fix qentry overwrite for CONFIRM_LINK and ADD_LINK_CONT in smc_llc_event_handler() The SMC_LLC_CONFIRM_LINK / SMC_LLC_ADD_LINK_CONT branch in smc_llc_event_handler() stores an incoming qentry into the local LLC flow without first checking whether a qentry is already pending. If a malicious or buggy peer sends a second CONFIRM_LINK or ADD_LINK_CONT request while a flow is active and flow->qentry is already set, smc_llc_flow_qentry_set() overwrites the pointer without freeing the previous allocation, leaking one kmalloc-96 object per spurious message. The sibling SMC_LLC_DELETE_LINK branch already has the correct !flow->qentry guard. Apply the same guard to the CONFIRM_LINK/ADD_LINK_CONT branch so that a duplicate message when qentry is already occupied falls through to break and is freed by the kfree(qentry) at the out: label, rather than silently leaking the existing allocation. The response direction (smc_llc_rx_response()) is unaffected: it already guards with flow->qentry at the equivalent site and drops duplicate responses correctly.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: ethernet: ti: am65-cpsw-nuss: Fix port_id extraction from SRC TAG On the packet reception path, the ID of the MAC Port on which the packet was received, is embedded in the RX DMA Descriptor's metadata. The ID is extracted using the helper function cppi5_desc_get_tags_ids() which fills in the 16-bit Source Tag into the 'port_id' variable. However, it is only the lower 8-bits of the 16-bit Source Tag that represent the MAC Port ID, while the upper 8-bits are Hardware-Reserved and carry an arbitrary value. With the existing logic, sporadic kernel crash is observed due to the subsequent driver code accessing out-of-bound memory because of an invalid port_id. Hence, fix the port_id extraction logic to use only the lower 8-bits of the Source Tag as the MAC Port ID.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: macvlan: inherit needed_headroom and needed_tailroom from lowerdev macvlan devices inherit hard_header_len from lowerdev during macvlan_init(), but leave needed_headroom and needed_tailroom set to 0. When the underlying lowerdev requires extra headroom or tailroom for headers/trailers (e.g. macsec, ipsec, wireguard, tunnels, or veth with rx headroom), upper layers calculating packet headroom and tailroom fail to reserve sufficient space. This can result in reallocation overhead, skb headroom underflows, or KASAN slab-use-after-free crashes when dev_hard_header() / macvlan_hard_header() prepends header data or when lower devices append tailroom. Fix this by: 1. Inheriting needed_headroom and needed_tailroom from lowerdev in macvlan_init(). 2. Propagating needed_headroom and needed_tailroom updates to attached macvlans in macvlan_device_event() when receiving NETDEV_FEAT_CHANGE events.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ipvlan: inherit needed_headroom and needed_tailroom from phy_dev ipvlan devices inherit hard_header_len from phy_dev during ipvlan_init(), but leave needed_headroom and needed_tailroom set to 0. When the underlying phy_dev (or stacked lower device) requires extra headroom or tailroom for headers/trailers (e.g. macsec, ipsec, wireguard, tunnels, or veth with rx headroom), upper layers calculating packet headroom and tailroom fail to reserve sufficient space. This can result in reallocation overhead, skb headroom underflows, or KASAN slab-use-after-free crashes when dev_hard_header() / ipvlan_hard_header() prepends header data or when lower devices append tailroom. Fix this by: 1. Inheriting needed_headroom and needed_tailroom from phy_dev in ipvlan_init(). 2. Propagating needed_headroom and needed_tailroom updates to attached ipvlans in ipvlan_device_event() when receiving NETDEV_FEAT_CHANGE events.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: validate cookie AUTH state before use When cookie authentication is disabled, COOKIE_ECHO restores fixed-size AUTH fields directly from peer-controlled cookie bytes. A forged RANDOM length, HMAC list, or CHUNKS list can then reach association consumers with lengths or identifiers that were never validated against the local backing arrays. A forged RANDOM length can cause out-of-bounds reads during key-vector construction. A forged HMAC identifier also caused a 32-byte write past a zero-length AUTH chunk, providing a primitive for a local privilege escalation chain. Validate the cookie's RANDOM, HMACS, and CHUNKS parameters at the cookie trust boundary before copying them into the association. Reject invalid types, malformed lengths, unsupported HMAC identifiers, HMAC lists without SHA1, and forbidden chunk ids.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Fix UVD decode image min size calculation This needs to use pitch instead of width. Also reject pitch over 4096 to avoid overflow. (cherry picked from commit b41c8cb12e202b220353332ab87dc01a11f69304)


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: fbdev: bound mode sysfs output to the sysfs buffer mode_string() uses snprintf() which can return a value larger than the remaining buffer space. show_modes() accumulates the return value into i without checking whether i has reached PAGE_SIZE, causing the offset to advance past the sysfs buffer if the modelist is long enough. Add a size parameter to mode_string() and use scnprintf() to return only the bytes actually written. Add an early return when offset already exceeds the buffer. In show_modes(), stop accumulating once the buffer is full.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ipvs: do not propagate one-packet flag to synced conns Synced connections can be created before their destination exists. When the destination is later added, ip_vs_bind_dest() copies connection flags from the destination into cp->flags. IP_VS_CONN_F_ONE_PACKET connections are not synced. If a synced connection inherits IP_VS_CONN_F_ONE_PACKET while it is already hashed, expiry can treat it as a one-packet connection and skip unlinking the existing conn_tab node, leaving stale hash nodes pointing at a freed struct ip_vs_conn. Drop IP_VS_CONN_F_ONE_PACKET from destination flags when binding synced connections.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ALSA: pcm: wake linked drain waiters on unlink snd_pcm_drain() on a linked stream parks an on-stack wait entry on the drained peer's runtime->sleep, and after schedule_timeout() removes it only if that peer is still found in the caller's group. If group membership changes during the wait and the sleep ends by signal or timeout (so autoremove_wake_function() does not run), finish_wait() is skipped and snd_pcm_drain() returns with the entry still queued on that stream's sleep list; a later wake_up() then walks a freed stack frame. This is reachable by unlinking either the drained or the draining stream. Unlike the close path (snd_pcm_drop() -> snd_pcm_post_stop()), snd_pcm_unlink() never wakes the sleep queues. Wake every group member under the group lock before the membership change, so a linked drainer is released and drops its entry while the streams are still grouped. The window was opened when snd_pcm_link_rwsem stopped being held across the wait and the removal became conditional on group membership (see Fixes). The later switch to finish_wait() kept that conditional removal, so the signal/timeout case remained.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: serial: amba-pl011: synchronize DMA teardown dmaengine_terminate_all() does not wait for a running callback, so the TX callback can still touch the TX buffer after it is freed. The RX poll timer reads the RX buffers without the port lock. Switch to dmaengine_terminate_sync() and delete the RX timer before freeing the buffers.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: fbdev: serialize mode sysfs access with lock_fb_info() show_mode(), show_modes(), and store_mode() access fb_info->modelist and fb_info->mode without holding lock_fb_info(). store_modes() takes lock_fb_info() while replacing the modelist and freeing the old one. A concurrent reader or writer can load a pointer to an old modelist entry before store_modes() frees it, then dereference freed memory or store a stale freed pointer in fb_info->mode. Take lock_fb_info() in show_mode(), show_modes(), and store_mode() to serialize with store_modes(). In show_mode(), copy the mode to the stack and format after dropping the lock. In store_mode(), split activate() into a _locked variant to avoid double-locking, and hold the locks for the modelist walk, mode conversion, activation, and fb_info->mode assignment together.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: bound SGL data length before allocating command buffers nvmet_tcp_map_data() reads the host-controlled 32-bit sgl->length and, for the in-capsule offset descriptor (type 0x01), checks it against port->inline_data_size before use. Any other SGL descriptor type -- including the non-inline transport SGL data-block descriptor (type (NVME_TRANSPORT_SGL_DATA_DESC << 4) | NVME_SGL_FMT_TRANSPORT_A, the type a real host uses for out-of-capsule writes) skips that check entirely and falls straight through to: cmd->req.sg = sgl_alloc(len, GFP_KERNEL, &cmd->req.sg_cnt); with len taken directly from the wire, unbounded up to 4 GiB. nvmet_req_init() only parses the command and never inspects sgl->length, and nvmet_check_transfer_len() -- the only other place transfer_len is validated -- runs later, from req->execute(), after the allocation has already happened. For a write command the target responds with an R2T and parks the command waiting for the host to send the data; if the host (or an unauthenticated peer that simply never follows up) never does, the sgl_alloc() buffer stays resident for the life of the command. NVMe/TCP has no mandatory authentication in the default configuration, so any peer able to reach the target portal and complete a Fabrics connect can drive this with a single crafted command, repeatable across queues and connections for amplification. This is unbounded kernel memory allocation triggered by a remote, effectively unauthenticated peer. Validate len against the same NVMET_TCP_MAXH2CDATA ceiling this file already uses to bound per-PDU H2C data, for every SGL descriptor type, before doing any allocation. This closes the gap for the non-inline descriptor while leaving the existing, tighter inline_data_size check in place for the in-capsule case. Runtime-verified on a v6.19 KASAN stand: with this bound in place, a crafted write command carrying an oversized non-inline SGL length is rejected before sgl_alloc() runs, where the same request previously drove an unbounded ~256 MiB kernel allocation (up to 4 GiB) that stayed resident pending an R2T the host never satisfies.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ipv6: seg6: clear IPv4 control block on IPIP decapsulation End.DX4 and End.DT4 decapsulate an IPv4 packet through decap_and_validate() and send it directly to IPv4 routing. The inner packet therefore bypasses ip_rcv_core(), which normally clears IPCB before IPv4 interprets skb->cb. The skb instead retains IP6CB data from the outer packet. IP6CB and IPCB use the same skb->cb storage, so IP6CB(skb)->lastopt overlaps IPCB(skb)->opt.optlen and srr, while IP6CB(skb)->nhoff overlaps rr and ts. The sender can make the stale optlen byte nonzero with a valid outer extension-header chain. The reproducers put an eight-byte Destination Options header immediately after the 40-byte IPv6 header and before the Segment Routing Header. ipv6_destopt_rcv() records the sender-controlled Destination Options offset in both lastopt and nhoff, setting them to 40. On the reproduced little-endian x86-64 kernel, IPv4 therefore sees optlen = 40 and rr = 40. Both tcp_v4_save_options() and __ip_options_echo() skip option copying when optlen is zero. Here optlen is 40, so the TCP SYN path allocates room for 40 bytes of option data and calls __ip_options_echo(). The stale rr value makes that function read inner packet byte 41 as the Record Route option length. The reproducers set that sender-controlled byte to 255, so __ip_options_echo() copies 255 bytes into the 40-byte option-data area. Separate End.DX4 and End.DT4 reproducers on the unpatched v7.2-rc5 kernel both produced: BUG: KASAN: slab-out-of-bounds in __ip_options_echo() Write of size 255 The relevant End.DX4 call path is: __ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dx4_finish input_action_end_dx4 The relevant End.DT4 call path is: __ip_options_echo tcp_v4_route_req tcp_conn_request tcp_v4_conn_request tcp_rcv_state_process tcp_v4_do_rcv tcp_v4_rcv ip_protocol_deliver_rcu ip_local_deliver_finish ip_local_deliver input_action_end_dt4 tcp_v4_save_options() is inlined into the tcp_v4_route_req() path, so it does not appear as a separate frame. When decap_and_validate() handles IPPROTO_IPIP, save the ingress interface from IP6CB, clear IPCB, and restore the saved value. Doing this in the common decapsulation path covers End.DX4, End.DT4, and End.DT46's IPv4 arm. Use IP6CB(skb)->iif rather than skb->skb_iif. These actions run after l3mdev processing, which can replace skb_iif with the L3 master; IP6CB iif still records the receiving interface set at IPv6 ingress.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net/packet: defer vmalloc TX_RING free until skbs finish AF_PACKET TX_RING skbs keep a raw pointer to their ring frame. The skb page references preserve page-backed ring blocks after pg_vec is freed, but they do not preserve a vmalloc mapping. tpacket_destruct_skb() currently drops the pending reference before writing the timestamp and TP_STATUS_AVAILABLE to the frame. Move the decrement after those stores. The smp_wmb() in __packet_set_status() orders the frame stores before the decrement. Also recheck pending TX frames under pg_vec_lock before non-closing ring replacement, so a racing send cannot add a pending skb between the initial check and the ring swap. Ring allocation can produce a mixture of page-backed and vmalloc-backed blocks. Allocate deferred-work storage during TX ring setup when the first vmalloc-backed block is encountered, and keep its pointer in the pg_vec allocation header. If allocation fails, return -ENOMEM from ring setup. On socket close, a non-NULL pointer identifies a vmalloc-backed vector without a scan. If TX skbs remain, defer the whole vector to system_long_wq. After pg_vec is detached, a late destructor can skip the pending decrement. Use socket write-memory accounting as the deferred lifetime gate instead: an skb remains charged through its final sock_wfree(), after all ring-frame accesses. The delayed work retains a socket reference and reschedules itself until no TX skbs remain. Move pending_refcnt release to packet_sock_destruct() so late skb destructors and deferred cleanup can safely use it after packet_release(). Page-backed teardown remains synchronous, and no lock is added to the TX completion hot path.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: xfrm: ah6: validate routing header segments_left AH6 rearranges routing-header addresses before computing or verifying the ICV. ipv6_rearrange_rthdr() assumes that segments_left is not larger than the number of addresses described by the routing header's hdrlen field. That assumption does not hold for raw IPv6 HDRINCL packets. A packet with hdrlen equal to 2 describes one address, but can carry an arbitrary segments_left value. With segments_left equal to 255, the function moves its address pointer 4,064 bytes backwards and passes a 4,064-byte length to memmove(), resulting in an out-of-bounds access. Validate the invariant locally before modifying the routing header or performing any address-pointer arithmetic, and propagate malformed-header errors to the existing AH6 input and output error paths.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: tls: device: fix out-of-bounds write in tls_append_frag() Found with syzkaller and a local syzbot instance running on top of a netdevsim TLS offload emulation; tls_device.c is otherwise only reachable on a machine with a NIC that implements the offload. tls_push_data() only checks whether the open record still has room for another frag at the bottom of its loop, and the MSG_MORE early break skips that check. The record survives to the next syscall with the frag count it already had, and tls_append_frag() does not check either, so with TLS_TX_ZEROCOPY_RO every splice(SPLICE_F_MORE) of a byte or two adds a non-coalescing pipe page and num_frags walks off the end of tls_record_info.frags[MAX_SKB_FRAGS]. Once the record is pushed, tls_push_record() runs the same index over sg_tx_data[MAX_SKB_FRAGS] and the sg_set_page() writes land on the destruct_work that follows it, which the workqueue then calls. The byte limit is fine because copy drops to 0 and the loop falls through to the same check; the frag count has no such feedback. Push the record rather than keep a full one open, which is what a plain TCP socket does - tcp_sendmsg_locked() uses tcp_mark_push() and new_segment in both the copy and the MSG_SPLICE_PAGES paths, and tls_sw already sets full_record when the sk_msg ring fills up, MSG_MORE or not. BUG: KASAN: slab-out-of-bounds in tls_append_frag ( net/tls/tls_device.c:269) Write of size 8 at addr ffff8881104d1530 by task tls_oob/450 CPU: 2 UID: 0 PID: 450 Comm: tls_oob Not tainted 7.2.0-rc7+ #329 PREEMPT Call Trace: <TASK> dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120) print_report (mm/kasan/report.c:378 mm/kasan/report.c:482) kasan_report (mm/kasan/report.c:595) tls_append_frag (net/tls/tls_device.c:269) tls_push_data (net/tls/tls_device.c:518) tls_device_sendmsg (net/tls/tls_device.c:583) inet_sendmsg (net/ipv4/af_inet.c:865) sock_sendmsg (net/socket.c:775 net/socket.c:790 net/socket.c:813) splice_to_socket (fs/splice.c:884) do_splice (fs/splice.c:936 fs/splice.c:1349) __do_splice (fs/splice.c:1431) __x64_sys_splice (fs/splice.c:1634 fs/splice.c:1616) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) </TASK> and, once the record is pushed: UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:300:24 index 18 is out of range for type 'skb_frag_t [17]' UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:301:41 index 18 is out of range for type 'scatterlist [17]' UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:302:39 index 18 is out of range for type 'scatterlist [17]' UBSAN: array-index-out-of-bounds in net/tls/tls_device.c:307:38 index 26 is out of range for type 'scatterlist [17]' kernel tried to execute NX-protected page - exploit attempt? (uid: 0) BUG: unable to handle page fault for address: ffffea000411a680 #PF: supervisor instruction fetch in kernel mode #PF: error_code(0x0011) - permissions violation Oops: Oops: 0011 [#1] SMP KASAN PTI Workqueue: ktls_device_destruct 0xffffea000411a680 RIP: 0010:0xffffea000411a680 Call Trace: <TASK> worker_thread (kernel/workqueue.c:3405 kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245) </TASK>


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Reject UVD message with invalid number of h265 refs Same change as for h264, avoids overflow later when calculating min dpb size. (cherry picked from commit a4b0720e4f1601f97f59a2be9c1b4b94fa6527d5)


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: net: tun: bound receive headroom tun_get_user() uses tun->align both as skb headroom and when choosing how much packet data to keep linear. OVS can propagate an oversized headroom request from another port to TUN or TAP. When align is larger than the usable space in a one-page skb head, SKB_MAX_HEAD(align) underflows and the result becomes negative when stored in good_linear. That value later wraps when assigned to the size_t linear variable, and tun_alloc_skb() can place skb->data outside the allocated head. Bound the headroom stored by TUN to the one-page skb-head budget and the largest non-sentinel 16-bit skb header offset. Leave one linear byte for raw TUN and a complete Ethernet header for TAP, including NET_IP_ALIGN. Also pull the raw-TUN protocol byte and the TAP Ethernet header before accessing them, so these checks remain safe for nonlinear skbs supplied by other allocation paths.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: sctp: stop processing a packet once its association is deleted sctp_endpoint_bh_rcv() looks the association up only when chunk->asoc is NULL, and caches the result in chunk->asoc and chunk->transport without taking a reference. A packet that matches no association is handed to the endpoint, so a peer can bundle COOKIE ECHO, SHUTDOWN and SHUTDOWN ACK in one packet. The COOKIE ECHO creates the association, the SHUTDOWN chunk caches it, and with the outqueue empty the SHUTDOWN ACK reaches sctp_sf_do_9_2_final(), so the association and its transports are freed. The endpoint loop has no counterpart to the asoc->base.dead check in sctp_assoc_bh_rcv(). The next chunk writes to last_time_heard in the freed transport and is then passed to sctp_do_sm() with the freed association. The transport is freed through RCU, so this needs the packet to come off the socket backlog, where the loop runs in task context. The endpoint loop cannot do the same check: it holds no reference on the association, so reading asoc->base.dead would itself be a use-after-free. Mark the packet for discard in the command interpreter, just before it deletes the association. That is also before sctp_inq_free() releases the chunk on the association receive path. sctp_sf_do_5_2_4_dupcook() issues SCTP_CMD_DELETE_TCB for the temporary association, while the one the packet belongs to stays alive. A restarting peer can bundle DATA behind its COOKIE ECHO, so compare against chunk->asoc and leave that case alone.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: nvme-tcp: do not accept C2HData based on blk_rq_payload_bytes() alone Commit 25e5cb780e62 ("nvme-tcp: fix possible crash in write_zeroes processing") established that blk_rq_payload_bytes() must not be read without first checking blk_rq_nr_phys_segments(), and recorded the result in nvme_tcp_setup_cmd_pdu() as req->data_len. The receive side was left as it was. The two differ for REQ_OP_WRITE_ZEROES, which has no physical segments but a non-zero blk_rq_bytes(), so setup leaves req->iter untouched while the receive gate lets a C2HData through and nvme_tcp_recv_data() copies into whatever the previous command on that tag left there. The driver-private area is zeroed only when the tag set is allocated. Reproduced with a test target that leaves a residual iterator on a tag and then sends a C2HData for a WRITE_ZEROES command on the same tag: BUG: KASAN: wild-memory-access in _copy_to_iter+0x642/0x1330 Write of size 512 at addr ffe728c2175dfa81 by task kworker/0:1H/103 CPU: 0 UID: 0 PID: 103 Comm: kworker/0:1H Not tainted 7.2.0-rc5-NVMETCP-gf5098b6bae76 #1 PREEMPT(lazy) Hardware name: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, arch_caps fix, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Workqueue: nvme_tcp_wq nvme_tcp_io_work Call Trace: <TASK> dump_stack_lvl+0x53/0x70 kasan_report+0xce/0x100 ? _copy_to_iter+0x642/0x1330 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x3c/0x60 _copy_to_iter+0x642/0x1330 ? __pfx_sock_has_perm+0x10/0x10 ? worker_thread+0x45b/0xd10 ? __pfx__copy_to_iter+0x10/0x10 ? _raw_spin_lock_bh+0x83/0xe0 ? __pfx__raw_spin_lock_bh+0x10/0x10 __skb_datagram_iter+0xf3/0x820 ? __pfx_simple_copy_to_iter+0x10/0x10 ? __asan_memcpy+0x3c/0x60 ? skb_copy_bits+0x58d/0x830 skb_copy_datagram_iter+0x37/0x120 nvme_tcp_recv_skb+0xa07/0x4320 ? __pfx_nvme_tcp_recv_skb+0x10/0x10 __tcp_read_sock+0x1ab/0x810 ? __pfx_nvme_tcp_recv_skb+0x10/0x10 ? __pfx_lock_sock_nested+0x10/0x10 ? __pfx___tcp_read_sock+0x10/0x10 nvme_tcp_try_recv+0x152/0x1e0 ? __pfx_nvme_tcp_try_recv+0x10/0x10 ? __pfx_mutex_unlock+0x10/0x10 nvme_tcp_io_work+0x1e4/0x6c0 ? __schedule+0x181a/0x49f0 ? __pfx_nvme_tcp_io_work+0x10/0x10 process_one_work+0x633/0x1030 Keep the blk_rq_payload_bytes() test and add req->data_len to it. The old test is what rejects a C2HData naming a tag that is no longer in flight, because blk_update_request() zeroes rq->__data_len on completion; req->data_len and req->curr_bio are driver-private and survive completion, so they cannot stand in for it. Setup initialises the iterator only when both req->curr_bio and req->data_len are set, so the gate now tests the same two.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Fix pcl_for_each_segment for empty chunks When a parsed chunk list contains a chunk whose ch_segcount is zero, pcl_for_each_segment computes its inclusive upper bound as &chunk->ch_segments[ch_segcount - 1]. ch_segcount is u32, so the subtraction wraps to 0xFFFFFFFF and the bound lands far past the ch_segments flex array. The loop body then walks unrelated memory at sizeof(struct svc_rdma_segment) stride until it faults. A zero-segcount chunk is reachable from the wire: xdr_check_write_chunk() only rejects segcount values greater than rc_maxpages, and pcl_alloc_write() links a freshly allocated chunk onto rc_write_pcl/rc_reply_pcl before its segment-fill loop runs, so a Write or Reply chunk advertising zero segments leaves ch_segcount == 0 on the list. When the transport has negotiated Send-With-Invalidate, svc_rdma_get_inv_rkey() iterates all four PCLs with pcl_for_each_segment and dereferences segment->rs_handle on each iteration, turning the underflow into an out-of-bounds read and a general protection fault. xdr_check_write_list / xdr_check_reply_chunk pcl_alloc_write() chunk = pcl_alloc_chunk(...) /* ch_segcount = 0 */ list_add_tail(&chunk->ch_list, &pcl->cl_chunks) /* fill loop iterates zero times for wire segcount 0 */ svc_rdma_get_inv_rkey() pcl_for_each_chunk(rc_write_pcl) pcl_for_each_segment(segment, chunk) pos <= &ch_segments[0u - 1u] /* 0xFFFFFFFF */ segment->rs_handle /* OOB read -> GPF */ Fix by switching the macro to a half-open upper bound that uses ch_segcount directly. For ch_segcount == 0 the loop start equals the loop end and the body is skipped; for ch_segcount > 0 the iteration range is unchanged. All six existing call sites in net/sunrpc/xprtrdma/svc_rdma_recvfrom.c and net/sunrpc/xprtrdma/svc_rdma_rw.c remain correct under the new bound, so no caller changes are needed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: svcrdma: Fix offset arithmetic in read_chunk_range svc_rdma_read_chunk_range() walks a Read chunk's segment list to build a sub-range starting at byte offset and spanning length bytes for a Position-Zero or Call chunk. Two arithmetic defects in the per-segment loop produce wrong DMA lengths and a u32 underflow: pcl_for_each_segment(segment, chunk) { if (offset > segment->rs_length) { offset -= segment->rs_length; continue; } dummy.rs_handle = segment->rs_handle; dummy.rs_length = min_t(u32, length, segment->rs_length) - offset; dummy.rs_offset = segment->rs_offset + offset; First, the skip predicate uses '>' instead of '>='. When offset equals the segment's full rs_length, the segment is fully consumed and should be skipped, but the loop falls through into the body. The resulting dummy.rs_length is min_t(u32, length, rs_length) - rs_length, which underflows to a near-UINT_MAX u32 when length is smaller than rs_length, or is zero otherwise. Second, the length formula subtracts offset from the min_t() result rather than from segment->rs_length before the cap. For offset > 0 the segment's residual is rs_length - offset, not rs_length, so the cap must be applied to the residual. With the current bracketing, whenever length is smaller than rs_length - offset the per-segment length becomes length - offset instead of length, silently dropping offset bytes from the rebuilt chunk. Combined with the boundary case above it also enables the u32 underflow path, which propagates a huge nr_bvec into svc_rdma_build_read_segment() and a multi-MiB kmalloc_array_node() in svc_rdma_get_rw_ctxt(). Additionally, svc_rdma_read_call_chunk() can invoke this function with length == 0 when the last Read chunk ends exactly at the end of the Call chunk. With the corrected >= predicate, every segment is skipped and the function returns the initial -EINVAL, rejecting a valid request. Return success immediately when length is zero. Also break out of the loop once length is fully consumed to avoid passing zero-length segments to svc_rdma_build_read_segment(). Fix by using '>=' so a fully-consumed segment is skipped, by moving '- offset' inside min_t() so the cap is applied to the segment's residual length, by returning success for zero-length requests, and by stopping iteration when the requested range has been consumed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: fix gssx_dec_option_array error path bugs Four coupled defects in the gssx XDR option-array decoder make the error paths unsafe: a NULL deref in the caller, a refcount leak on the decoded group_info, and a latent use-after-free that the leak fix would otherwise expose. gssx_dec_option_array() sets oa->count = 1 before allocating oa->data. If that allocation fails, -ENOMEM is returned with oa->count == 1 and oa->data == NULL. All other error paths jump to free_oa: which frees oa->data and NULLs it but also leaves oa->count == 1. The caller trusts the count: gssp_accept_sec_context_upcall() gssx_dec_accept_sec_context() gssx_dec_option_array() /* fails, count=1 data=NULL */ data = res.options.data[0].value /* NULL deref */ Independently, free_creds: releases the partially decoded svc_cred with a bare kfree(creds). gssx_dec_linux_creds() installs a groups_alloc() result into creds->cr_group_info; that object is kvmalloc-backed and refcounted, and only put_group_info() reaches kvfree(). A plain kfree(creds) drops the wrapper and leaks the group_info allocation. The natural fix for the leak is to call free_svc_cred(creds) before kfree(creds), but free_svc_cred() invokes put_group_info() on creds->cr_group_info unconditionally when non-NULL. The existing out_free_groups: path in gssx_dec_linux_creds() already called groups_free() on that pointer without clearing it, so once free_svc_cred() is wired in, the subsequent put_group_info() would touch freed memory. Fix all four together: - Move the oa->count = 1 assignment below the oa->data allocation so it is never set when oa->data is NULL. - Reset oa->count to 0 at free_oa: so count and data stay coherent and the caller sees an empty option array. - Call free_svc_cred(creds) before kfree(creds) at free_creds: so the refcounted cr_group_info is released. free_svc_cred() either NULL-guards each field explicitly (cr_group_info has an if() check) or delegates to a helper that is NULL-safe itself (kfree for the string fields, gss_mech_put() which guards with if(gm) at gss_mech_switch.c:342), so it is safe to call on a partially decoded svc_cred where only cr_uid/cr_gid/cr_group_info have been written and everything else is zero from kzalloc. - In gssx_dec_linux_creds()'s out_free_groups: path, release cr_group_info with put_group_info() rather than groups_free() so the teardown matches free_svc_cred()'s refcount-aware path, and clear the pointer so a later free_svc_cred() on the same creds does not release it a second time.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: xdr_buf_trim: clamp buf->len to avoid underflow xdr_buf_trim() trims `len` bytes from the tail of an xdr_buf by walking the tail, pages, and head iovecs. Each per-section step uses min_t() so it never removes more bytes than that section holds, but the final accounting at the fix_len label subtracts the total bytes actually consumed from buf->len without any clamp: fix_len: buf->len -= (len - trim); When the caller has set buf->len to a value smaller than the sum of the iov_lens, (len - trim) can exceed buf->len and the unsigned subtraction wraps to near UINT_MAX. gss_krb5_unwrap_v2() reaches xdr_buf_trim() in exactly that state: buf->head[0].iov_len -= GSS_KRB5_TOK_HDR_LEN + headskip; buf->len = len - (GSS_KRB5_TOK_HDR_LEN + headskip); xdr_buf_trim(buf, ec + GSS_KRB5_TOK_HDR_LEN + tailskip); buf->len is a small wire-derived value while the iov_lens are at page scale, so the per-section loops legitimately consume far more bytes than buf->len records. The wrapped buf->len then propagates as the authoritative stream bound into every downstream XDR decoder. Fix by clamping the decrement so buf->len bottoms out at zero: buf->len -= min_t(unsigned int, buf->len, len - trim); On the normal path where the iov_lens sum to buf->len, (len - trim) is always <= buf->len and the result is identical to before. No callers change behavior outside the underflow case.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: RFCOMM: serialize security confirmation handling rfcomm_security_cfm() looks up a session on session_list and then walks its DLC list without holding rfcomm_mutex. Since RFCOMM session teardown uses rfcomm_mutex, krfcommd can close and free the same session and DLCs concurrently: hci_rx_work krfcommd ----------- --------- rfcomm_session_get() rfcomm_lock() rfcomm_session_close() rfcomm_dlc_unlink() rfcomm_session_del() kfree(s) rfcomm_unlock() walk s->dlcs The callback can then read a freed session list head and touch freed DLCs while updating their flags or timers. Serialize the session lookup and DLC traversal in rfcomm_security_cfm() with rfcomm_mutex. This matches the existing RFCOMM session lifetime rules and prevents concurrent rfcomm_session_del() / rfcomm_dlc_unlink() from tearing the objects down while the callback is using them. KASAN reported: BUG: KASAN: slab-use-after-free in rfcomm_security_cfm+0x41c/0x440 Read of size 8 at addr ffff888111fb3960 by task kworker/u17:1/89 Workqueue: hci0 hci_rx_work Call Trace: rfcomm_security_cfm+0x41c/0x440 hci_encrypt_cfm+0x139/0x590 hci_encrypt_change_evt+0x37b/0xc40 hci_event_packet+0x71b/0xb20 hci_rx_work+0x293/0x730 Allocated by task 69: rfcomm_session_add+0x9e/0x2f0 rfcomm_run+0x44b/0x41e0 Freed by task 69: kfree+0x131/0x3c0 rfcomm_session_del+0x188/0x220 rfcomm_run+0x1985/0x41e0


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: entry: Fix seccomp bypass after ptrace with TSYNC Sashiko review pointed out the following issue. If a thread is stopped in syscall_trace_enter() for ptrace, another thread can install a seccomp filter with SECCOMP_FILTER_FLAG_TSYNC (e.g., via seccomp_attach_filter()). This will successfully set SYSCALL_WORK_SECCOMP on the stopped thread, but syscall_trace_enter() evaluates a cached 'work' variable sampled on entry. Consequently, the subsequent check for SYSCALL_WORK_SECCOMP misses the newly assigned flag, and the filter is silently bypassed. This race condition could allow an unprivileged process to execute a prohibited system call (e.g., execve) that the newly installed filter was intended to block, especially since the tracer might have modified the system call number during the ptrace stop. Fix this by re-reading the syscall_work flags after ptrace handling, so that any new SYSCALL_WORK_SECCOMP flag set by another thread via TSYNC during the ptrace stop is observed before the subsequent seccomp check.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: smb: client: reject a tree connect response whose byte count is too small CIFSTCon() bounds its strnlen() over the byte area with the server's ByteCount minus two, which for ByteCount 0 or 1 goes negative as an int and converts to a huge size_t. The later subtraction wraps the __u16 bytes_left, and that is what bounds cifs_strndup_from_utf16(): a bound of up to 65535 against a ~16 KB cifs_req_poolp object runs off the end of the slab object, and the bytes reach userspace through tcon->nativeFileSystem in /proc/fs/cifs/DebugData. Reject a byte area too small for what the parser consumes. Two bytes is the least it can consume, and no conformant response carries fewer. The new trace point is the 129th smb_eio_trace entry, which __mode(byte) cannot represent, so the attribute goes with it.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: smb: client: clear ce->tgthint in free_tgts() When free_tgts() frees all structures in ce->tlist, ce->tgthint is left pointing to one of the freed cache_dfs_tgt structures. If ce->tgthint is not reset before it is used later, it results in a use-after-free. Set ce->tgthint to NULL in free_tgts() after the elements are freed to reflect that no elements remain.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: smb: client: clear setuid/setgid bit on write with cifsacl/modefromsid/posix extensions When a file has the setuid or setgid bit set and is written to, the VFS strips those bits and issues a setattr with ATTR_KILL_SUID/ATTR_KILL_SGID together with an ATTR_MODE carrying the already-cleared mode. Both cifs_setattr_unix() and cifs_setattr_nounix() unconditionally dropped ATTR_MODE in that case: /* skip mode change if it's just for clearing setuid/setgid */ if (attrs->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID)) attrs->ia_valid &= ~ATTR_MODE; This is fine for the default mount, where the mode is only emulated via the DOS read-only attribute and cannot represent the setuid/setgid bits anyway. However, with the "cifsacl" or "modefromsid" mount options the mode is stored on the server through an ACL (id_mode_to_cifs_acl()), with the SMB3.1.1 POSIX extensions the mode is sent to the server directly, and with the SMB1 Unix extensions (cifs_setattr_unix) the mode is sent via CIFSSMBUnixSetPathInfo(). In all those cases dropping ATTR_MODE means the cleared mode is never pushed to the server, so the setuid/setgid bit survives the write. This is a security issue: on local filesystems the setuid bit is stripped when a file is written, but over these cifs.ko mounts the bit persists on the server, potentially allowing an unexpected privilege escalation on subsequent execution. Fix this in two places: 1. cifs_setattr_nounix(): only take the "skip mode change" shortcut when the mode is emulated via the DOS read-only attribute (i.e. neither cifsacl/modefromsid nor the SMB3.1.1 POSIX extensions are in effect), so that the cleared mode is propagated to the server in the ACL / POSIX cases. 2. cifs_setattr_unix(): this function is only called when Unix extensions are in effect, so the mode is always stored on the server. Remove the shortcut entirely so that the cleared mode is always pushed.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: nfsd: fix XDR length calculation in nfsd4_ff_encode_layoutget The XDR buffer size calculation in nfsd4_ff_encode_layoutget() has multiple errors that can result in either an out-of-bounds write or leaking uninitialized kernel memory to the client: - fh_len doesn't account for XDR padding on the file handle data - uid and gid lengths use "8 + len" but xdr_encode_opaque() actually writes "4 + xdr_align_size(len)" bytes - ds_len omits the flags and stats_collect_hint fields (8 bytes), while len's header constant overestimates by 8 bytes -- these partially cancel but leave a net mismatch The worst case occurs with short strings (e.g. uid=0, gid=0 with an odd-sized file handle), where the function writes up to 5 bytes past the reserved XDR buffer. Conversely, when string lengths happen to be 4-byte aligned, the reservation is too large and stale buffer content is sent to the client. Fix this by breaking out every encoded field explicitly in the ds_len calculation, using xdr_align_size() for all variable-length opaque fields, and correcting the header constants.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: KVM: nVMX: Always flush vpid02 on first use Make sure vpid02 is always flushed on first use by setting last_vpid=0 when allocating vpid02. nested_vmx_transition_tlb_flush() will always detect a VPID change on first VM-Enter after VMXON, because VPID=0 in vmcs12 is not allowed if L1 enables VPID. This avoids using stale TLB entries from a previous lifetime of the VPID, that might have been associated with a different vCPU (or a completely different VM). Note that last_vpid is already being initialized as 0 when the vCPU is created, but it is not reset when vpid02 is freed on VMXOFF. Hence, the problem can only occur if L1 does VMXOFF -> VMXON, runs an L2, and KVM happens to reuse a VPID that has TLB entries on the physical CPU.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: nvmet-tcp: reject unsolicited H2CData PDUs nvmet_tcp_handle_h2c_data_pdu() accepts an H2CData PDU after only checking that its TTAG is a valid in-range command index and that the command's data buffers are mapped. It never checks that the target has actually solicited that data by sending an R2T for the command. A remote host can abuse this. It submits a write command that takes the R2T path and, before the target transmits the R2T, sends an H2CData PDU for that command's tag. The data completes the command early, and when the command then fails synchronously (e.g. a length mismatch caught by nvmet_check_transfer_len()), it is completed a second time. Each completion calls nvmet_tcp_queue_response(), so the same command is added to queue->resp_list twice while it is still linked; the second llist_add() makes the node point to itself (lentry->next == lentry). nvmet_tcp_process_resp_list() then walks that self-referential node and adds the command to resp_send_list twice. With CONFIG_DEBUG_LIST this trips the "list_add double add" check (kernel BUG); without it the loop never terminates and the nvmet_tcp workqueue wedges (soft-lockup). It is remotely triggerable and needs no authentication on an allow_any_host subsystem. Track whether an R2T has been transmitted for a command and reject an H2CData PDU that arrives before it. The flag is cleared on command reuse (nvmet_tcp_get_cmd() zeroes cmd->flags) and stays set across the multiple H2CData PDUs of a single solicited transfer.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: futex: Prevent rcuwait use-after-free during requeue PI On PREEMPT_RT, FUTEX_CMP_REQUEUE_PI can trigger a KASAN report (slab-out-of-bounds) in futex_requeue_pi_complete() invocation of rcuwait_wake_up(). The futex_q used by futex_wait_requeue_pi() is allocated on the waiter's stack. An early wakeup can race with a PI requeue as follows: waiter requeue task ------ ------------ futex_wait_requeue_pi() futex_do_wait() schedule() futex_requeue futex_proxy_trylock_atomic() futex_requeue_pi_prepare() Q_REQUEUE_PI_NONE -> Q_REQUEUE_PI_IN_PROGRESS * timeout/ signal wakes waiter * futex_requeue_pi_wakeup_sync() Q_REQUEUE_PI_IN_PROGRESS -> Q_REQUEUE_PI_WAIT requeue_pi_wake_futex futex_requeue_pi_complete() cmpxchg Q_REQUEUE_PI_WAIT -> Q_REQUEUE_PI_LOCKED rcuwait_wait_event() if (atomic_read(&q->requeue_state) != Q_REQUEUE_PI_WAIT) break /* no schedule() */ /* q.pi_state->owner == current */ futex_private_hash_put() /* return from syscall */ rcuwait_wake_up(&q->requeue_wait) /* q is gone */ futex_requeue_pi_complete() publishes Q_REQUEUE_PI_LOCKED before calling rcuwait_wake_up(). The waiter observes this state in rcuwait_wait_event() before invoking schedule() in rcuwait_wait_event(). Here, the waiter is free leave the syscall before requeue task can complete the wake. To address this race skip rcuwait_wake_up() in the Q_REQUEUE_PI_LOCKED case. This state is only published by requeue_pi_wake_futex(), which saves q->task before futex_requeue_pi_complete() and wakes the waiter via wake_up_state(). This wake is intended to wake the waiter from its futex_do_wait() sleep. If the waiter is still sleeping there, it can not get into the Q_REQUEUE_PI_WAIT state (and require this removed wake). Should the waiter be woken up from futex_do_wait() by other means (as in this example) and sleep in futex_requeue_pi_wakeup_sync() then the wake_up_state() from requeue_pi_wake_futex() will wake it, too. Should the waiter task terminate before wake_up_state() had a chance to wake the task then the task pointer does not become invalid because the futex_hash_bucket::lock is held and the task pointer is RCU protected. [bigeasy: Updated comment and commit message]


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: NFSv4.1: zero referring call lists before decoding decode_cb_sequence_args() allocates csa_rclists with kmalloc_objs(), so each referring_call_list starts uninitialized. decode_rc_list() assigns rcl_refcalls only when rcl_nrefcalls is nonzero. A valid list with zero referring calls therefore leaves the pointer uninitialized, and nfs4_callback_sequence() later passes stale slab contents to kfree(). Allocate csa_rclists with kzalloc_objs() so every rcl_refcalls member is NULL from the beginning, including valid empty referring call lists.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: ALSA: core: Fix use-after-free in snd_card_do_free() A use-after-free was detected in snd_card_do_free() when a sound card managed by devres is unbound while a user-space application still holds an open file descriptor. For managed cards, the memory is allocated using devres_alloc(), and its release function is set to __snd_card_release(), which calls snd_card_free(). When the device is unbound, the unbind thread calls snd_card_free(), which drops a reference to the card's device. If the user thread still has an open file descriptor, the reference count does not reach zero, and the unbind thread blocks on wait_for_completion(&released). When the user thread closes the file descriptor, it drops the final reference, invoking the device release callback release_card_device(), which calls snd_card_do_free(). snd_card_do_free() performs cleanup and calls complete(card->release_completion). This wakes up the unbind thread, which returns from snd_card_free() and __snd_card_release(). The devres core then immediately frees the memory block containing the snd_card structure. Meanwhile, the user thread continues execution in snd_card_do_free() and evaluates `if (!card->managed)`. It reads the `managed` boolean from the snd_card structure that was just freed by the unbind thread, triggering a KASAN use-after-free. Fix this by caching the value of card->managed in a local variable before calling complete(). This ensures that the card pointer is not dereferenced after the unbind thread has been woken up and potentially freed the card. BUG: KASAN: use-after-free in snd_card_do_free sound/core/init.c:604 [inline] BUG: KASAN: use-after-free in release_card_device+0x1ab/0x1b0 sound/core/init.c:153 Read of size 1 at addr ffff8881912ec909 by task syz-executor130/5857 Call Trace: <TASK> dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_address_description+0x55/0x1e0 mm/kasan/report.c:378 print_report+0x58/0x70 mm/kasan/report.c:482 kasan_report+0x117/0x150 mm/kasan/report.c:595 snd_card_do_free sound/core/init.c:604 [inline] release_card_device+0x1ab/0x1b0 sound/core/init.c:153 device_release+0xc4/0x1f0 drivers/base/core.c:-1 kobject_cleanup lib/kobject.c:689 [inline] kobject_release lib/kobject.c:720 [inline] kref_put include/linux/kref.h:65 [inline] kobject_put+0x222/0x550 lib/kobject.c:737 snd_card_file_remove+0x331/0x390 sound/core/init.c:1125 snd_pcm_release+0x12c/0x160 sound/core/pcm_native.c:2986 __fput+0x418/0xa50 fs/file_table.c:512 fput_close_sync+0x11f/0x240 fs/file_table.c:617 __do_sys_close fs/open.c:1511 [inline] __se_sys_close fs/open.c:1496 [inline] __x64_sys_close+0x7e/0x110 fs/open.c:1496 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK>


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: IB/isert: reject login PDUs declaring more data than was received isert_login_recv_done() records how many bytes the HCA actually placed in the login buffer, but nothing compares that against the length the login PDU's BHS declares. isert_rx_login_req() copies min(login_req_len, MAX_KEY_VALUE_PAIRS) bytes into login->req_buf, and the login code then reads the declared length back out of that buffer - for the first PDU in iscsi_target_locate_portal(), payload_length = ntoh24(login_req->dlength); tmpbuf = kmemdup_nul(login->req_buf, payload_length, GFP_KERNEL); and for the ones after it in iscsi_decode_text_input(), reached from iscsi_target_do_login(). login->req_buf is a fixed MAX_KEY_VALUE_PAIRS (8192) byte allocation, so an initiator that declares more than it sends reads off the end of it, before authentication and with the length under its control: BUG: KASAN: slab-out-of-bounds in kmemdup_nul+0x43/0x80 Read of size 8193 at addr ffff8881056a8000 by task iscsi_np/167 __asan_memcpy+0x23/0x60 kmemdup_nul+0x43/0x80 iscsi_target_locate_portal+0x48d/0x1180 iscsi_target_login_thread+0x19a9/0x3350 Allocated by task 167: __kmalloc_cache_noprof+0x158/0x370 iscsi_target_login_thread+0x971/0x3350 which belongs to the cache kmalloc-8k of size 8192 allocated 8192-byte region Falsifying the second login PDU instead reaches the other reader, on the same buffer: BUG: KASAN: slab-out-of-bounds in kmemdup_nul+0x43/0x80 Read of size 8193 at addr ffff888104d10000 by task kworker/1:1/50 Workqueue: isert_login_wq iscsi_target_do_login_rx __asan_memcpy+0x23/0x60 kmemdup_nul+0x43/0x80 iscsi_decode_text_input+0xc6/0x11c0 iscsi_target_do_login+0x261/0x1470 iscsi_target_do_login_rx+0x51d/0x7d0 iscsit over TCP is not exposed: iscsit_get_login_rx() validates the declared length with iscsi_target_check_login_request() and then reads exactly that many bytes off the socket, so the declared length governs how much arrives rather than how much is copied out of an already-filled buffer. isert does not call iscsi_target_check_login_request() at all. Reject a login PDU whose declared DataSegmentLength exceeds what was received, in both paths that reach isert_rx_login_req(): isert_get_login_rx() for the first login PDU and isert_login_recv_done() for the ones after it. dlength <= login_req_len is allowed because the received count can include up to three bytes of iSCSI padding. Once the check is in place the copy out can no longer exceed the copy in: the posted login SGE is ISER_RX_PAYLOAD_SIZE, so login_req_len cannot exceed MAX_KEY_VALUE_PAIRS and the min() in isert_rx_login_req() is login_req_len. Like the existing short-PDU check added by 29e7b925ae6d, the reject in isert_login_recv_done() returns without completing login_req_comp, so a malformed subsequent PDU leaves the login to be torn down by the login timer rather than failing immediately. The first-PDU path returns an error and fails straight away. Reproduced on 7.2.0-rc4 with soft-RoCE (rdma_rxe) under KASAN, using an initiator that sends the real key=value payload while declaring 8193 in the BHS, on the first login PDU and on the second in separate runs. The reported read size tracks the declared value exactly; 16384 and 61440 behave the same. Unpatched 3 of 3 runs report on each of the two paths, patched 0 of 3 on both, run alternately in a single session, and a normal login still completes on the patched build.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: IB/isert: reject PDUs declaring more data than was received isert_recv_done() hands each received PDU to the opcode handlers without ever looking at wc->byte_len, the number of bytes the HCA actually placed in the receive descriptor. The handlers then copy that many bytes - the data-segment length the initiator declared in the BHS (ntoh24(hdr->dlength), via the derived unsol_data_len / imm_data_len) - out of the fixed-size descriptor: isert_handle_iscsi_dataout(): sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc), unsol_data_len); isert_handle_scsi_cmd(): sg_copy_from_buffer(cmd->se_cmd.t_data_sg, sg_nents, isert_get_data(rx_desc), imm_data_len); Because the declared length is never checked against wc->byte_len, an initiator can declare a data segment larger than the bytes it actually sent (and larger than the descriptor) and cause an out-of-bounds read of the receive buffer. Nothing upstream of isert closes this door: - __iscsit_check_dataout_hdr() bounds the inbound payload against conn_ops->MaxXmitDataSegmentLength (MXDSL) - a transmit parameter, used here for the inbound check. - iscsi_set_connection_parameters() sets ops->MaxXmitDataSegmentLength = ops->TargetRecvDataSegmentLength; and TARGETRECVDATASEGMENTLENGTH is absent from the min()-clamp list in iscsi_check_acceptor_state(), so the value the initiator declares is adopted verbatim (type range 512..16777215). The initiator effectively raises its own ceiling. - isert never clamps the negotiated value to its own fixed receive descriptor (ISER_RX_SIZE, 9216 bytes), so the target core's bound and the descriptor size are unrelated. The imm_data_len == data_len path is more than an over-read: it aliases the receive descriptor via sg_set_buf() and passes it to the backend as the data source for the SCSI WRITE, so an over-declared length causes heap contents past the descriptor to be written through the backend to the backing store. The backend is the victim of the oversized scatterlist isert hands it, not the cause; no read-back of the written bytes was demonstrated. Trigger: after login completes (full feature phase), an initiator that has declared a large TargetRecvDataSegmentLength and a FirstBurstLength that permits unsolicited/immediate data sends a PDU whose declared data-segment length exceeds what was received. With KASAN: BUG: KASAN: slab-out-of-bounds in sg_copy_buffer+0x150/0x1c0 Read of size 4096 at addr ffff888109720800 by task kworker/1:0H/25 Workqueue: ib-comp-wq ib_cq_poll_work Call Trace: sg_copy_buffer+0x150/0x1c0 isert_recv_done+0xba6/0x2390 __ib_process_cq+0xe1/0x390 ib_cq_poll_work+0x46/0x150 isert_recv_done+0xba6 resolves to isert_handle_iscsi_dataout() (ib_isert.c:1160), inlined through isert_rx_opcode(). Validate wc->byte_len against the framing in isert_recv_done() before the PDU reaches any handler, and reinstate the connection if it is short. Because the test compares without subtracting the header length, it also rejects PDUs shorter than the iSER and iSCSI headers, which would otherwise be parsed out of stale descriptor contents. The login handler rejects PDUs shorter than ISER_HEADERS_LEN (commit 29e7b925ae6d ("IB/isert: Reject login PDUs shorter than ISER_HEADERS_LEN")) but does not bound the declared length either; that is fixed in the next patch. The data handlers had no length check at all. isert reads the data segment from a fixed offset: isert_get_data() returns the iSER header plus ISER_HEADERS_LEN and makes no adjustment for an AHS. The bytes the handlers touch are therefore exactly [ISER_HEADERS_LEN, ISER_HEADERS_LEN + dlength), and comparing that sum against wc->byte_len bounds precisely the region that is read. An AHS term would only make the test stricter without bounding anything furth ---truncated---


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: RDMA/rvt: Return NULL after port allocation failure rvt_alloc_device() deallocates the IB device when its port array cannot be allocated but then returns the pointer to the released allocation. Callers treat any non-NULL value as valid and dereference it, resulting in a use-after-free. Return NULL immediately after deallocation so callers can propagate the allocation failure.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: vhost-scsi: flush backend after device ioctls vhost-scsi translates guest response descriptors into userspace iovecs when commands are submitted. Target-core completes those commands asynchronously, so VHOST_SET_MEM_TABLE can replace the memory table while an in-flight command still retains response iovecs translated through the old table. If the old mapping is reused after VHOST_SET_MEM_TABLE returns, command completion can write the response to an unrelated userspace object. Flush the vhost-scsi backend after vhost_dev_ioctl() handles a device ioctl. This waits for in-flight commands that can still use the old response iovecs before the ioctl returns.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки

Описание

In the Linux kernel, the following vulnerability has been resolved: smb: client: bound dirent name against end of SMB response in cifs_filldir cifs_filldir() copies the entry name out of an SMB1 TRANS2_FIND_FIRST / FIND_NEXT response using a length (de.namelen) supplied by the server. The kmalloc'd SMB response buffer is bounded, but nothing checks that de.name + de.namelen still lies inside that buffer before the eventual filldir64() -> verify_dirent_name() -> memchr() reads namelen bytes. A hostile SMB1 server that returns an oversized FileNameLength in a directory entry therefore causes memchr() to read past the end of the response slab buffer. Reachable from any user who can list a directory on a CIFS mount served by an attacker-controlled server (getdents64() on the mounted directory): BUG: KASAN: slab-out-of-bounds in memchr+0x71/0x80 Read of size 1 at addr ffff88800e0640cc by task poc/115 Call Trace: dump_stack_lvl+0x64/0x80 print_report+0xce/0x620 kasan_report+0xec/0x120 memchr+0x71/0x80 filldir64+0x4c/0x6a0 cifs_filldir.constprop.0+0x9bb/0x1e00 cifs_readdir+0x2101/0x3380 iterate_dir+0x19c/0x520 __x64_sys_getdents64+0x126/0x210 do_syscall_64+0x107/0x5a0 entry_SYSCALL_64_after_hwframe+0x77/0x7f Pass the end-of-response pointer down to cifs_filldir() and reject entries whose name would extend past that boundary. This bug was discovered by Artiphishell's vTriage pipeline, which generated a userspace reproducer (an emulated hostile SMB1 server plus a getdents64() client) that reliably triggers the KASAN report on an unpatched kernel. The fix below was drafted with the Claude coding assistant; a userspace reproducer is available on request.


Затронутые продукты
Container suse/sle-micro/base-5.5:latest:kernel-default-5.14.21-150500.55.192.2
Container suse/sle-micro/kvm-5.5:latest:kernel-default-base-5.14.21-150500.55.192.2.150500.6.89.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:cluster-md-kmp-default-5.14.21-150500.55.192.2
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS:dlm-kmp-default-5.14.21-150500.55.192.2

Ссылки
Уязвимость SUSE-SU-2026:4667-1