{"api_version":"1","generated_at":"2026-04-19T01:12:34+00:00","cve":"CVE-2026-23381","urls":{"html":"https://cve.report/CVE-2026-23381","api":"https://cve.report/api/cve/CVE-2026-23381.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-23381","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-23381"},"summary":{"title":"net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: fix nd_tbl NULL dereference when IPv6 is disabled\n\nWhen booting with the 'ipv6.disable=1' parameter, the nd_tbl is never\ninitialized because inet6_init() exits before ndisc_init() is called\nwhich initializes it. Then, if neigh_suppress is enabled and an ICMPv6\nNeighbor Discovery packet reaches the bridge, br_do_suppress_nd() will\ndereference ipv6_stub->nd_tbl which is NULL, passing it to\nneigh_lookup(). This causes a kernel NULL pointer dereference.\n\n BUG: kernel NULL pointer dereference, address: 0000000000000268\n Oops: 0000 [#1] PREEMPT SMP NOPTI\n [...]\n RIP: 0010:neigh_lookup+0x16/0xe0\n [...]\n Call Trace:\n  <IRQ>\n  ? neigh_lookup+0x16/0xe0\n  br_do_suppress_nd+0x160/0x290 [bridge]\n  br_handle_frame_finish+0x500/0x620 [bridge]\n  br_handle_frame+0x353/0x440 [bridge]\n  __netif_receive_skb_core.constprop.0+0x298/0x1110\n  __netif_receive_skb_one_core+0x3d/0xa0\n  process_backlog+0xa0/0x140\n  __napi_poll+0x2c/0x170\n  net_rx_action+0x2c4/0x3a0\n  handle_softirqs+0xd0/0x270\n  do_softirq+0x3f/0x60\n\nFix this by replacing IS_ENABLED(IPV6) call with ipv6_mod_enabled() in\nthe callers. This is in essence disabling NS/NA suppression when IPv6 is\ndisabled.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-03-25 11:16:38","updated_at":"2026-04-18 09:16:22"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/a5c56e65b685360dd3f2278aeff8c21061feb665","name":"https://git.kernel.org/stable/c/a5c56e65b685360dd3f2278aeff8c21061feb665","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/20ef5c25422f97dd09d751e5ae6c18406cdc78e6","name":"https://git.kernel.org/stable/c/20ef5c25422f97dd09d751e5ae6c18406cdc78e6","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a12cdaa3375f0bd3c8f4e564be7c143529abfe5b","name":"https://git.kernel.org/stable/c/a12cdaa3375f0bd3c8f4e564be7c143529abfe5b","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e5e890630533bdc15b26a34bb8e7ef539bdf1322","name":"https://git.kernel.org/stable/c/e5e890630533bdc15b26a34bb8e7ef539bdf1322","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7a894eb5de246d79f13105c55a67381039a24d44","name":"https://git.kernel.org/stable/c/7a894eb5de246d79f13105c55a67381039a24d44","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/33dec6f10777d5a8f71c0a200f690da5ae3c2e55","name":"https://git.kernel.org/stable/c/33dec6f10777d5a8f71c0a200f690da5ae3c2e55","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a9d712ccfeef737c0e700a4b5b98f310e07b6b60","name":"https://git.kernel.org/stable/c/a9d712ccfeef737c0e700a4b5b98f310e07b6b60","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/aa73deb3b6b730ec280d45b3f423bfa9e17bc122","name":"https://git.kernel.org/stable/c/aa73deb3b6b730ec280d45b3f423bfa9e17bc122","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-23381","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-23381","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 a9d712ccfeef737c0e700a4b5b98f310e07b6b60 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 a5c56e65b685360dd3f2278aeff8c21061feb665 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 7a894eb5de246d79f13105c55a67381039a24d44 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 a12cdaa3375f0bd3c8f4e564be7c143529abfe5b git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 aa73deb3b6b730ec280d45b3f423bfa9e17bc122 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 33dec6f10777d5a8f71c0a200f690da5ae3c2e55 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 20ef5c25422f97dd09d751e5ae6c18406cdc78e6 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected ed842faeb2bd49256f00485402f3113205f91d30 e5e890630533bdc15b26a34bb8e7ef539bdf1322 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.15","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.15 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.253 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.203 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.167 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.130 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.77 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.17 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19.7 6.19.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"23381","cve":"CVE-2026-23381","epss":"0.000320000","percentile":"0.090980000","score_date":"2026-04-18","updated_at":"2026-04-19 00:10:43"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/bridge/br_device.c","net/bridge/br_input.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"a9d712ccfeef737c0e700a4b5b98f310e07b6b60","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"},{"lessThan":"a5c56e65b685360dd3f2278aeff8c21061feb665","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"},{"lessThan":"7a894eb5de246d79f13105c55a67381039a24d44","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"},{"lessThan":"a12cdaa3375f0bd3c8f4e564be7c143529abfe5b","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"},{"lessThan":"aa73deb3b6b730ec280d45b3f423bfa9e17bc122","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"},{"lessThan":"33dec6f10777d5a8f71c0a200f690da5ae3c2e55","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"},{"lessThan":"20ef5c25422f97dd09d751e5ae6c18406cdc78e6","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"},{"lessThan":"e5e890630533bdc15b26a34bb8e7ef539bdf1322","status":"affected","version":"ed842faeb2bd49256f00485402f3113205f91d30","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/bridge/br_device.c","net/bridge/br_input.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.15"},{"lessThan":"4.15","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.253","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.203","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.167","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.130","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.77","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.17","versionType":"semver"},{"lessThanOrEqual":"6.19.*","status":"unaffected","version":"6.19.7","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.0","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.253","versionStartIncluding":"4.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.203","versionStartIncluding":"4.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.167","versionStartIncluding":"4.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.130","versionStartIncluding":"4.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.77","versionStartIncluding":"4.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.17","versionStartIncluding":"4.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.19.7","versionStartIncluding":"4.15","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0","versionStartIncluding":"4.15","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: fix nd_tbl NULL dereference when IPv6 is disabled\n\nWhen booting with the 'ipv6.disable=1' parameter, the nd_tbl is never\ninitialized because inet6_init() exits before ndisc_init() is called\nwhich initializes it. Then, if neigh_suppress is enabled and an ICMPv6\nNeighbor Discovery packet reaches the bridge, br_do_suppress_nd() will\ndereference ipv6_stub->nd_tbl which is NULL, passing it to\nneigh_lookup(). This causes a kernel NULL pointer dereference.\n\n BUG: kernel NULL pointer dereference, address: 0000000000000268\n Oops: 0000 [#1] PREEMPT SMP NOPTI\n [...]\n RIP: 0010:neigh_lookup+0x16/0xe0\n [...]\n Call Trace:\n  <IRQ>\n  ? neigh_lookup+0x16/0xe0\n  br_do_suppress_nd+0x160/0x290 [bridge]\n  br_handle_frame_finish+0x500/0x620 [bridge]\n  br_handle_frame+0x353/0x440 [bridge]\n  __netif_receive_skb_core.constprop.0+0x298/0x1110\n  __netif_receive_skb_one_core+0x3d/0xa0\n  process_backlog+0xa0/0x140\n  __napi_poll+0x2c/0x170\n  net_rx_action+0x2c4/0x3a0\n  handle_softirqs+0xd0/0x270\n  do_softirq+0x3f/0x60\n\nFix this by replacing IS_ENABLED(IPV6) call with ipv6_mod_enabled() in\nthe callers. This is in essence disabling NS/NA suppression when IPv6 is\ndisabled."}],"providerMetadata":{"dateUpdated":"2026-04-18T08:58:22.834Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/a9d712ccfeef737c0e700a4b5b98f310e07b6b60"},{"url":"https://git.kernel.org/stable/c/a5c56e65b685360dd3f2278aeff8c21061feb665"},{"url":"https://git.kernel.org/stable/c/7a894eb5de246d79f13105c55a67381039a24d44"},{"url":"https://git.kernel.org/stable/c/a12cdaa3375f0bd3c8f4e564be7c143529abfe5b"},{"url":"https://git.kernel.org/stable/c/aa73deb3b6b730ec280d45b3f423bfa9e17bc122"},{"url":"https://git.kernel.org/stable/c/33dec6f10777d5a8f71c0a200f690da5ae3c2e55"},{"url":"https://git.kernel.org/stable/c/20ef5c25422f97dd09d751e5ae6c18406cdc78e6"},{"url":"https://git.kernel.org/stable/c/e5e890630533bdc15b26a34bb8e7ef539bdf1322"}],"title":"net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-23381","datePublished":"2026-03-25T10:28:00.416Z","dateReserved":"2026-01-13T15:37:46.007Z","dateUpdated":"2026-04-18T08:58:22.834Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-03-25 11:16:38","lastModifiedDate":"2026-04-18 09:16:22","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"23381","Ordinal":"1","Title":"net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled","CVE":"CVE-2026-23381","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"23381","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: fix nd_tbl NULL dereference when IPv6 is disabled\n\nWhen booting with the 'ipv6.disable=1' parameter, the nd_tbl is never\ninitialized because inet6_init() exits before ndisc_init() is called\nwhich initializes it. Then, if neigh_suppress is enabled and an ICMPv6\nNeighbor Discovery packet reaches the bridge, br_do_suppress_nd() will\ndereference ipv6_stub->nd_tbl which is NULL, passing it to\nneigh_lookup(). This causes a kernel NULL pointer dereference.\n\n BUG: kernel NULL pointer dereference, address: 0000000000000268\n Oops: 0000 [#1] PREEMPT SMP NOPTI\n [...]\n RIP: 0010:neigh_lookup+0x16/0xe0\n [...]\n Call Trace:\n  <IRQ>\n  ? neigh_lookup+0x16/0xe0\n  br_do_suppress_nd+0x160/0x290 [bridge]\n  br_handle_frame_finish+0x500/0x620 [bridge]\n  br_handle_frame+0x353/0x440 [bridge]\n  __netif_receive_skb_core.constprop.0+0x298/0x1110\n  __netif_receive_skb_one_core+0x3d/0xa0\n  process_backlog+0xa0/0x140\n  __napi_poll+0x2c/0x170\n  net_rx_action+0x2c4/0x3a0\n  handle_softirqs+0xd0/0x270\n  do_softirq+0x3f/0x60\n\nFix this by replacing IS_ENABLED(IPV6) call with ipv6_mod_enabled() in\nthe callers. This is in essence disabling NS/NA suppression when IPv6 is\ndisabled.","Type":"Description","Title":"net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled"}]}}}