Description
In the Linux kernel, the following vulnerability has been resolved: hinic3: Fix skb linearization mismatch and drop skb when skb_checksum_help() failed Previously, hinic3_send_one_skb() cached the skb fragment count before calling hinic3_tx_offload(). If hinic3_tx_csum() falls back to skb_checksum_help() 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 skb_checksum_help(), transmitting corrupted packets with incomplete checksums upon failure. Fix this by: 1. Moving the hinic3_tx_offload() call before calculating 'num_sge' to ensure the correct fragment count is used if the SKB is linearized. 2. Propagating skb_checksum_help() errors and returning HINIC3_TX_OFFLOAD_INVALID to properly drop the skb.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
17fcb3dc12bbee8ec3e32ca1f60898f252e06b2d to < e794cdc5c369c1b06359e2fe03a8d9270f56beadaffected17fcb3dc12bbee8ec3e32ca1f60898f252e06b2d to < 96c3959770386b2913c62005f0d0c3151e0c01c3affected17fcb3dc12bbee8ec3e32ca1f60898f252e06b2d to < d0c2bed6927cbfa2cb51f240b4812bf6916bce0eaffected
Linux Linux
Default version status: affected
6.16affected0 to < 6.16unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected