Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_set_pipapo: fix stack out-of-bounds read in pipapo_drop() pipapo_drop() passes rulemap[i + 1].n to pipapo_unmap() as the to_offset argument on every iteration, including the last one where i == m->field_count - 1. This reads one element past the end of the stack-allocated rulemap array (declared as rulemap[NFT_PIPAPO_MAX_FIELDS] with NFT_PIPAPO_MAX_FIELDS == 16). Although pipapo_unmap() returns early when is_last is true without using the to_offset value, the argument is evaluated at the call site before the function body executes, making this a genuine out-of-bounds stack read confirmed by KASAN: BUG: KASAN: stack-out-of-bounds in pipapo_drop+0x50c/0x57c [nf_tables] Read of size 4 at addr ffff8000810e71a4 This frame has 1 object: [32, 160) 'rulemap' The buggy address is at offset 164 -- exactly 4 bytes past the end of the rulemap array. Pass 0 instead of rulemap[i + 1].n on the last iteration to avoid the out-of-bounds read.
Product status
3c4287f62044a90e73a561aa05fc46e62da173da (git) before 1957e793196e7f8557374fd4eda53abcbb42e1c0
3c4287f62044a90e73a561aa05fc46e62da173da (git) before 57fb87ca095d5127cd7a27583b8ec43dcf7c9e9e
3c4287f62044a90e73a561aa05fc46e62da173da (git) before 60c1d18781e37bfb96290b86510eb01c5fa24d75
3c4287f62044a90e73a561aa05fc46e62da173da (git) before 0a55d62cdb628923d8a21724374a70c76ac7d19d
3c4287f62044a90e73a561aa05fc46e62da173da (git) before dfbdac719198778b581bc0dd055df2542edb8c62
3c4287f62044a90e73a561aa05fc46e62da173da (git) before e047f6fbb975f685d6c9fcef95b3b7787a79b46d
3c4287f62044a90e73a561aa05fc46e62da173da (git) before 324b749aa5b2d516ccfab933df9d3f56e7807f5f
3c4287f62044a90e73a561aa05fc46e62da173da (git) before d6d8cd2db236a9dd13dbc2d05843b3445cc964b5
5.6
Any version before 5.6
5.10.253 (semver)
5.15.203 (semver)
6.1.167 (semver)
6.6.130 (semver)
6.12.78 (semver)
6.18.19 (semver)
6.19.9 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/1957e793196e7f8557374fd4eda53abcbb42e1c0
git.kernel.org/...c/57fb87ca095d5127cd7a27583b8ec43dcf7c9e9e
git.kernel.org/...c/60c1d18781e37bfb96290b86510eb01c5fa24d75
git.kernel.org/...c/0a55d62cdb628923d8a21724374a70c76ac7d19d
git.kernel.org/...c/dfbdac719198778b581bc0dd055df2542edb8c62
git.kernel.org/...c/e047f6fbb975f685d6c9fcef95b3b7787a79b46d
git.kernel.org/...c/324b749aa5b2d516ccfab933df9d3f56e7807f5f
git.kernel.org/...c/d6d8cd2db236a9dd13dbc2d05843b3445cc964b5