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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
f66ee0410b1c3481ee75e5db9b34547b4d582465 to < 6f13f4d52d06986c18f12e8bffaab944dd27ceabaffectedf66ee0410b1c3481ee75e5db9b34547b4d582465 to < f9d6cabff1fca010562dcdb0d22b296bdca3ba5aaffectedf66ee0410b1c3481ee75e5db9b34547b4d582465 to < 16bfa7be2d76ca1e0aacfa363482e1bf8ab5042aaffectedf66ee0410b1c3481ee75e5db9b34547b4d582465 to < 661ff9c0cfbe07f8eed920dde9f7781491738207affectedf66ee0410b1c3481ee75e5db9b34547b4d582465 to < c710e9bf38e4e71a8db85d26a0f70c0674664207affectedf66ee0410b1c3481ee75e5db9b34547b4d582465 to < 4ae701848e4ba9e9713375fb7d82218cbd309da2affectedf66ee0410b1c3481ee75e5db9b34547b4d582465 to < 77dbb248a5cc7a5270cd37bbb0b635bf059a872aaffectedf66ee0410b1c3481ee75e5db9b34547b4d582465 to < f30415929be8aeb002d557c8d3f7ab2d2188003aaffected5dd9488ae41070b69d2f4acb580f77db5705f9caaffecteda469bab3386aebff33c59506f3a95e35b91118fdaffected5.4.24 to < 5.5affected5.5.8 to < 5.6affected
Linux Linux
Default version status: affected
5.6affected0 to < 5.6unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.151 to ≤ 6.6.*unaffected6.12.103 to ≤ 6.12.*unaffected6.18.44 to ≤ 6.18.*unaffected7.1.8 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/6f13f4d52d06986c18f12e8bffaab944dd27ceab ↗
- https://git.kernel.org/stable/c/f9d6cabff1fca010562dcdb0d22b296bdca3ba5a ↗
- https://git.kernel.org/stable/c/16bfa7be2d76ca1e0aacfa363482e1bf8ab5042a ↗
- 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 ↗