In the Linux kernel, the following vulnerability has been resolved:
x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes
Currently, load_microcode_amd() iterates over all NUMA nodes, retrieves their CPU masks and unconditionally accesses per-CPU data for the first CPU of each mask.
According to Documentation/admin-guide/mm/numaperf.rst:
"Some memory may share the same node as a CPU, and others are provided as memory only nodes."
Therefore, some node CPU masks may be empty and wouldn't have a "first CPU".
On a machine with far memory (and therefore CPU-less NUMA nodes): - cpumask_of_node(nid) is 0 - cpumask_first(0) is CONFIG_NR_CPUS - cpu_data(CONFIG_NR_CPUS) accesses the cpu_info per-CPU array at an index that is 1 out of bounds
This does not have any security implications since flashing microcode is a privileged operation but I believe this has reliability implications by potentially corrupting memory while flashing a microcode update.
When booting with CONFIG_UBSAN_BOUNDS=y on an AMD machine that flashes a microcode update. I get the following splat:
UBSAN: array-index-out-of-bounds in arch/x86/kernel/cpu/microcode/amd.c:X:Y index 512 is out of range for type 'unsigned long[512]' [...] Call Trace: dump_stack __ubsan_handle_out_of_bounds load_microcode_amd request_microcode_amd reload_store kernfs_fop_write_iter vfs_write ksys_write do_syscall_64 entry_SYSCALL_64_after_hwframe
Change the loop to go over only NUMA nodes which have CPUs before determining whether the first CPU on the respective node needs microcode update.
[ bp: Massage commit message, fix typo. ]
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-64k-debug-devel-matchedUpgrade kernel-rt-64k-debug-develUpgrade kernel-rt-coreUpgrade kernel-uki-virtUpgrade kernel-rt-debugUpgrade bpftoolUpgrade kernel-debugUpgrade kernel-rt-kvmUpgrade python3-perfUpgrade kernel-rt-64kUpgrade kernel-uki-virt-addonsUpgrade kernel-64k-modules-extraUpgrade kernel-64k-modules-coreUpgrade kernel-docUpgrade kernel-rt-develUpgrade kernel-rtUpgrade kernel-64k-debug-develUpgrade rvUpgrade kernel-rt-64k-develUpgrade kernel-rt-debug-modules-coreUpgrade kernel-toolsUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-64k-modulesUpgrade kernel-rt-modulesUpgrade kernel-64k-debug-modulesUpgrade kernel-modules-extraUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debug-uki-virtUpgrade kernel-debug-coreUpgrade kernel-64k-develUpgrade kernel-rt-debug-modules-extraUpgrade kernel-64k-debug-modules-coreUpgrade kernel-develUpgrade perfUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-zfcpdumpUpgrade rtlaUpgrade kernel-abi-stablelistsUpgrade kernel-debug-develUpgrade kernel-debug-devel-matchedUpgrade kernel-64k-coreUpgrade kernel-debug-modules-extraUpgrade kernel-rt-modules-extraUpgrade kernel-tools-libs-develUpgrade kernel-64k-debugUpgrade libperfUpgrade kernel-rt-modules-coreUpgrade kernel-64k-debug-modules-extraUpgrade kernel-modules-coreUpgrade kernel-64k-debug-coreUpgrade kernel-zfcpdump-develUpgrade kernel-rt-debug-develUpgrade kernel-modulesUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debug-kvmUpgrade kernel-rt-64k-modules-coreUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-64k-devel-matchedUpgrade kernel-64k-modulesUpgrade kernel-rt-debug-coreUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-modulesUpgrade kernel-devel-matchedUpgrade kernel-headersUpgrade kernel-tools-libsUpgrade kernel-rt-64k-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-cross-headersUpgrade kernel-rt-debug-modulesUpgrade kernel-64kUpgrade kernelUpgrade kernel-rt-64k-debugUpgrade kernel-rt-64k-modules-extraUpgrade kernel-debug-modules-coreUpgrade kernel-coreUpgrade kernel-rt-64k-debug-core | Jul 17, 2025 | Apr 2, 2025 |
| Amazon Linux Ami 2 | — | Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-develUpgrade kernel-tools-develUpgrade kernel-livepatch-5.10.234-225.921Upgrade bpftoolUpgrade kernel-livepatch-5.10.234-225.917Upgrade kernel-livepatch-5.10.234-225.910Upgrade perfUpgrade kernel-livepatch-4.14.355-276.639Upgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-livepatch-5.10.236-227.928Upgrade perf-debuginfoUpgrade kernel-toolsUpgrade kernelUpgrade kernel-debuginfo-common-x86_64Upgrade python-perf-debuginfoUpgrade kernel-headersUpgrade python-perf | Apr 30, 2025 | Apr 2, 2025 |
| Amazon_linux | — | Upgrade kernel | May 22, 2025 | Apr 2, 2025 |
| Amazon_linux_2023 | — | Upgrade kernel-tools-develUpgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-headersUpgrade kernel-tools-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel6.12-debuginfoUpgrade python3-perf6.12Upgrade kernel-libbpfUpgrade kernel-livepatch-6.12.20-23.97Upgrade python3-perf6.12-debuginfoUpgrade kernel-libbpf-develUpgrade kernel6.12-modules-extraUpgrade perf6.12Upgrade kernel-modules-extra-commonUpgrade kernel-toolsUpgrade kernel6.12Upgrade perf6.12-debuginfoUpgrade bpftool-debuginfoUpgrade bpftoolUpgrade kernel-libbpf-debuginfoUpgrade kernel-devel | Apr 30, 2025 | Apr 2, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Apr 14, 2025 | Apr 2, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade bpftoolUpgrade python3-perfUpgrade kernel-abi-stablelists | Jul 1, 2025 | Apr 2, 2025 |
| Oracle_linux | — | Upgrade kernel-uekUpgrade kernel | Jun 30, 2025 | Apr 2, 2025 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Jul 9, 2025 | Apr 2, 2025 |
| Rocky_linux | — | Upgrade kernel-devel-matchedUpgrade libperf-debuginfoUpgrade kernel-rt-debug-kvmUpgrade kernel-modulesUpgrade kernel-rt-modulesUpgrade kernel-zfcpdump-develUpgrade kernel-zfcpdump-modulesUpgrade rtlaUpgrade kernel-zfcpdump-coreUpgrade kernel-zfcpdump-debuginfoUpgrade kernel-debug-develUpgrade kernel-uki-virtUpgrade kernel-rt-debug-modules-coreUpgrade kernel-rt-debug-develUpgrade perf-debuginfoUpgrade kernel-zfcpdumpUpgrade kernel-tools-libs-develUpgrade kernel-debuginfoUpgrade kernel-rt-debug-modules-extraUpgrade kernel-debuginfo-common-s390xUpgrade kernel-debug-devel-matchedUpgrade libperfUpgrade perfUpgrade python3-perfUpgrade kernel-headersUpgrade kernel-rt-modules-coreUpgrade kernel-modules-coreUpgrade kernel-rt-debuginfoUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-uki-virt-addonsUpgrade kernel-rt-debugUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-debug-debuginfoUpgrade kernel-cross-headersUpgrade kernelUpgrade kernel-debug-coreUpgrade kernel-debugUpgrade kernel-rt-debug-coreUpgrade kernel-rt-modules-extraUpgrade kernel-debug-modules-coreUpgrade kernel-tools-libsUpgrade kernel-develUpgrade kernel-rtUpgrade kernel-debug-modulesUpgrade kernel-rt-debug-modulesUpgrade kernel-coreUpgrade kernel-tools-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-toolsUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-debug-uki-virtUpgrade kernel-debug-modules-extraUpgrade kernel-rt-kvmUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debug-debuginfoUpgrade python3-perf-debuginfoUpgrade rvUpgrade kernel-rt-develUpgrade kernel-modules-extraUpgrade bpftoolUpgrade kernel-rt-core | Feb 5, 2026 | Jul 29, 2025 |
| Suse | — | Upgrade kernel-default-baseUpgrade kernel-kvmsmallUpgrade dlm-kmp-defaultUpgrade kernel-rt_debug-vdsoUpgrade kernel-docs-htmlUpgrade kernel-source-rtUpgrade dtb-renesasUpgrade kernel-debug-develUpgrade dtb-nvidiaUpgrade dtb-apmUpgrade kernel-syms-rtUpgrade kernel-azure-extraUpgrade cluster-md-kmp-64kbUpgrade dtb-appleUpgrade kernel-default-extraUpgrade kernel-symsUpgrade dtb-broadcomUpgrade dlm-kmp-azureUpgrade dtb-amlogicUpgrade dtb-armUpgrade kernel-azure-develUpgrade dtb-hisiliconUpgrade kernel-default-livepatch-develUpgrade kernel-64kb-optionalUpgrade kernel-rt-livepatch-develUpgrade reiserfs-kmp-rtUpgrade dtb-socionextUpgrade kernel-rt_debugUpgrade kselftests-kmp-rtUpgrade kernel-rt-vdsoUpgrade dtb-marvellUpgrade kernel-rt-optionalUpgrade kernel-macrosUpgrade kselftests-kmp-defaultUpgrade kernel-defaultUpgrade dtb-amdUpgrade kernel-obs-qaUpgrade kernel-azure-vdsoUpgrade kernel-docsUpgrade ocfs2-kmp-rtUpgrade reiserfs-kmp-64kbUpgrade dtb-sprdUpgrade dlm-kmp-rtUpgrade kernel-kvmsmall-vdsoUpgrade cluster-md-kmp-defaultUpgrade kernel-develUpgrade kernel-syms-azureUpgrade dtb-qcomUpgrade kernel-sourceUpgrade kernel-default-vdsoUpgrade kernel-debugUpgrade gfs2-kmp-defaultUpgrade kernel-devel-azureUpgrade kernel-devel-rtUpgrade ocfs2-kmp-defaultUpgrade dtb-alteraUpgrade reiserfs-kmp-defaultUpgrade kernel-azure-optionalUpgrade dtb-allwinnerUpgrade kselftests-kmp-64kbUpgrade reiserfs-kmp-azureUpgrade kernel-source-vanillaUpgrade kernel-rt_debug-develUpgrade kernel-rt-extraUpgrade kernel-obs-buildUpgrade kernel-kvmsmall-develUpgrade gfs2-kmp-rtUpgrade dtb-lgUpgrade kernel-rt-develUpgrade ocfs2-kmp-azureUpgrade kernel-zfcpdumpUpgrade dtb-xilinxUpgrade kernel-default-optionalUpgrade cluster-md-kmp-rtUpgrade kernel-source-azureUpgrade dlm-kmp-64kbUpgrade gfs2-kmp-azureUpgrade dtb-rockchipUpgrade kernel-debug-vdsoUpgrade dtb-caviumUpgrade kernel-default-livepatchUpgrade kernel-default-develUpgrade gfs2-kmp-64kbUpgrade dtb-mediatekUpgrade kernel-64kb-extraUpgrade kernel-64kb-develUpgrade kernel-64kbUpgrade kernel-default-base-rebuildUpgrade kernel-azureUpgrade dtb-freescaleUpgrade dtb-amazonUpgrade ocfs2-kmp-64kbUpgrade kernel-rtUpgrade kselftests-kmp-azureUpgrade dtb-exynosUpgrade cluster-md-kmp-azure | Dec 5, 2025 | Jul 16, 2025 |
| Ubuntu | — | Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-raspi-hwe-18.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-5.15.0-1039-nvidia-tegraUpgrade linux-image-generic-6.8Upgrade linux-image-realtimeUpgrade linux-image-kvmUpgrade linux-image-5.15.0-1091-azureUpgrade linux-image-oem-20.04dUpgrade linux-image-aws-64kUpgrade linux-image-azure-fipsUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-azureUpgrade linux-image-5.15.0-142-genericUpgrade linux-image-azure-6.8Upgrade linux-image-gke-64k-6.8Upgrade linux-image-5.4.0-1134-kvmUpgrade linux-image-gke-64kUpgrade linux-image-azure-cvmUpgrade linux-image-6.11.0-1017-oracleUpgrade linux-image-6.11.0-28-generic-64kUpgrade linux-image-lowlatency-64k-6.11Upgrade linux-image-gke-6.8Upgrade linux-image-5.4.0-1051-iotUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1039-nvidia-64kUpgrade linux-image-oracle-64kUpgrade linux-image-6.11.0-1024-oemUpgrade linux-image-5.15.0-1050-xilinx-zynqmpUpgrade linux-image-gcpUpgrade linux-image-gkeop-5.15Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04dUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.4.0-1147-aws-fipsUpgrade linux-image-5.4.0-1130-raspiUpgrade linux-image-aws-lts-24.04Upgrade linux-image-5.4.0-1093-ibmUpgrade linux-image-azure-fde-6.8Upgrade linux-image-5.15.0-1083-oracleUpgrade linux-image-generic-64kUpgrade linux-image-5.15.0-1081-intel-iotgUpgrade linux-image-lowlatency-hwe-18.04Upgrade linux-image-6.8.0-85-generic-64kUpgrade linux-image-6.8.0-1036-azure-fdeUpgrade linux-image-6.11.0-1016-gcpUpgrade linux-image-6.8.0-1036-gke-64kUpgrade linux-image-6.11.0-1014-raspiUpgrade linux-image-6.8.0-84-lowlatencyUpgrade linux-image-oem-osp1Upgrade linux-image-virtual-6.8Upgrade linux-image-5.4.0-1153-azure-fipsUpgrade linux-image-aws-6.8Upgrade linux-image-6.11.0-1018-azure-fdeUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-20.04Upgrade linux-image-nvidia-64kUpgrade linux-image-5.15.0-1091-azure-fipsUpgrade linux-image-5.15.0-1086-aws-fipsUpgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1039-nvidiaUpgrade linux-image-5.15.0-142-lowlatency-64kUpgrade linux-image-5.4.0-1106-bluefieldUpgrade linux-image-5.15.0-142-generic-64kUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-5.4.0-1065-xilinx-zynqmpUpgrade linux-image-azure-fde-6.11Upgrade linux-image-virtual-hwe-18.04Upgrade linux-image-generic-hwe-18.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-6.8.0-1040-gcp-64kUpgrade linux-image-oem-20.04cUpgrade linux-image-6.11.0-1015-lowlatency-64kUpgrade linux-image-6.8.0-1039-aws-64kUpgrade linux-image-5.4.0-218-generic-lpaeUpgrade linux-image-6.8.0-85-genericUpgrade linux-image-gcp-fipsUpgrade linux-image-awsUpgrade linux-image-5.15.0-1085-gcp-fipsUpgrade linux-image-gcp-64kUpgrade linux-image-5.15.0-1086-awsUpgrade linux-image-5.4.0-218-genericUpgrade linux-image-raspi-realtimeUpgrade linux-image-6.8.0-1039-nvidia-lowlatency-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-azure-nvidia-lts-24.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-lowlatency-6.11Upgrade linux-image-5.15.0-1039-nvidia-tegra-rtUpgrade linux-image-5.15.0-1086-realtimeUpgrade linux-image-aws-64k-6.8Upgrade linux-image-5.4.0-1121-fipsUpgrade linux-image-oem-22.04cUpgrade linux-image-raspiUpgrade linux-image-5.15.0-1028-nvidia-tegra-igxUpgrade linux-image-6.11.0-1016-gcp-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-intel-iotgUpgrade linux-image-generic-64k-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-azure-fdeUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-intelUpgrade linux-image-nvidia-6.8Upgrade linux-image-aws-lts-20.04Upgrade linux-image-oracle-6.8Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-6.8.0-1037-oracle-64kUpgrade linux-image-gkeUpgrade linux-image-6.11.0-28-genericUpgrade linux-image-ibm-classicUpgrade linux-image-raspi2Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-84-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-5.15.0-1086-aws-64kUpgrade linux-image-oem-20.04bUpgrade linux-image-oem-22.04Upgrade linux-image-gcp-lts-20.04Upgrade linux-image-6.8.0-1025-azure-nvidiaUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-5.15.0-1028-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-1036-gkeUpgrade linux-image-nvidiaUpgrade linux-image-6.8.0-84-genericUpgrade linux-image-aws-fipsUpgrade linux-image-azure-lts-20.04Upgrade linux-image-6.8.0-1038-azureUpgrade linux-image-5.15.0-1079-intel-iot-realtimeUpgrade linux-image-5.15.0-1083-intel-iotgUpgrade linux-image-5.15.0-1068-gkeopUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-raspi-nolpaeUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-ibmUpgrade linux-image-ibm-lts-20.04Upgrade linux-image-gkeopUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-lts-22.04Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-oemUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-azure-nvidia-6.8Upgrade linux-image-5.4.0-1147-awsUpgrade linux-image-5.15.0-1082-kvmUpgrade linux-image-6.8.0-84-generic-64kUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-bluefieldUpgrade linux-image-5.15.0-142-generic-lpaeUpgrade linux-image-6.8.0-1040-gcpUpgrade linux-image-6.11.0-1018-azureUpgrade linux-image-snapdragon-hwe-18.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-gke-5.15Upgrade linux-image-oem-24.04bUpgrade linux-image-6.8.1-1034-realtimeUpgrade linux-image-6.8.0-1039-awsUpgrade linux-image-6.8.0-1038-azure-fdeUpgrade linux-image-6.8.0-1023-gkeopUpgrade linux-image-6.11.0-1015-lowlatencyUpgrade linux-image-5.4.0-1150-gcpUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-5.15.0-1085-gcpUpgrade linux-image-5.4.0-1152-azureUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-azure-fde-edgeUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-142-fipsUpgrade linux-image-5.15.0-1080-raspiUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-5.15.0-142-lowlatencyUpgrade linux-image-gkeop-6.8Upgrade linux-image-fipsUpgrade linux-image-azure-nvidiaUpgrade linux-image-azure-lts-24.04Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-6.11.0-1017-oracle-64kUpgrade linux-image-6.11.0-1011-realtimeUpgrade linux-image-5.4.0-1145-oracleUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oracle-lts-20.04Upgrade linux-image-5.15.0-1083-gkeUpgrade linux-image-genericUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-ibm-6.8Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-6.8.0-2031-raspi-realtimeUpgrade linux-image-6.8.0-1036-azureUpgrade linux-image-5.4.0-1150-gcp-fipsUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-6.8.0-1037-oracleUpgrade linux-image-6.8.0-1039-nvidia-lowlatencyUpgrade linux-image-5.4.0-218-lowlatencyUpgrade linux-image-6.8.0-1039-raspiUpgrade linux-image-5.15.0-1080-nvidia-lowlatencyUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-5.15.0-1080-nvidiaUpgrade linux-image-generic-lpaeUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-virtualUpgrade linux-image-6.11.0-1015-awsUpgrade linux-image-5.15.0-1078-ibmUpgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-tegraUpgrade linux-image-lowlatencyUpgrade linux-image-azure-6.11Upgrade linux-image-6.8.0-1037-ibm | Jun 20, 2025 | Apr 2, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Sep 22, 2025 | Apr 2, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub