{"api_version":"1","generated_at":"2026-07-23T12:33:29+00:00","cve":"CVE-2026-64006","urls":{"html":"https://cve.report/CVE-2026-64006","api":"https://cve.report/api/cve/CVE-2026-64006.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-64006","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-64006"},"summary":{"title":"netfilter: nf_tables: fix dst corruption in same register operation","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_tables: fix dst corruption in same register operation\n\nFor lshift and rshift, the shift operations are performed in a loop over\n32-bit words. The loop calculates the shifted value and write it to dst,\nand then immediately reads from src to calculate the carry for the next\niteration. Because src and dst could point to the same memory location,\nthe carry is incorrectly calculated using the newly modified dst value\ninstead of the original src value.\n\nAdding a temporary local variable to cache the original value before\nwriting to dst and using it for the carry calculation solves the\nproblem. In addition, partial overlap is rejected from control plane for\nall kind of operations including byteorder. This was tested with the\nfollowing bytecode:\n\ntable test_table ip flags 0 use 1 handle 1\nip test_table test_chain use 3 type filter hook input prio 0 policy accept packets 0 bytes 0 flags 1\nip test_table test_chain 2\n  [ immediate reg 1 0x44332211 0x88776655 ]\n  [ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]\n  [ cmp eq reg 1 0x66443322 0x00887766 ]\n  [ counter pkts 0 bytes 0 ]\nip test_table test_chain 4 3\n  [ immediate reg 1 0x44332211 0x88776655 ]\n  [ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]\n  [ cmp eq reg 1 0x55443322 0x00887766 ]\n  [ counter pkts 21794 bytes 1917798 ]","state":"PUBLISHED","assigner":"Linux","published_at":"2026-07-19 16:17:40","updated_at":"2026-07-19 16:17:40"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/96bea2a7baac4a1137c188dc7610184487ab30a7","name":"https://git.kernel.org/stable/c/96bea2a7baac4a1137c188dc7610184487ab30a7","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a391afe74398b70107f111aa731eab608624949d","name":"https://git.kernel.org/stable/c/a391afe74398b70107f111aa731eab608624949d","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/b80ef316e978de2ef81d5bee9c19800b4cf96fb8","name":"https://git.kernel.org/stable/c/b80ef316e978de2ef81d5bee9c19800b4cf96fb8","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/18014147d3ee7831dce53fe65d7fc8d428b02552","name":"https://git.kernel.org/stable/c/18014147d3ee7831dce53fe65d7fc8d428b02552","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-64006","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64006","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 567d746b55bc66d3800c9ae91d50f0c5deb2fd93 b80ef316e978de2ef81d5bee9c19800b4cf96fb8 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 567d746b55bc66d3800c9ae91d50f0c5deb2fd93 96bea2a7baac4a1137c188dc7610184487ab30a7 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 567d746b55bc66d3800c9ae91d50f0c5deb2fd93 a391afe74398b70107f111aa731eab608624949d git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 567d746b55bc66d3800c9ae91d50f0c5deb2fd93 18014147d3ee7831dce53fe65d7fc8d428b02552 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.6","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.6 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.143 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.35 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0.12 7.0.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"64006","cve":"CVE-2026-64006","epss":"0.001710000","percentile":"0.067790000","score_date":"2026-07-20","updated_at":"2026-07-21 00:13:14"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["include/net/netfilter/nf_tables.h","net/netfilter/nft_bitwise.c","net/netfilter/nft_byteorder.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"b80ef316e978de2ef81d5bee9c19800b4cf96fb8","status":"affected","version":"567d746b55bc66d3800c9ae91d50f0c5deb2fd93","versionType":"git"},{"lessThan":"96bea2a7baac4a1137c188dc7610184487ab30a7","status":"affected","version":"567d746b55bc66d3800c9ae91d50f0c5deb2fd93","versionType":"git"},{"lessThan":"a391afe74398b70107f111aa731eab608624949d","status":"affected","version":"567d746b55bc66d3800c9ae91d50f0c5deb2fd93","versionType":"git"},{"lessThan":"18014147d3ee7831dce53fe65d7fc8d428b02552","status":"affected","version":"567d746b55bc66d3800c9ae91d50f0c5deb2fd93","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["include/net/netfilter/nf_tables.h","net/netfilter/nft_bitwise.c","net/netfilter/nft_byteorder.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"5.6"},{"lessThan":"5.6","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.143","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.35","versionType":"semver"},{"lessThanOrEqual":"7.0.*","status":"unaffected","version":"7.0.12","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.143","versionStartIncluding":"5.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.35","versionStartIncluding":"5.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0.12","versionStartIncluding":"5.6","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1","versionStartIncluding":"5.6","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_tables: fix dst corruption in same register operation\n\nFor lshift and rshift, the shift operations are performed in a loop over\n32-bit words. The loop calculates the shifted value and write it to dst,\nand then immediately reads from src to calculate the carry for the next\niteration. Because src and dst could point to the same memory location,\nthe carry is incorrectly calculated using the newly modified dst value\ninstead of the original src value.\n\nAdding a temporary local variable to cache the original value before\nwriting to dst and using it for the carry calculation solves the\nproblem. In addition, partial overlap is rejected from control plane for\nall kind of operations including byteorder. This was tested with the\nfollowing bytecode:\n\ntable test_table ip flags 0 use 1 handle 1\nip test_table test_chain use 3 type filter hook input prio 0 policy accept packets 0 bytes 0 flags 1\nip test_table test_chain 2\n  [ immediate reg 1 0x44332211 0x88776655 ]\n  [ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]\n  [ cmp eq reg 1 0x66443322 0x00887766 ]\n  [ counter pkts 0 bytes 0 ]\nip test_table test_chain 4 3\n  [ immediate reg 1 0x44332211 0x88776655 ]\n  [ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]\n  [ cmp eq reg 1 0x55443322 0x00887766 ]\n  [ counter pkts 21794 bytes 1917798 ]"}],"providerMetadata":{"dateUpdated":"2026-07-19T14:56:22.321Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/b80ef316e978de2ef81d5bee9c19800b4cf96fb8"},{"url":"https://git.kernel.org/stable/c/96bea2a7baac4a1137c188dc7610184487ab30a7"},{"url":"https://git.kernel.org/stable/c/a391afe74398b70107f111aa731eab608624949d"},{"url":"https://git.kernel.org/stable/c/18014147d3ee7831dce53fe65d7fc8d428b02552"}],"title":"netfilter: nf_tables: fix dst corruption in same register operation","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-64006","datePublished":"2026-07-19T14:56:22.321Z","dateReserved":"2026-07-19T07:54:57.026Z","dateUpdated":"2026-07-19T14:56:22.321Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-07-19 16:17:40","lastModifiedDate":"2026-07-19 16:17:40","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"64006","Ordinal":"1","Title":"netfilter: nf_tables: fix dst corruption in same register operat","CVE":"CVE-2026-64006","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"64006","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_tables: fix dst corruption in same register operation\n\nFor lshift and rshift, the shift operations are performed in a loop over\n32-bit words. The loop calculates the shifted value and write it to dst,\nand then immediately reads from src to calculate the carry for the next\niteration. Because src and dst could point to the same memory location,\nthe carry is incorrectly calculated using the newly modified dst value\ninstead of the original src value.\n\nAdding a temporary local variable to cache the original value before\nwriting to dst and using it for the carry calculation solves the\nproblem. In addition, partial overlap is rejected from control plane for\nall kind of operations including byteorder. This was tested with the\nfollowing bytecode:\n\ntable test_table ip flags 0 use 1 handle 1\nip test_table test_chain use 3 type filter hook input prio 0 policy accept packets 0 bytes 0 flags 1\nip test_table test_chain 2\n  [ immediate reg 1 0x44332211 0x88776655 ]\n  [ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]\n  [ cmp eq reg 1 0x66443322 0x00887766 ]\n  [ counter pkts 0 bytes 0 ]\nip test_table test_chain 4 3\n  [ immediate reg 1 0x44332211 0x88776655 ]\n  [ bitwise reg 1 = ( reg 1 << 0x08000000 ) ]\n  [ cmp eq reg 1 0x55443322 0x00887766 ]\n  [ counter pkts 21794 bytes 1917798 ]","Type":"Description","Title":"netfilter: nf_tables: fix dst corruption in same register operat"}]}}}