linux/Documentation
Sabrina Dubroca 0984ebc631 strparser: make sure __strp_recv isn't running before tearing down the parser
The comment above strp_done() claims that if strp is stopped,
strp_recv will no longer be called. That's only true if the caller has
a mechanism (eg locking) to guarantee that strp_recv() calls that
started before strp_stop() have completed by the time we call
strp_done().

This adds a dummy lock_sock/release_sock pair to guarantee that any
in-flight strp_recv() (which runs under either bh_lock_sock or
lock_sock, depending if it's called from ->sk_data_ready or strp_work)
has completed.

Only espintcp can be affected by this race condition, but this patch
makes sure no future user of strp can have the bug.

This could crash on strp->sk ("general mode" of strp), but this mode
has been here for 9 years and has never been used. It'll be gone soon,
no point worrying about it.

Switch the stopped/paused/etc bits to u8's to avoid races between
strp_stop() and strp_pause/unpause().

A reproducer has been published and turns the possible UAF into an
exploit [1].

Reported-by: Hyunwoo Kim <imv4bel@gmail.com>
Link: https://lore.kernel.org/all/aZLn2Faeg1FB7XOf@v4bel/
Link: https://lore.kernel.org/all/aZgpkyTDU3aXe_V0@v4bel/
Link: https://github.com/m0x41nos/RustyTux [1]
Fixes: e27cca96cd ("xfrm: add espintcp (RFC 8229)")
Cc: stable@vger.kernel.org
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Reviewed-by: Hyunwoo Kim <imv4bel@gmail.com>
Link: https://patch.msgid.link/425d9d926709b542ed5331110c19fee4aee1f28d.1791206940.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-10-06 18:29:12 -07:00
..
ABI Input updates for v7.3-rc3 2026-09-20 07:02:34 -07:00
accel
accounting
admin-guide ata fixes for 7.3-rc5 2026-09-26 11:14:35 -07:00
arch s390 fixes for 7.3-rc5 2026-09-25 09:39:33 -07:00
block A handful of late-arriving fixes, a Japanese translation that was ready 2026-08-26 09:25:12 -07:00
bpf bpf: Add KF_PERFMON kfunc flag 2026-09-10 16:55:47 -07:00
cdrom
core-api mm.git review status for linus..mm-stable 2026-08-27 09:17:06 -07:00
cpu-freq
crypto This update includes the following changes: 2026-08-19 17:25:42 -07:00
dev-tools mm.git review status for linus..mm-stable 2026-08-27 09:17:06 -07:00
devicetree Pin control fixes for the v7.3 series: 2026-09-24 06:19:09 -07:00
doc-guide
driver-api More ACPI support updates for 7.3-rc1 2026-08-26 14:06:08 -07:00
edac
fault-injection nvme: add opcode filtering for fault injection 2026-08-19 07:51:23 -07:00
fb
features
filesystems A wide variety of mostly CephFS fixes and cleanups, split between 2026-08-28 11:51:05 -07:00
firmware_class
firmware-guide
fpga
gpu DRM Rust changes for v7.3-rc1 2026-08-10 14:48:11 +10:00
hid HID: add documentation and Coccinelle script for FF registration race 2026-08-14 14:46:20 +02:00
hwmon hwmon: (cgbc-hwmon) Add missing sensors 2026-09-13 21:19:48 -07:00
i2c
iio
images
infiniband
input
kbuild
kernel-hacking
leds
litmus-tests
livepatch
locking
maintainer
mhi
misc-devices
mm mm.git review status for linus..mm-stable 2026-08-27 09:17:06 -07:00
netlabel
netlink net: devmem: document that bind-tx is unprivileged by design 2026-09-22 18:40:15 -07:00
networking strparser: make sure __strp_recv isn't running before tearing down the parser 2026-10-06 18:29:12 -07:00
nvdimm
nvme
PCI Documentation: PCI: Document how to write PCI Host Controller drivers 2026-08-12 14:20:48 -05:00
pcmcia
peci
power
process Coccinelle patches for Linux v7.3 2026-08-30 10:42:40 -07:00
RCU
rust docs: rust: quick-start: remove Ubuntu 25.10 2026-08-10 06:44:10 +02:00
scheduler sched_ext: Fixes for v7.3-rc1 2026-08-31 13:13:35 -07:00
scsi scsi: leapraid: Standardize NCQ priority sysfs attributes 2026-08-23 21:57:41 -04:00
security Landlock update for v7.3-rc1 2026-08-21 12:28:35 -07:00
sound ALSA: usb-audio: Reverse MIXER_GET_CUR_BROKEN as MIXER_GET_CUR_OK 2026-08-23 11:03:34 +02:00
sphinx
sphinx-includes
sphinx-static Documentation: html: adjust sidebar section titles styling 2026-08-05 13:37:41 -06:00
spi docs: spi: add documentation for userspace device instantiation 2026-08-06 19:13:15 +01:00
staging
sunrpc/xdr nfsd: add support to CB_NOTIFY for dir attribute changes 2026-08-10 09:54:35 -04:00
target
tee
timers
tools
trace landlock: Fix tracepoint contract documentation 2026-09-20 14:13:33 +02:00
translations RISC-V updates for v7.3-rc3 2026-09-11 13:15:13 -07:00
usb
userspace-api mm.git review status for linus..mm-stable 2026-08-27 09:17:06 -07:00
virt Arm: 2026-08-25 11:48:04 -07:00
w1
watchdog docs: watchdog: npcm: Add reset status description 2026-08-10 09:00:04 -07:00
wmi
.gitignore
.renames.txt
atomic_bitops.txt
atomic_t.txt
Changes
CodingStyle
conf.py docs: conf.py: fix the 'utf-8' typo 2026-08-11 10:45:54 -06:00
docutils.conf
index.rst Documentation: html: show sections in the sidebar 2026-08-05 13:04:26 -06:00
Kconfig
Makefile
memory-barriers.txt
SubmittingPatches
subsystem-apis.rst