netfilter: nft_fib: fix stale stack leak via the OIFNAME register
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.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.259, 5.15.210, 6.1.176, 6.12.94, 6.18.36, 6.6.143, 7.0.13
- CVEs
- CVE-2026-53134
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 8 Nov 2026, 01:53 UTC · Revision 1
Source evidence
netfilter: nft_fib: fix stale stack leak via the OIFNAME register
core-osv · Original sourcePublished 25 Jun 2026, 08:38 UTC
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.
osv:CVE-2026-53134
Kernel
Fixed versions: 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13
Complete source record
{
"id": "e7929112acf3a87f4ee3eff23e6f6a67833ca99b013057b6e654b8648bbc2e7b",
"url": "https://osv.dev/vulnerability/CVE-2026-53134",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "netfilter: nft_fib: fix stale stack leak via the OIFNAME register",
"summary": "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.",
"evidence": "osv:CVE-2026-53134",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.259",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.210",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.176",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.143",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.94",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.36",
"evidence": "/affected/1/ranges"
},
{
"value": "7.0.13",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2026-53134",
"aliases": [
"CVE-2026-53134"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "f6d0cbcf09c506b9b022df8f9d7693a7cec3c732"
},
{
"fixed": "6744e49fe51bfba26522acc2d0e9703cb41d8e50"
},
{
"fixed": "eca18feed38b3377a2ec5d1f22af1170c55d0171"
},
{
"fixed": "d19ddef8c327a4773ff81f8e51027d1e0b4cf069"
},
{
"fixed": "eb8a8124484dbc3c2b543e207da39bbccb703d31"
},
{
"fixed": "8c84885e9790823828bb8084736ea15769b1ac16"
},
{
"fixed": "84d8f58cf28a0415413f43ba7148f7bacd4c1b6e"
},
{
"fixed": "3544210609f6d1db282bbdeca639104ef624c393"
},
{
"fixed": "ab185e0c4fb82dfba6fb86f8271e06f931d9c64c"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53134.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "4.10.0"
},
{
"fixed": "5.10.259"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.210"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.176"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.143"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.94"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.36"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.19.0"
},
{
"fixed": "7.0.13"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-53134.json"
}
}
],
"modified": "2026-10-28T02:30:53.024305287Z",
"provider": "osv",
"references": [
"https://cert-portal.siemens.com/productcert/html/ssa-019113.html",
"https://cert-portal.siemens.com/productcert/html/ssa-457936.html",
"https://git.kernel.org/stable/c/3544210609f6d1db282bbdeca639104ef624c393",
"https://git.kernel.org/stable/c/6744e49fe51bfba26522acc2d0e9703cb41d8e50",
"https://git.kernel.org/stable/c/84d8f58cf28a0415413f43ba7148f7bacd4c1b6e",
"https://git.kernel.org/stable/c/8c84885e9790823828bb8084736ea15769b1ac16",
"https://git.kernel.org/stable/c/ab185e0c4fb82dfba6fb86f8271e06f931d9c64c",
"https://git.kernel.org/stable/c/d19ddef8c327a4773ff81f8e51027d1e0b4cf069",
"https://git.kernel.org/stable/c/eb8a8124484dbc3c2b543e207da39bbccb703d31",
"https://git.kernel.org/stable/c/eca18feed38b3377a2ec5d1f22af1170c55d0171",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53134.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-53134",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53134.json"
}
},
"related_cves": [
{
"value": "CVE-2026-53134",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 521530,
"published_at": "2026-06-25T08:38:23.348+00:00"
}