In the Linux kernel, the following vulnerability has been resolved:
net: dcb: choose correct policy to parse DCB_ATTR_BCN
The dcbnl_bcn_setcfg uses erroneous policy to parse tb[DCB_ATTR_BCN], which is introduced in commit 859ee3c43812 ("DCB: Add support for DCB BCN"). Please see the comment in below code
static int dcbnl_bcn_setcfg(...) { ... ret = nla_parse_nested_deprecated(..., dcbnl_pfc_up_nest, .. ) // !!! dcbnl_pfc_up_nest for attributes // DCB_PFC_UP_ATTR_0 to DCB_PFC_UP_ATTR_ALL in enum dcbnl_pfc_up_attrs ... for (i = DCB_BCN_ATTR_RP_0; i <= DCB_BCN_ATTR_RP_7; i++) { // !!! DCB_BCN_ATTR_RP_0 to DCB_BCN_ATTR_RP_7 in enum dcbnl_bcn_attrs ... value_byte = nla_get_u8(data[i]); ... } ... for (i = DCB_BCN_ATTR_BCNA_0; i <= DCB_BCN_ATTR_RI; i++) { // !!! DCB_BCN_ATTR_BCNA_0 to DCB_BCN_ATTR_RI in enum dcbnl_bcn_attrs ... value_int = nla_get_u32(data[i]); ... } ... }
That is, the nla_parse_nested_deprecated uses dcbnl_pfc_up_nest attributes to parse nlattr defined in dcbnl_pfc_up_attrs. But the following access code fetch each nlattr as dcbnl_bcn_attrs attributes. By looking up the associated nla_policy for dcbnl_bcn_attrs. We can find the beginning part of these two policies are "same".
static const struct nla_policy dcbnl_pfc_up_nest[...] = { [DCB_PFC_UP_ATTR_0] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_1] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_2] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_3] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_4] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_5] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_6] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_7] = {.type = NLA_U8}, [DCB_PFC_UP_ATTR_ALL] = {.type = NLA_FLAG}, };
static const struct nla_policy dcbnl_bcn_nest[...] = { [DCB_BCN_ATTR_RP_0] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_1] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_2] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_3] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_4] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_5] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_6] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_7] = {.type = NLA_U8}, [DCB_BCN_ATTR_RP_ALL] = {.type = NLA_FLAG}, // from here is somewhat different [DCB_BCN_ATTR_BCNA_0] = {.type = NLA_U32}, ... [DCB_BCN_ATTR_ALL] = {.type = NLA_FLAG}, };
Therefore, the current code is buggy and this nla_parse_nested_deprecated could overflow the dcbnl_pfc_up_nest and use the adjacent nla_policy to parse attributes from DCB_BCN_ATTR_BCNA_0.
Hence use the correct policy dcbnl_bcn_nest to parse the nested tb[DCB_ATTR_BCN] TLV.
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernel-debuginfo-common-aarch64Upgrade perf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-develUpgrade kernel-headersUpgrade kernel-tools-develUpgrade kernel-debuginfoUpgrade kernelUpgrade kernel-toolsUpgrade kernel-livepatch-5.15.128-80.144Upgrade python-perf-debuginfoUpgrade python-perfUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.10.192-182.736Upgrade perf | May 20, 2026 | May 20, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel-debuginfo-common-aarch64Upgrade kernelUpgrade perf-debuginfoUpgrade python3-perfUpgrade kernel-libbpf-develUpgrade kernel-tools-develUpgrade perfUpgrade kernel-toolsUpgrade kernel-libbpf-staticUpgrade kernel-headersUpgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade python3-perf-debuginfoUpgrade kernel-livepatch-6.1.49-69.116Upgrade kernel-libbpfUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade kernel-develUpgrade kernel-debuginfo | Oct 16, 2025 | Sep 18, 2025 |
| Debian | — | Upgrade linux | Sep 22, 2025 | Sep 22, 2025 |
| Huawei Euleros 2_0_sp13 | — | Upgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-toolsUpgrade bpftoolUpgrade kernelUpgrade kernel-abi-stablelists | Mar 10, 2026 | Mar 10, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Sep 18, 2025 |
| Ubuntu | — | Upgrade linux-nvidiaUpgrade linux-gcpUpgrade linux-gcp-5.15Upgrade linux-ibmUpgrade linux-gcp-5.4Upgrade linux-azureUpgrade linux-aws-fipsUpgrade linux-nvidia-tegra-igxUpgrade linux-gcp-fipsUpgrade linux-xilinx-zynqmpUpgrade linux-iotUpgrade linux-gkeopUpgrade linux-intel-iotg-5.15Upgrade linux-hwe-5.4Upgrade linux-azure-5.4Upgrade linux-azure-fipsUpgrade linux-intel-iot-realtimeUpgrade linux-oracleUpgrade linux-azure-5.15Upgrade linux-awsUpgrade linux-hwe-5.15Upgrade linux-kvmUpgrade linux-raspi-5.4Upgrade linux-bluefieldUpgrade linux-oracle-5.15Upgrade linux-nvidia-tegraUpgrade linux-aws-5.4Upgrade linux-gkeUpgrade linux-realtimeUpgrade linux-fipsUpgrade linux-intel-iotgUpgrade linux-riscv-5.15Upgrade linux-oracle-5.4Upgrade linux-aws-5.15Upgrade linux-raspiUpgrade linux-lowlatency-hwe-5.15Upgrade linux-azure-fdeUpgrade linux-lowlatencyUpgrade linux-nvidia-tegra-5.15Upgrade linux-ibm-5.4Upgrade linuxUpgrade linux-ibm-5.15 | Sep 26, 2025 | Sep 18, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 15, 2025 | Sep 18, 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