UBUNTU-CVE-2026-90145: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: hinic3: Fix skb linearization mismatch and drop skb when skbchecksumhelp() failed Previously, hinic3sendoneskb() cached the skb fragment count before calling hinic3txoffload(). If hinic3txcsum() falls back to skbchecksumhelp() for unsupported tunnel packets, the skb may be linearized. Continuing to build the TX descriptor with the stale fragment count leads to a descriptor mismatch, which can trigger out-of-bounds DMA reads or IOMMU faults. Furthermore, the old code ignored the return value of skbchecksumhelp(), transmitting corrupted packets with incomplete checksums upon failure. Fix this by: 1. Moving the hinic3txoffload() call before calculating 'numsge' to ensure the correct fragment count is used if the SKB is linearized. 2. Propagating skbchecksumhelp() errors and returning HINIC3TXOFFLOADINVALID to properly drop the skb.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Compensating control
In hinic3_send_one_skb(), call hinic3_tx_offload() before calculating num_sge so the descriptor uses the current fragment count after possible SKB linearization; propagate skb_checksum_help() errors by returning HINIC3_TX_OFFLOAD_INVALID and drop the SKB when checksum assistance fails.