linux-imx/include
Tze-nan Wu f8d6acb19f bpf, net: Fix a potential race in do_sock_getsockopt()
[ Upstream commit 33f339a1ba ]

There's a potential race when `cgroup_bpf_enabled(CGROUP_GETSOCKOPT)` is
false during the execution of `BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN`, but
becomes true when `BPF_CGROUP_RUN_PROG_GETSOCKOPT` is called.
This inconsistency can lead to `BPF_CGROUP_RUN_PROG_GETSOCKOPT` receiving
an "-EFAULT" from `__cgroup_bpf_run_filter_getsockopt(max_optlen=0)`.
Scenario shown as below:

           `process A`                      `process B`
           -----------                      ------------
  BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN
                                            enable CGROUP_GETSOCKOPT
  BPF_CGROUP_RUN_PROG_GETSOCKOPT (-EFAULT)

To resolve this, remove the `BPF_CGROUP_GETSOCKOPT_MAX_OPTLEN` macro and
directly uses `copy_from_sockptr` to ensure that `max_optlen` is always
set before `BPF_CGROUP_RUN_PROG_GETSOCKOPT` is invoked.

Fixes: 0d01da6afc ("bpf: implement getsockopt and setsockopt hooks")
Co-developed-by: Yanghui Li <yanghui.li@mediatek.com>
Signed-off-by: Yanghui Li <yanghui.li@mediatek.com>
Co-developed-by: Cheng-Jui Wang <cheng-jui.wang@mediatek.com>
Signed-off-by: Cheng-Jui Wang <cheng-jui.wang@mediatek.com>
Signed-off-by: Tze-nan Wu <Tze-nan.Wu@mediatek.com>
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Link: https://patch.msgid.link/20240830082518.23243-1-Tze-nan.Wu@mediatek.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-09-12 11:11:34 +02:00
..
acpi ACPICA: Add a depth argument to acpi_execute_reg_methods() 2024-08-29 17:33:13 +02:00
asm-generic vmlinux.lds.h: catch .bss..L* sections into BSS") 2024-08-03 08:53:35 +02:00
clocksource pwm: xilinx: Fix u32 overflow issue in 32-bit width PWM mode. 2024-09-08 07:54:44 +02:00
crypto
drm drm/mipi-dsi: Fix theoretical int overflow in mipi_dsi_generic_write_seq() 2024-08-03 08:53:45 +02:00
dt-bindings
keys
kunit
kvm
linux bpf, net: Fix a potential race in do_sock_getsockopt() 2024-09-12 11:11:34 +02:00
math-emu
media
memory
misc
net net/socket: Break down __sys_getsockopt 2024-09-12 11:11:34 +02:00
pcmcia
ras
rdma
rv
scsi scsi: core: Fix the return value of scsi_logical_block_count() 2024-08-29 17:33:52 +02:00
soc net: mscc: ocelot: serialize access to the injection/extraction groups 2024-08-29 17:33:45 +02:00
sound ALSA: ump: Transmit RPN/NRPN message at each MSB/LSB data reception 2024-09-08 07:54:30 +02:00
target
trace platform/x86/intel/ifs: Gen2 Scan test support 2024-08-14 13:58:37 +02:00
uapi Revert "misc: fastrpc: Restrict untrusted app to attach to privileged PD" 2024-08-29 17:33:10 +02:00
ufs scsi: ufs: core: Check LSDBS cap when !mcq 2024-09-08 07:54:29 +02:00
vdso
video
xen