CVE-2024-27018 (GCVE-0-2024-27018)
Vulnerability from cvelistv5
Published
2024-05-01 05:30
Modified
2026-08-05 11:29
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: br_netfilter: skip conntrack input hook for promisc packets For historical reasons, when bridge device is in promisc mode, packets that are directed to the taps follow bridge input hook path. This patch adds a workaround to reset conntrack for these packets. Jianbo Liu reports warning splats in their test infrastructure where cloned packets reach the br_netfilter input hook to confirm the conntrack object. Scratch one bit from BR_INPUT_SKB_CB to annotate that this packet has reached the input hook because it is passed up to the bridge device to reach the taps. [ 57.571874] WARNING: CPU: 1 PID: 0 at net/bridge/br_netfilter_hooks.c:616 br_nf_local_in+0x157/0x180 [br_netfilter] [ 57.572749] Modules linked in: xt_MASQUERADE nf_conntrack_netlink nfnetlink iptable_nat xt_addrtype xt_conntrack nf_nat br_netfilter rpcsec_gss_krb5 auth_rpcgss oid_registry overlay rpcrdma rdma_ucm ib_iser libiscsi scsi_transport_isc si ib_umad rdma_cm ib_ipoib iw_cm ib_cm mlx5_ib ib_uverbs ib_core mlx5ctl mlx5_core [ 57.575158] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.8.0+ #19 [ 57.575700] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 [ 57.576662] RIP: 0010:br_nf_local_in+0x157/0x180 [br_netfilter] [ 57.577195] Code: fe ff ff 41 bd 04 00 00 00 be 04 00 00 00 e9 4a ff ff ff be 04 00 00 00 48 89 ef e8 f3 a9 3c e1 66 83 ad b4 00 00 00 04 eb 91 <0f> 0b e9 f1 fe ff ff 0f 0b e9 df fe ff ff 48 89 df e8 b3 53 47 e1 [ 57.578722] RSP: 0018:ffff88885f845a08 EFLAGS: 00010202 [ 57.579207] RAX: 0000000000000002 RBX: ffff88812dfe8000 RCX: 0000000000000000 [ 57.579830] RDX: ffff88885f845a60 RSI: ffff8881022dc300 RDI: 0000000000000000 [ 57.580454] RBP: ffff88885f845a60 R08: 0000000000000001 R09: 0000000000000003 [ 57.581076] R10: 00000000ffff1300 R11: 0000000000000002 R12: 0000000000000000 [ 57.581695] R13: ffff8881047ffe00 R14: ffff888108dbee00 R15: ffff88814519b800 [ 57.582313] FS: 0000000000000000(0000) GS:ffff88885f840000(0000) knlGS:0000000000000000 [ 57.583040] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 57.583564] CR2: 000000c4206aa000 CR3: 0000000103847001 CR4: 0000000000370eb0 [ 57.584194] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 57.584820] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 57.585440] Call Trace: [ 57.585721] <IRQ> [ 57.585976] ? __warn+0x7d/0x130 [ 57.586323] ? br_nf_local_in+0x157/0x180 [br_netfilter] [ 57.586811] ? report_bug+0xf1/0x1c0 [ 57.587177] ? handle_bug+0x3f/0x70 [ 57.587539] ? exc_invalid_op+0x13/0x60 [ 57.587929] ? asm_exc_invalid_op+0x16/0x20 [ 57.588336] ? br_nf_local_in+0x157/0x180 [br_netfilter] [ 57.588825] nf_hook_slow+0x3d/0xd0 [ 57.589188] ? br_handle_vlan+0x4b/0x110 [ 57.589579] br_pass_frame_up+0xfc/0x150 [ 57.589970] ? br_port_flags_change+0x40/0x40 [ 57.590396] br_handle_frame_finish+0x346/0x5e0 [ 57.590837] ? ipt_do_table+0x32e/0x430 [ 57.591221] ? br_handle_local_finish+0x20/0x20 [ 57.591656] br_nf_hook_thresh+0x4b/0xf0 [br_netfilter] [ 57.592286] ? br_handle_local_finish+0x20/0x20 [ 57.592802] br_nf_pre_routing_finish+0x178/0x480 [br_netfilter] [ 57.593348] ? br_handle_local_finish+0x20/0x20 [ 57.593782] ? nf_nat_ipv4_pre_routing+0x25/0x60 [nf_nat] [ 57.594279] br_nf_pre_routing+0x24c/0x550 [br_netfilter] [ 57.594780] ? br_nf_hook_thresh+0xf0/0xf0 [br_netfilter] [ 57.595280] br_handle_frame+0x1f3/0x3d0 [ 57.595676] ? br_handle_local_finish+0x20/0x20 [ 57.596118] ? br_handle_frame_finish+0x5e0/0x5e0 [ 57.596566] __netif_receive_skb_core+0x25b/0xfc0 [ 57.597017] ? __napi_build_skb+0x37/0x40 [ 57.597418] __netif_receive_skb_list_core+0xfb/0x220
Impacted products
Vendor Product Version
Linux Linux Version: 7c3f28599652acf431a2211168de4a583f30b6d5
Version: 2b1414d5e94e477edff1d2c79030f1d742625ea0
Version: 80cd0487f630b5382734997c3e5e3003a77db315
Version: 62e7151ae3eb465e0ab52a20c941ff33bb6332e9
Version: 62e7151ae3eb465e0ab52a20c941ff33bb6332e9
Version: cb734975b0ffa688ff6cc0eed463865bf07b6c01
Version: 5.15.151   
Version: 6.1.81   
Version: 6.6.21   
Version: 6.7.9   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-27018",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-05-23T17:22:22.725918Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:46:18.755Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-04T17:17:28.322Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/dceb683ab87ca3666a9bb5c0158528b646faedc4"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/b13db0d16bc7b2a52abcf5cb71334f63faa5dbd6"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/3f59ac29dea0921637053908fe99268d157bbb9d"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/43193174510ea4f3ce09b796e559a2fd9f148615"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/751de2012eafa4d46d8081056761fa0e9cc8a178"
          },
          {
            "url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DAMSOZXJEPUOXW33WZYWCVAY7Z5S7OOY/"
          },
          {
            "url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4EZ6PJW7VOZ224TD7N4JZNU6KV32ZJ53/"
          },
          {
            "url": "https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/GCBZZEC7L7KTWWAS2NLJK6SO3IZIL4WW/"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/br_input.c",
            "net/bridge/br_netfilter_hooks.c",
            "net/bridge/br_private.h",
            "net/bridge/netfilter/nf_conntrack_bridge.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "dceb683ab87ca3666a9bb5c0158528b646faedc4",
              "status": "affected",
              "version": "7c3f28599652acf431a2211168de4a583f30b6d5",
              "versionType": "git"
            },
            {
              "lessThan": "b13db0d16bc7b2a52abcf5cb71334f63faa5dbd6",
              "status": "affected",
              "version": "2b1414d5e94e477edff1d2c79030f1d742625ea0",
              "versionType": "git"
            },
            {
              "lessThan": "3f59ac29dea0921637053908fe99268d157bbb9d",
              "status": "affected",
              "version": "80cd0487f630b5382734997c3e5e3003a77db315",
              "versionType": "git"
            },
            {
              "lessThan": "43193174510ea4f3ce09b796e559a2fd9f148615",
              "status": "affected",
              "version": "62e7151ae3eb465e0ab52a20c941ff33bb6332e9",
              "versionType": "git"
            },
            {
              "lessThan": "751de2012eafa4d46d8081056761fa0e9cc8a178",
              "status": "affected",
              "version": "62e7151ae3eb465e0ab52a20c941ff33bb6332e9",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "cb734975b0ffa688ff6cc0eed463865bf07b6c01",
              "versionType": "git"
            },
            {
              "lessThan": "5.15.157",
              "status": "affected",
              "version": "5.15.151",
              "versionType": "semver"
            },
            {
              "lessThan": "6.1.88",
              "status": "affected",
              "version": "6.1.81",
              "versionType": "semver"
            },
            {
              "lessThan": "6.6.29",
              "status": "affected",
              "version": "6.6.21",
              "versionType": "semver"
            },
            {
              "lessThan": "6.8",
              "status": "affected",
              "version": "6.7.9",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/br_input.c",
            "net/bridge/br_netfilter_hooks.c",
            "net/bridge/br_private.h",
            "net/bridge/netfilter/nf_conntrack_bridge.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.8"
            },
            {
              "lessThan": "6.8",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.88",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.29",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.157",
                  "versionStartIncluding": "5.15.151",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.88",
                  "versionStartIncluding": "6.1.81",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.29",
                  "versionStartIncluding": "6.6.21",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.8",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "6.8",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.7.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: br_netfilter: skip conntrack input hook for promisc packets\n\nFor historical reasons, when bridge device is in promisc mode, packets\nthat are directed to the taps follow bridge input hook path. This patch\nadds a workaround to reset conntrack for these packets.\n\nJianbo Liu reports warning splats in their test infrastructure where\ncloned packets reach the br_netfilter input hook to confirm the\nconntrack object.\n\nScratch one bit from BR_INPUT_SKB_CB to annotate that this packet has\nreached the input hook because it is passed up to the bridge device to\nreach the taps.\n\n[   57.571874] WARNING: CPU: 1 PID: 0 at net/bridge/br_netfilter_hooks.c:616 br_nf_local_in+0x157/0x180 [br_netfilter]\n[   57.572749] Modules linked in: xt_MASQUERADE nf_conntrack_netlink nfnetlink iptable_nat xt_addrtype xt_conntrack nf_nat br_netfilter rpcsec_gss_krb5 auth_rpcgss oid_registry overlay rpcrdma rdma_ucm ib_iser libiscsi scsi_transport_isc si ib_umad rdma_cm ib_ipoib iw_cm ib_cm mlx5_ib ib_uverbs ib_core mlx5ctl mlx5_core\n[   57.575158] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.8.0+ #19\n[   57.575700] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014\n[   57.576662] RIP: 0010:br_nf_local_in+0x157/0x180 [br_netfilter]\n[   57.577195] Code: fe ff ff 41 bd 04 00 00 00 be 04 00 00 00 e9 4a ff ff ff be 04 00 00 00 48 89 ef e8 f3 a9 3c e1 66 83 ad b4 00 00 00 04 eb 91 \u003c0f\u003e 0b e9 f1 fe ff ff 0f 0b e9 df fe ff ff 48 89 df e8 b3 53 47 e1\n[   57.578722] RSP: 0018:ffff88885f845a08 EFLAGS: 00010202\n[   57.579207] RAX: 0000000000000002 RBX: ffff88812dfe8000 RCX: 0000000000000000\n[   57.579830] RDX: ffff88885f845a60 RSI: ffff8881022dc300 RDI: 0000000000000000\n[   57.580454] RBP: ffff88885f845a60 R08: 0000000000000001 R09: 0000000000000003\n[   57.581076] R10: 00000000ffff1300 R11: 0000000000000002 R12: 0000000000000000\n[   57.581695] R13: ffff8881047ffe00 R14: ffff888108dbee00 R15: ffff88814519b800\n[   57.582313] FS:  0000000000000000(0000) GS:ffff88885f840000(0000) knlGS:0000000000000000\n[   57.583040] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[   57.583564] CR2: 000000c4206aa000 CR3: 0000000103847001 CR4: 0000000000370eb0\n[   57.584194] DR0: 0000000000000000 DR1: 0000000000000000 DR2:\n0000000000000000\n[   57.584820] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:\n0000000000000400\n[   57.585440] Call Trace:\n[   57.585721]  \u003cIRQ\u003e\n[   57.585976]  ? __warn+0x7d/0x130\n[   57.586323]  ? br_nf_local_in+0x157/0x180 [br_netfilter]\n[   57.586811]  ? report_bug+0xf1/0x1c0\n[   57.587177]  ? handle_bug+0x3f/0x70\n[   57.587539]  ? exc_invalid_op+0x13/0x60\n[   57.587929]  ? asm_exc_invalid_op+0x16/0x20\n[   57.588336]  ? br_nf_local_in+0x157/0x180 [br_netfilter]\n[   57.588825]  nf_hook_slow+0x3d/0xd0\n[   57.589188]  ? br_handle_vlan+0x4b/0x110\n[   57.589579]  br_pass_frame_up+0xfc/0x150\n[   57.589970]  ? br_port_flags_change+0x40/0x40\n[   57.590396]  br_handle_frame_finish+0x346/0x5e0\n[   57.590837]  ? ipt_do_table+0x32e/0x430\n[   57.591221]  ? br_handle_local_finish+0x20/0x20\n[   57.591656]  br_nf_hook_thresh+0x4b/0xf0 [br_netfilter]\n[   57.592286]  ? br_handle_local_finish+0x20/0x20\n[   57.592802]  br_nf_pre_routing_finish+0x178/0x480 [br_netfilter]\n[   57.593348]  ? br_handle_local_finish+0x20/0x20\n[   57.593782]  ? nf_nat_ipv4_pre_routing+0x25/0x60 [nf_nat]\n[   57.594279]  br_nf_pre_routing+0x24c/0x550 [br_netfilter]\n[   57.594780]  ? br_nf_hook_thresh+0xf0/0xf0 [br_netfilter]\n[   57.595280]  br_handle_frame+0x1f3/0x3d0\n[   57.595676]  ? br_handle_local_finish+0x20/0x20\n[   57.596118]  ? br_handle_frame_finish+0x5e0/0x5e0\n[   57.596566]  __netif_receive_skb_core+0x25b/0xfc0\n[   57.597017]  ? __napi_build_skb+0x37/0x40\n[   57.597418]  __netif_receive_skb_list_core+0xfb/0x220"
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.2,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The defect is in the bridge receive path (net/bridge/br_input.c \u2192 br_nf_local_in), driven purely by received frames and their IP/L4 content, which determines the conntrack tuple; on a bridging VM/container host any remote sender\u0027s packets routed to a bridged guest arrive with pkt_type != PACKET_HOST and take this exact path. No authentication, session, or local access is needed \u2014 only the ability to get packets to a bridged endpoint.\nAC:L - Once the bridge device is in promiscuous mode (set automatically by macvlan/macvtap on top of br0, or by any tap/tcpdump \u2014 the reporter\u0027s own routine test setup), every frame crossing the bridge deterministically reaches br_pass_frame_up() and the conntrack confirm hook; the attacker wins no race and needs no special memory layout. br_netfilter + conntrack + bridging is the default configuration on Docker/Kubernetes/libvirt hosts, not a rare option.\nPR:N - The path runs in softirq context on packet receive with no capability, credential, or authentication check anywhere between the NIC and br_nf_local_in(). An unauthenticated sender is sufficient; the alternative local route via unprivileged user namespaces would only be PR:L, so None is the correct broader value.\nUI:N - Triggering requires only that the attacker transmit frames that traverse the bridge; no administrator or user on the target system needs to open, mount, or click anything.\nS:U - The faulty conntrack confirmation, the WARN, and any resulting state damage are all contained within the kernel\u0027s own network stack and its security authority. There is no crossing of a VM, IOMMU, or sandbox boundary.\nC:N - The bug confirms conntrack entries and emits warnings; no attacker-observable memory contents or kernel addresses are returned to the attacker. The stale conntrack pointer read on the clash path feeds only a WARN_ON_ONCE and never propagates data outward.\nI:L - Attacker traffic causes the host to create and confirm conntrack entries for flows it is not a party to, and confirmation at LOCAL_IN explicitly disables NAT and conntrack helpers for those flows (per commit 62e7151ae3eb), so a bridging firewall silently fails to apply its NAT/helper policy and its connection-tracking state is polluted with attacker-seeded entries. This is a bounded, security-relevant modification of kernel firewall state rather than arbitrary write capability.\nA:H - Remotely sent frames trigger kernel WARN splats in br_nf_local_in() and __nf_conntrack_confirm(), which is a kernel panic on the many hardened/cloud/CI kernels built with panic_on_warn=1. Even without that, the failed concurrent confirms return NF_DROP (packet loss on the bridge) and a promiscuous bridge under attacker traffic fills the conntrack table with entries for observed third-party flows, exhausting nf_conntrack_max and denying service to the host\u0027s own and forwarded traffic."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:29:01.313Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/dceb683ab87ca3666a9bb5c0158528b646faedc4"
        },
        {
          "url": "https://git.kernel.org/stable/c/b13db0d16bc7b2a52abcf5cb71334f63faa5dbd6"
        },
        {
          "url": "https://git.kernel.org/stable/c/3f59ac29dea0921637053908fe99268d157bbb9d"
        },
        {
          "url": "https://git.kernel.org/stable/c/43193174510ea4f3ce09b796e559a2fd9f148615"
        },
        {
          "url": "https://git.kernel.org/stable/c/751de2012eafa4d46d8081056761fa0e9cc8a178"
        }
      ],
      "title": "netfilter: br_netfilter: skip conntrack input hook for promisc packets",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-27018",
    "datePublished": "2024-05-01T05:30:06.472Z",
    "dateReserved": "2024-02-19T14:20:24.209Z",
    "dateUpdated": "2026-08-05T11:29:01.313Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/dceb683ab87ca3666a9bb5c0158528b646faedc4\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/b13db0d16bc7b2a52abcf5cb71334f63faa5dbd6\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/3f59ac29dea0921637053908fe99268d157bbb9d\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/43193174510ea4f3ce09b796e559a2fd9f148615\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/751de2012eafa4d46d8081056761fa0e9cc8a178\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DAMSOZXJEPUOXW33WZYWCVAY7Z5S7OOY/\"}, {\"url\": \"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4EZ6PJW7VOZ224TD7N4JZNU6KV32ZJ53/\"}, {\"url\": \"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/GCBZZEC7L7KTWWAS2NLJK6SO3IZIL4WW/\"}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2025-11-04T17:17:28.322Z\"}}, {\"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-27018\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-05-23T17:22:22.725918Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-05-23T19:01:25.753Z\"}, \"title\": \"CISA ADP Vulnrichment\"}], \"cna\": {\"title\": \"netfilter: br_netfilter: skip conntrack input hook for promisc packets\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 8.2, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:N - The defect is in the bridge receive path (net/bridge/br_input.c \\u2192 br_nf_local_in), driven purely by received frames and their IP/L4 content, which determines the conntrack tuple; on a bridging VM/container host any remote sender\u0027s packets routed to a bridged guest arrive with pkt_type != PACKET_HOST and take this exact path. No authentication, session, or local access is needed \\u2014 only the ability to get packets to a bridged endpoint.\\nAC:L - Once the bridge device is in promiscuous mode (set automatically by macvlan/macvtap on top of br0, or by any tap/tcpdump \\u2014 the reporter\u0027s own routine test setup), every frame crossing the bridge deterministically reaches br_pass_frame_up() and the conntrack confirm hook; the attacker wins no race and needs no special memory layout. br_netfilter + conntrack + bridging is the default configuration on Docker/Kubernetes/libvirt hosts, not a rare option.\\nPR:N - The path runs in softirq context on packet receive with no capability, credential, or authentication check anywhere between the NIC and br_nf_local_in(). An unauthenticated sender is sufficient; the alternative local route via unprivileged user namespaces would only be PR:L, so None is the correct broader value.\\nUI:N - Triggering requires only that the attacker transmit frames that traverse the bridge; no administrator or user on the target system needs to open, mount, or click anything.\\nS:U - The faulty conntrack confirmation, the WARN, and any resulting state damage are all contained within the kernel\u0027s own network stack and its security authority. There is no crossing of a VM, IOMMU, or sandbox boundary.\\nC:N - The bug confirms conntrack entries and emits warnings; no attacker-observable memory contents or kernel addresses are returned to the attacker. The stale conntrack pointer read on the clash path feeds only a WARN_ON_ONCE and never propagates data outward.\\nI:L - Attacker traffic causes the host to create and confirm conntrack entries for flows it is not a party to, and confirmation at LOCAL_IN explicitly disables NAT and conntrack helpers for those flows (per commit 62e7151ae3eb), so a bridging firewall silently fails to apply its NAT/helper policy and its connection-tracking state is polluted with attacker-seeded entries. This is a bounded, security-relevant modification of kernel firewall state rather than arbitrary write capability.\\nA:H - Remotely sent frames trigger kernel WARN splats in br_nf_local_in() and __nf_conntrack_confirm(), which is a kernel panic on the many hardened/cloud/CI kernels built with panic_on_warn=1. Even without that, the failed concurrent confirms return NF_DROP (packet loss on the bridge) and a promiscuous bridge under attacker traffic fills the conntrack table with entries for observed third-party flows, exhausting nf_conntrack_max and denying service to the host\u0027s own and forwarded traffic.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"7c3f28599652acf431a2211168de4a583f30b6d5\", \"lessThan\": \"dceb683ab87ca3666a9bb5c0158528b646faedc4\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"2b1414d5e94e477edff1d2c79030f1d742625ea0\", \"lessThan\": \"b13db0d16bc7b2a52abcf5cb71334f63faa5dbd6\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"80cd0487f630b5382734997c3e5e3003a77db315\", \"lessThan\": \"3f59ac29dea0921637053908fe99268d157bbb9d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"62e7151ae3eb465e0ab52a20c941ff33bb6332e9\", \"lessThan\": \"43193174510ea4f3ce09b796e559a2fd9f148615\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"62e7151ae3eb465e0ab52a20c941ff33bb6332e9\", \"lessThan\": \"751de2012eafa4d46d8081056761fa0e9cc8a178\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"cb734975b0ffa688ff6cc0eed463865bf07b6c01\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"5.15.151\", \"lessThan\": \"5.15.157\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.1.81\", \"lessThan\": \"6.1.88\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.6.21\", \"lessThan\": \"6.6.29\", \"versionType\": \"semver\"}, {\"status\": \"affected\", \"version\": \"6.7.9\", \"lessThan\": \"6.8\", \"versionType\": \"semver\"}], \"programFiles\": [\"net/bridge/br_input.c\", \"net/bridge/br_netfilter_hooks.c\", \"net/bridge/br_private.h\", \"net/bridge/netfilter/nf_conntrack_bridge.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.8\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.8\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.15.157\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.88\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.29\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.8\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"net/bridge/br_input.c\", \"net/bridge/br_netfilter_hooks.c\", \"net/bridge/br_private.h\", \"net/bridge/netfilter/nf_conntrack_bridge.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/dceb683ab87ca3666a9bb5c0158528b646faedc4\"}, {\"url\": \"https://git.kernel.org/stable/c/b13db0d16bc7b2a52abcf5cb71334f63faa5dbd6\"}, {\"url\": \"https://git.kernel.org/stable/c/3f59ac29dea0921637053908fe99268d157bbb9d\"}, {\"url\": \"https://git.kernel.org/stable/c/43193174510ea4f3ce09b796e559a2fd9f148615\"}, {\"url\": \"https://git.kernel.org/stable/c/751de2012eafa4d46d8081056761fa0e9cc8a178\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnetfilter: br_netfilter: skip conntrack input hook for promisc packets\\n\\nFor historical reasons, when bridge device is in promisc mode, packets\\nthat are directed to the taps follow bridge input hook path. This patch\\nadds a workaround to reset conntrack for these packets.\\n\\nJianbo Liu reports warning splats in their test infrastructure where\\ncloned packets reach the br_netfilter input hook to confirm the\\nconntrack object.\\n\\nScratch one bit from BR_INPUT_SKB_CB to annotate that this packet has\\nreached the input hook because it is passed up to the bridge device to\\nreach the taps.\\n\\n[   57.571874] WARNING: CPU: 1 PID: 0 at net/bridge/br_netfilter_hooks.c:616 br_nf_local_in+0x157/0x180 [br_netfilter]\\n[   57.572749] Modules linked in: xt_MASQUERADE nf_conntrack_netlink nfnetlink iptable_nat xt_addrtype xt_conntrack nf_nat br_netfilter rpcsec_gss_krb5 auth_rpcgss oid_registry overlay rpcrdma rdma_ucm ib_iser libiscsi scsi_transport_isc si ib_umad rdma_cm ib_ipoib iw_cm ib_cm mlx5_ib ib_uverbs ib_core mlx5ctl mlx5_core\\n[   57.575158] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.8.0+ #19\\n[   57.575700] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014\\n[   57.576662] RIP: 0010:br_nf_local_in+0x157/0x180 [br_netfilter]\\n[   57.577195] Code: fe ff ff 41 bd 04 00 00 00 be 04 00 00 00 e9 4a ff ff ff be 04 00 00 00 48 89 ef e8 f3 a9 3c e1 66 83 ad b4 00 00 00 04 eb 91 \u003c0f\u003e 0b e9 f1 fe ff ff 0f 0b e9 df fe ff ff 48 89 df e8 b3 53 47 e1\\n[   57.578722] RSP: 0018:ffff88885f845a08 EFLAGS: 00010202\\n[   57.579207] RAX: 0000000000000002 RBX: ffff88812dfe8000 RCX: 0000000000000000\\n[   57.579830] RDX: ffff88885f845a60 RSI: ffff8881022dc300 RDI: 0000000000000000\\n[   57.580454] RBP: ffff88885f845a60 R08: 0000000000000001 R09: 0000000000000003\\n[   57.581076] R10: 00000000ffff1300 R11: 0000000000000002 R12: 0000000000000000\\n[   57.581695] R13: ffff8881047ffe00 R14: ffff888108dbee00 R15: ffff88814519b800\\n[   57.582313] FS:  0000000000000000(0000) GS:ffff88885f840000(0000) knlGS:0000000000000000\\n[   57.583040] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\\n[   57.583564] CR2: 000000c4206aa000 CR3: 0000000103847001 CR4: 0000000000370eb0\\n[   57.584194] DR0: 0000000000000000 DR1: 0000000000000000 DR2:\\n0000000000000000\\n[   57.584820] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7:\\n0000000000000400\\n[   57.585440] Call Trace:\\n[   57.585721]  \u003cIRQ\u003e\\n[   57.585976]  ? __warn+0x7d/0x130\\n[   57.586323]  ? br_nf_local_in+0x157/0x180 [br_netfilter]\\n[   57.586811]  ? report_bug+0xf1/0x1c0\\n[   57.587177]  ? handle_bug+0x3f/0x70\\n[   57.587539]  ? exc_invalid_op+0x13/0x60\\n[   57.587929]  ? asm_exc_invalid_op+0x16/0x20\\n[   57.588336]  ? br_nf_local_in+0x157/0x180 [br_netfilter]\\n[   57.588825]  nf_hook_slow+0x3d/0xd0\\n[   57.589188]  ? br_handle_vlan+0x4b/0x110\\n[   57.589579]  br_pass_frame_up+0xfc/0x150\\n[   57.589970]  ? br_port_flags_change+0x40/0x40\\n[   57.590396]  br_handle_frame_finish+0x346/0x5e0\\n[   57.590837]  ? ipt_do_table+0x32e/0x430\\n[   57.591221]  ? br_handle_local_finish+0x20/0x20\\n[   57.591656]  br_nf_hook_thresh+0x4b/0xf0 [br_netfilter]\\n[   57.592286]  ? br_handle_local_finish+0x20/0x20\\n[   57.592802]  br_nf_pre_routing_finish+0x178/0x480 [br_netfilter]\\n[   57.593348]  ? br_handle_local_finish+0x20/0x20\\n[   57.593782]  ? nf_nat_ipv4_pre_routing+0x25/0x60 [nf_nat]\\n[   57.594279]  br_nf_pre_routing+0x24c/0x550 [br_netfilter]\\n[   57.594780]  ? br_nf_hook_thresh+0xf0/0xf0 [br_netfilter]\\n[   57.595280]  br_handle_frame+0x1f3/0x3d0\\n[   57.595676]  ? br_handle_local_finish+0x20/0x20\\n[   57.596118]  ? br_handle_frame_finish+0x5e0/0x5e0\\n[   57.596566]  __netif_receive_skb_core+0x25b/0xfc0\\n[   57.597017]  ? __napi_build_skb+0x37/0x40\\n[   57.597418]  __netif_receive_skb_list_core+0xfb/0x220\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.157\", \"versionStartIncluding\": \"5.15.151\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.88\", \"versionStartIncluding\": \"6.1.81\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.29\", \"versionStartIncluding\": \"6.6.21\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.8\", \"versionStartIncluding\": \"6.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"6.8\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionStartIncluding\": \"6.7.9\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:29:01.313Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-27018\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:29:01.313Z\", \"dateReserved\": \"2024-02-19T14:20:24.209Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-01T05:30:06.472Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…