In the Linux kernel, the following vulnerability has been resolved:
netfilter: nft_fib: fix stale stack leak via the OIFNAME register
For NFT_FIB_RESULT_OIFNAME the destination register is declared with
len = IFNAMSIZ (four 32-bit registers), but on the lookup-fail,
RTN_LOCAL and oif-mismatch paths nft_fib{4,6}_eval() only writes one
register via "*dest = 0". The remaining three registers are left as
whatever was on the stack in nft_do_chain()'s struct nft_regs, and a
downstream expression that loads the register span can leak that
uninitialised kernel stack to userspace.
The NFTA_FIB_F_PRESENT existence check has the same shape: it is only
meaningful for NFT_FIB_RESULT_OIF, yet it was accepted for any result type
while the eval stores a single byte via nft_reg_store8(), leaving the rest
of the declared span stale.
Fix both:
- replace the bare "*dest = 0" in the eval with nft_fib_store_result(),
which strscpy_pad()s the whole IFNAMSIZ for OIFNAME (and is already
used on the other early-return path), and
- restrict NFTA_FIB_F_PRESENT to NFT_FIB_RESULT_OIF and declare its
destination as a single u8, so the marked span matches the one byte
the eval writes.
CVSS
5.5 MEDIUM (v3.1, NVD)CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before 6744e49fe51bfba26522acc2d0e9703cb41d8e50; from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before eca18feed38b3377a2ec5d1f22af1170c55d0171; from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before d19ddef8c327a4773ff81f8e51027d1e0b4cf069; from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before eb8a8124484dbc3c2b543e207da39bbccb703d31; from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before 8c84885e9790823828bb8084736ea15769b1ac16; from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before 84d8f58cf28a0415413f43ba7148f7bacd4c1b6e; from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before 3544210609f6d1db282bbdeca639104ef624c393; from f6d0cbcf09c506b9b022df8f9d7693a7cec3c732 before ab185e0c4fb82dfba6fb86f8271e06f931d9c64c
from 4.10 before 5.10.259; from 5.11 before 5.15.210; from 5.16 before 6.1.176; from 6.2 before 6.6.143; from 6.7 before 6.12.94; from 6.13 before 6.18.36; from 6.19 before 7.0.13; 7.1; and 6 more ranges
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.
Printed from infosecsignals.com. Every record links back to the agency that published it.
Your cookie choices
We use essential cookies to run this site, and, only with your consent, an advertising cookie from Google to measure whether our ads lead to sign-ups and subscriptions. See our for details.