CVE-2026-74492: netfilter: ipset: do not update comments from kernel-side hash adds
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026081539-CVE-2026-74492-a089@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== 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. The Linux kernel CVE team has assigned CVE-2026-74492 to this issue. Affected and fixed versions =========================== Issue introduced in 5.6 with commit f66ee0410b1c3481ee75e5db9b34547b4d582465 and fixed in 6.6.151 with commit 661ff9c0cfbe07f8eed920dde9f7781491738207 Issue introduced in 5.6 with commit f66ee0410b1c3481ee75e5db9b34547b4d582465 and fixed in 6.12.103 with commit c710e9bf38e4e71a8db85d26a0f70c0674664207 Issue introduced in 5.6 with commit f66ee0410b1c3481ee75e5db9b34547b4d582465 and fixed in 6.18.44 with commit 4ae701848e4ba9e9713375fb7d82218cbd309da2 Issue introduced in 5.6 with commit f66ee0410b1c3481ee75e5db9b34547b4d582465 and fixed in 7.1.8 with commit 77dbb248a5cc7a5270cd37bbb0b635bf059a872a Issue introduced in 5.6 with commit f66ee0410b1c3481ee75e5db9b34547b4d582465 and fixed in 7.2-rc6 with commit f30415929be8aeb002d557c8d3f7ab2d2188003a Issue introduced in 5.4.24 with commit 5dd9488ae41070b69d2f4acb580f77db5705f9ca Issue introduced in 5.5.8 with commit a469bab3386aebff33c59506f3a95e35b91118fd Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-74492 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: net/netfilter/ipset/ip_set_hash_gen.h Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/661ff9c0cfbe07f8eed920dde9f7781491738207 https://git.kernel.org/stable/c/c710e9bf38e4e71a8db85d26a0f70c0674664207 https://git.kernel.org/stable/c/4ae701848e4ba9e9713375fb7d82218cbd309da2 https://git.kernel.org/stable/c/77dbb248a5cc7a5270cd37bbb0b635bf059a872a https://git.kernel.org/stable/c/f30415929be8aeb002d557c8d3f7ab2d2188003a