linux/include
Qingfang Deng cc1ff87bce pppoe: drop PFC frames
RFC 2516 Section 7 states that Protocol Field Compression (PFC) is NOT
RECOMMENDED for PPPoE. In practice, pppd does not support negotiating
PFC for PPPoE sessions, and the current PPPoE driver assumes an
uncompressed (2-byte) protocol field. However, the generic PPP layer
function ppp_input() is not aware of the negotiation result, and still
accepts PFC frames.

If a peer with a broken implementation or an attacker sends a frame with
a compressed (1-byte) protocol field, the subsequent PPP payload is
shifted by one byte. This causes the network header to be 4-byte
misaligned, which may trigger unaligned access exceptions on some
architectures.

To reduce the attack surface, drop PPPoE PFC frames. Introduce
ppp_skb_is_compressed_proto() helper function to be used in both
ppp_generic.c and pppoe.c to avoid open-coding.

Fixes: 7fb1b8ca8f ("ppp: Move PFC decompression to PPP generic layer")
Signed-off-by: Qingfang Deng <qingfang.deng@linux.dev>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260415022456.141758-2-qingfang.deng@linux.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-04-20 11:35:17 -07:00
..
acpi
asm-generic Modules changes for v7.1-rc1 2026-04-14 17:16:38 -07:00
clocksource
crypto
cxl
drm
dt-bindings
hyperv
keys
kunit
kvm
linux pppoe: drop PFC frames 2026-04-20 11:35:17 -07:00
math-emu
media
memory
misc
net tcp: annotate data-races around tp->delivered and tp->delivered_ce 2026-04-18 11:10:12 -07:00
pcmcia
ras
rdma
rv
scsi
soc
sound
target
trace Networking changes for 7.1. 2026-04-14 18:36:10 -07:00
uapi vfs-7.1-rc1.mount.v2 2026-04-14 19:59:25 -07:00
ufs
vdso
video
xen
Kbuild