{
  "cveId": "CVE-2021-47139",
  "url": "https://patchblox.com/security/cve/CVE-2021-47139",
  "summary": "CVE-2021-47139 is fixed in linux on 1 platform, first by DEBIAN-CVE-2021-47139, released March 25, 2024. It is not reported as exploited. Patch Radar priority: Routine.",
  "title": "linux: In the Linux kernel, the following vulnerability has been resolved:  net: hns3: put off calling register_netdev() unt...",
  "description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: put off calling register_netdev() until client initialize complete  Currently, the netdevice is registered before client initializing complete. So there is a timewindow between netdevice available and usable. In this case, if user try to change the channel number or ring param, it may cause the hns3_set_rx_cpu_rmap() being called twice, and report bug.  [47199.416502] hns3 0000:35:00.0 eth1: set channels: tqp_num=1, rxfh=0 [47199.430340] hns3 0000:35:00.0 eth1: already uninitialized [47199.438554] hns3 0000:35:00.0: rss changes from 4 to 1 [47199.511854] hns3 0000:35:00.0: Channels changed, rss_size from 4 to 1, tqps from 4 to 1 [47200.163524] ------------[ cut here ]------------ [47200.171674] kernel BUG at lib/cpu_rmap.c:142! [47200.177847] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [47200.185259] Modules linked in: hclge(\u002B) hns3(-) hns3_cae(O) hns_roce_hw_v2 hnae3 vfio_iommu_type1 vfio_pci vfio_virqfd vfio pv680_mii(O) [last unloaded: hclge] [47200.205912] CPU: 1 PID: 8260 Comm: ethtool Tainted: G           O      5.11.0-rc3\u002B #1 [47200.215601] Hardware name:  , xxxxxx 02/04/2021 [47200.223052] pstate: 60400009 (nZCv daif \u002BPAN -UAO -TCO BTYPE=--) [47200.230188] pc : cpu_rmap_add\u002B0x38/0x40 [47200.237472] lr : irq_cpu_rmap_add\u002B0x84/0x140 [47200.243291] sp : ffff800010e93a30 [47200.247295] x29: ffff800010e93a30 x28: ffff082100584880 [47200.254155] x27: 0000000000000000 x26: 0000000000000000 [47200.260712] x25: 0000000000000000 x24: 0000000000000004 [47200.267241] x23: ffff08209ba03000 x22: ffff08209ba038c0 [47200.273789] x21: 000000000000003f x20: ffff0820e2bc1680 [47200.280400] x19: ffff0820c970ec80 x18: 00000000000000c0 [47200.286944] x17: 0000000000000000 x16: ffffb43debe4a0d0 [47200.293456] x15: fffffc2082990600 x14: dead000000000122 [47200.300059] x13: ffffffffffffffff x12: 000000000000003e [47200.306606] x11: ffff0820815b8080 x10: ffff53e411988000 [47200.313171] x9 : 0000000000000000 x8 : ffff0820e2bc1700 [47200.319682] x7 : 0000000000000000 x6 : 000000000000003f [47200.326170] x5 : 0000000000000040 x4 : ffff800010e93a20 [47200.332656] x3 : 0000000000000004 x2 : ffff0820c970ec80 [47200.339168] x1 : ffff0820e2bc1680 x0 : 0000000000000004 [47200.346058] Call trace: [47200.349324]  cpu_rmap_add\u002B0x38/0x40 [47200.354300]  hns3_set_rx_cpu_rmap\u002B0x6c/0xe0 [hns3] [47200.362294]  hns3_reset_notify_init_enet\u002B0x1cc/0x340 [hns3] [47200.370049]  hns3_change_channels\u002B0x40/0xb0 [hns3] [47200.376770]  hns3_set_channels\u002B0x12c/0x2a0 [hns3] [47200.383353]  ethtool_set_channels\u002B0x140/0x250 [47200.389772]  dev_ethtool\u002B0x714/0x23d0 [47200.394440]  dev_ioctl\u002B0x4cc/0x640 [47200.399277]  sock_do_ioctl\u002B0x100/0x2a0 [47200.404574]  sock_ioctl\u002B0x28c/0x470 [47200.409079]  __arm64_sys_ioctl\u002B0xb4/0x100 [47200.415217]  el0_svc_common.constprop.0\u002B0x84/0x210 [47200.422088]  do_el0_svc\u002B0x28/0x34 [47200.426387]  el0_svc\u002B0x28/0x70 [47200.431308]  el0_sync_handler\u002B0x1a4/0x1b0 [47200.436477]  el0_sync\u002B0x174/0x180 [47200.441562] Code: 11000405 79000c45 f8247861 d65f03c0 (d4210000) [47200.448869] ---[ end trace a01efe4ce42e5f34 ]---  The process is like below: excuting hns3_client_init | register_netdev() |                           hns3_set_channels() |                           | hns3_set_rx_cpu_rmap()      hns3_reset_notify_uninit_enet() |                               | |                            quit without calling function |                            hns3_free_rx_cpu_rmap for flag |                            HNS3_NIC_STATE_INITED is unset. |                           | |                           hns3_reset_notify_init_enet() |                               | set HNS3_NIC_STATE_INITED    call hns3_set_rx_cpu_rmap()-- crash  Fix it by calling register_netdev() at the end of function hns3_client_init().",
  "published": "2024-03-25T09:15:08Z",
  "severity": "medium",
  "cvss": 5.5,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
  "epss": 0.00227,
  "epssPercentile": 0.1349,
  "priority": "Routine",
  "priorityTier": 4,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "5.14.6-1",
      "fix": "DEBIAN-CVE-2021-47139",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2021-47139",
      "released": "2024-03-25T09:15:08Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "5.14.6-1",
      "fix": "DEBIAN-CVE-2021-47139",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2021-47139",
      "released": "2024-03-25T09:15:08Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "5.14.6-1",
      "fix": "DEBIAN-CVE-2021-47139",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2021-47139",
      "released": "2024-03-25T09:15:08Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-09T07:25:28Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}