Skip to content
OpenAdvisories
High · 7.8 CVE-2025-40079 EUVD-2025-36449GHSA-hw24-w8rj-6q65

riscv, bpf: Sign extend struct ops return values properly

Published Oct 28, 2025 · Updated Aug 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.14 Package: linux-aws-6.17 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.14 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.14 Package: linux-azure-fde-6.2 Package: linux-azure-fde-6.8 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-azure-nvidia-6.14 Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.14 Package: linux-gcp-6.17 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.14 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-lowlatency Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.17 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.14 Package: linux-oem-6.17 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.14 Package: linux-oracle-6.17 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.14 Package: linux-realtime-6.17 Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

riscv, bpf: Sign extend struct ops return values properly

The ns_bpf_qdisc selftest triggers a kernel panic:

Unable to handle kernel paging request at virtual address ffffffffa38dbf58
Current test_progs pgtable: 4K pagesize, 57-bit VAs, pgdp=0x00000001109cc000
[ffffffffa38dbf58] pgd=000000011fffd801, p4d=000000011fffd401, pud=000000011fffd001, pmd=0000000000000000
Oops [#1]
Modules linked in: bpf_testmod(OE) xt_conntrack nls_iso8859_1 [...] [last unloaded: bpf_testmod(OE)]
CPU: 1 UID: 0 PID: 23584 Comm: test_progs Tainted: G W OE 6.17.0-rc1-g2465bb83e0b4 #1 NONE
Tainted: [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
Hardware name: Unknown Unknown Product/Unknown Product, BIOS 2024.01+dfsg-1ubuntu5.1 01/01/2024
epc : __qdisc_run+0x82/0x6f0
ra : __qdisc_run+0x6e/0x6f0
epc : ffffffff80bd5c7a ra : ffffffff80bd5c66 sp : ff2000000eecb550
gp : ffffffff82472098 tp : ff60000096895940 t0 : ffffffff8001f180
t1 : ffffffff801e1664 t2 : 0000000000000000 s0 : ff2000000eecb5d0
s1 : ff60000093a6a600 a0 : ffffffffa38dbee8 a1 : 0000000000000001
a2 : ff2000000eecb510 a3 : 0000000000000001 a4 : 0000000000000000
a5 : 0000000000000010 a6 : 0000000000000000 a7 : 0000000000735049
s2 : ffffffffa38dbee8 s3 : 0000000000000040 s4 : ff6000008bcda000
s5 : 0000000000000008 s6 : ff60000093a6a680 s7 : ff60000093a6a6f0
s8 : ff60000093a6a6ac s9 : ff60000093140000 s10: 0000000000000000
s11: ff2000000eecb9d0 t3 : 0000000000000000 t4 : 0000000000ff0000
t5 : 0000000000000000 t6 : ff60000093a6a8b6
status: 0000000200000120 badaddr: ffffffffa38dbf58 cause: 000000000000000d
[<ffffffff80bd5c7a>] __qdisc_run+0x82/0x6f0
[<ffffffff80b6fe58>] __dev_queue_xmit+0x4c0/0x1128
[<ffffffff80b80ae0>] neigh_resolve_output+0xd0/0x170
[<ffffffff80d2daf6>] ip6_finish_output2+0x226/0x6c8
[<ffffffff80d31254>] ip6_finish_output+0x10c/0x2a0
[<ffffffff80d31446>] ip6_output+0x5e/0x178
[<ffffffff80d2e232>] ip6_xmit+0x29a/0x608
[<ffffffff80d6f4c6>] inet6_csk_xmit+0xe6/0x140
[<ffffffff80c985e4>] __tcp_transmit_skb+0x45c/0xaa8
[<ffffffff80c995fe>] tcp_connect+0x9ce/0xd10
[<ffffffff80d66524>] tcp_v6_connect+0x4ac/0x5e8
[<ffffffff80cc19b8>] __inet_stream_connect+0xd8/0x318
[<ffffffff80cc1c36>] inet_stream_connect+0x3e/0x68
[<ffffffff80b42b20>] __sys_connect_file+0x50/0x88
[<ffffffff80b42bee>] __sys_connect+0x96/0xc8
[<ffffffff80b42c40>] __riscv_sys_connect+0x20/0x30
[<ffffffff80e5bcae>] do_trap_ecall_u+0x256/0x378
[<ffffffff80e69af2>] handle_exception+0x14a/0x156
Code: 892a 0363 1205 489c 8bc1 c7e5 2d03 084a 2703 080a (2783) 0709
---[ end trace 0000000000000000 ]---

The bpf_fifo_dequeue prog returns a skb which is a pointer. The pointer
is treated as a 32bit value and sign extend to 64bit in epilogue. This
behavior is right for most bpf prog types but wrong for struct ops which
requires RISC-V ABI.

So let's sign extend struct ops return values according to the function
model and RISC-V ABI([0]).

[0]: https://riscv.org/wp-content/uploads/2024/12/riscv-calling.pdf

Affected products

VendorProductAffectedFixed
Linux Linux 6.6 6.12.53

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.17.6-1 —
Debian 13 linux 6.12.57-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 24.04 LTS linux-bluefield 6.8.0-1017.21 —
Ubuntu 25.10 linux 6.17.0-14.14 USN-8029-1
Ubuntu 25.10 linux-aws +2 6.17.0-1007.7 USN-8030-1, USN-8029-2
Ubuntu 25.10 linux-azure +1 6.17.0-1008.8 USN-8029-3, USN-8029-1
Ubuntu 25.10 linux-azure-fde No fix yet —
Ubuntu 25.10 linux-realtime 6.17.0-1006.7 USN-8029-1
Ubuntu 25.10 linux-riscv 6.17.0-14.14.1 —
Ubuntu 24.04 LTS linux 6.8.0-106.106 USN-8095-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1050.53 USN-8095-1
Ubuntu 24.04 LTS linux-aws-6.17 +1 6.17.0-1007.7~24.04.1 —
Ubuntu 24.04 LTS linux-azure 6.8.0-1051.57 USN-8125-1
Ubuntu 24.04 LTS linux-azure-fde 6.8.0-1058.65 —
Ubuntu 24.04 LTS linux-azure-nvidia 6.8.0-1039.42 —
Ubuntu 24.04 LTS linux-gcp 6.8.0-1052.55 USN-8095-1
Ubuntu 24.04 LTS linux-gcp-6.17 6.17.0-1008.8~24.04.1 —
Ubuntu 24.04 LTS linux-gke 6.8.0-1048.53 USN-8095-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1035.38 USN-8095-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1049.49 USN-8095-1
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-106.106.1 USN-8095-1
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1049.52 USN-8100-1
Ubuntu 24.04 LTS linux-nvidia-6.17 6.17.0-1008.8 —
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1049.52.1 USN-8100-1
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1020.20 —
Ubuntu 24.04 LTS linux-oem-6.17 6.17.0-1011.11 USN-8048-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1047.48 USN-8095-1
Ubuntu 24.04 LTS linux-raspi 6.8.0-1050.54 USN-8095-5
Ubuntu 24.04 LTS linux-riscv +18 No fix yet —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1028.29 USN-8261-1
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1050.53~22.04.1 USN-8095-4
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1051.57~22.04.1 USN-8126-1
Ubuntu 22.04 LTS linux-azure-fde-6.8 6.8.0-1058.65~22.04.1 —
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1052.55~22.04.1 USN-8095-1
Ubuntu 22.04 LTS linux-hwe-6.8 +1 6.8.0-106.106~22.04.1 USN-8095-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1049.49~22.04.1 USN-8095-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-106.106.1~22.04.1 USN-8095-1
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1049.52~22.04.1 USN-8100-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1047.48~22.04.1 USN-8095-1
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2040.41 USN-8095-5
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1045.46 USN-8095-3
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.17 6.17.0-1006.7~24.04.1 —
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1045.46~22.04.1 USN-8095-3
Ubuntu Pro FIPS-updates 24.04 LTS linux-aws-fips 6.8.0-1050.53+fips1 USN-8095-2
Ubuntu Pro FIPS-updates 24.04 LTS linux-azure-fips 6.8.0-1052.58+fips1 USN-8165-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-106.106+fips1 USN-8095-2
Ubuntu Pro FIPS-updates 24.04 LTS linux-gcp-fips 6.8.0-1052.55+fips1 USN-8095-2
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed kernel-source 6.17.7-1.1 openSUSE-SU-2025:15702-1
openSUSE Tumbleweed kernel-source-longterm 6.18.16-1.1 openSUSE-SU-2026:10301-1

Advisories 18

References