linux-yocto/net
Deepak Sharma bfdda0123d net: nfc: nci: Add parameter validation for packet data
commit 9c328f54741bd5465ca1dc717c84c04242fac2e1 upstream.

Syzbot reported an uninitialized value bug in nci_init_req, which was
introduced by commit 5aca7966d2a7 ("Merge tag
'perf-tools-fixes-for-v6.17-2025-09-16' of
git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools").

This bug arises due to very limited and poor input validation
that was done at nic_valid_size(). This validation only
validates the skb->len (directly reflects size provided at the
userspace interface) with the length provided in the buffer
itself (interpreted as NCI_HEADER). This leads to the processing
of memory content at the address assuming the correct layout
per what opcode requires there. This leads to the accesses to
buffer of `skb_buff->data` which is not assigned anything yet.

Following the same silent drop of packets of invalid sizes at
`nic_valid_size()`, add validation of the data in the respective
handlers and return error values in case of failure. Release
the skb if error values are returned from handlers in
`nci_nft_packet` and effectively do a silent drop

Possible TODO: because we silently drop the packets, the
call to `nci_request` will be waiting for completion of request
and will face timeouts. These timeouts can get excessively logged
in the dmesg. A proper handling of them may require to export
`nci_request_cancel` (or propagate error handling from the
nft packets handlers).

Reported-by: syzbot+740e04c2a93467a0f8c8@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=740e04c2a93467a0f8c8
Fixes: 6a2968aaf5 ("NFC: basic NCI protocol implementation")
Tested-by: syzbot+740e04c2a93467a0f8c8@syzkaller.appspotmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Deepak Sharma <deepak.sharma.472935@gmail.com>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://patch.msgid.link/20250925132846.213425-1-deepak.sharma.472935@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-10-15 11:56:39 +02:00
..
6lowpan
9p net/9p: fix double req put in p9_fd_cancelled 2025-10-15 11:56:25 +02:00
802 net: 802: LLC+SNAP OID:PID lookup on start of skb data 2025-01-17 13:34:38 +01:00
8021q net: vlan: fix VLAN 0 refcount imbalance of toggling filtering during runtime 2025-07-24 08:51:53 +02:00
appletalk net: appletalk: Fix use-after-free in AARP proxy probe 2025-08-15 12:04:47 +02:00
atm net: atm: fix memory leak in atm_register_sysfs when device_register fail 2025-09-09 18:54:16 +02:00
ax25 ax25: properly unshare skbs in ax25_kiss_rcv() 2025-09-09 18:54:16 +02:00
batman-adv batman-adv: fix OOB read/write in network-coding decode 2025-09-09 18:54:18 +02:00
bluetooth Bluetooth: hci_sync: Fix using random address for BIG/PA advertisements 2025-10-15 11:56:37 +02:00
bpf bpf, test_run: Fix use-after-free issue in eth_skb_pkt_type() 2025-03-07 16:56:37 +01:00
bpfilter
bridge netfilter: br_netfilter: do not check confirmed bit in br_nf_local_in() after confirm 2025-09-09 18:54:13 +02:00
caif caif: reduce stack size, again 2025-08-15 12:04:56 +02:00
can can: j1939: j1939_local_ecu_get(): undo increment when j1939_local_ecu_get() fails 2025-09-19 16:29:58 +02:00
ceph libceph: fix invalid accesses to ceph_connection_v1_info 2025-09-19 16:29:57 +02:00
core bpf: Explicitly check accesses to bpf_sock_addr 2025-10-15 11:56:29 +02:00
dcb
dccp net: fix data-races around sk->sk_forward_alloc 2025-01-23 17:17:17 +01:00
devlink
dns_resolver
dsa net: dsa: microchip: linearize skb for tail-tagging switches 2025-09-09 18:54:20 +02:00
ethernet
ethtool net: ethtool: Don't call .cleanup_data when prepare_data fails 2025-04-25 10:43:25 +02:00
hsr net: hsr: hsr_slave: Fix the promiscuous mode in offload mode 2025-09-19 16:30:00 +02:00
ieee802154 net: ieee802154: do not leave a dangling sk pointer in ieee802154_create() 2024-12-14 19:54:41 +01:00
ife
ipv4 tcp: fix __tcp_close() to only send RST when required 2025-10-15 11:56:32 +02:00
ipv6 minmax: add a few more MIN_T/MAX_T users 2025-10-02 13:40:43 +02:00
iucv s390/iucv: MSG_PEEK causes memory leak in iucv_sock_destruct() 2024-12-14 19:53:50 +01:00
kcm
key
l2tp
l3mdev
lapb
llc llc: fix data loss when reading from a socket in llc_ui_recvmsg() 2025-06-04 14:40:21 +02:00
mac80211 wifi: mac80211: fix Rx packet handling when pubsta information is not available 2025-10-15 11:56:35 +02:00
mac802154 mac802154: check local interfaces before deleting sdata list 2025-01-23 17:17:11 +01:00
mctp mctp: return -ENOPROTOOPT for unknown getsockopt options 2025-09-09 18:54:15 +02:00
mpls mpls: Use rcu_dereference_rtnl() in mpls_route_input_rcu(). 2025-06-27 11:07:39 +01:00
mptcp mptcp: propagate shutdown to subflows when possible 2025-09-25 10:58:54 +02:00
ncsi net: ncsi: Fix buffer overflow in fetching version id 2025-08-28 16:25:58 +02:00
netfilter ipvs: Defer ip_vs_ftp unregister during netns cleanup 2025-10-15 11:56:36 +02:00
netlabel calipso: unlock rcu before returning -EAFNOSUPPORT 2025-06-27 11:07:25 +01:00
netlink netlink: avoid infinite retry looping in netlink_unicast() 2025-08-28 16:25:48 +02:00
netrom netrom: check buffer length before accessing it 2025-01-09 13:30:01 +01:00
nfc net: nfc: nci: Add parameter validation for packet data 2025-10-15 11:56:39 +02:00
nsh
openvswitch net: openvswitch: Fix the dead loop of MPLS parse 2025-06-27 11:07:12 +01:00
packet net/packet: fix a race in packet_set_ring() and packet_notifier() 2025-08-15 12:05:11 +02:00
phonet phonet/pep: Move call to pn_skb_get_dst_sockaddr() earlier in pep_sock_accept() 2025-07-24 08:51:48 +02:00
psample
qrtr
rds rds: ib: Increment i_fastreg_wrs before bailing out 2025-09-25 10:58:53 +02:00
rfkill net: rfkill: gpio: Fix crash due to dereferencering uninitialized pointer 2025-09-25 10:58:55 +02:00
rose net: rose: fix a typo in rose_clear_routes() 2025-09-04 15:26:30 +02:00
rxrpc rxrpc: Fix oops due to non-existence of prealloc backlog struct 2025-07-17 18:32:06 +02:00
sched net/sched: Remove unnecessary WARNING condition for empty child qdisc in htb_activate 2025-08-28 16:26:18 +02:00
sctp sctp: initialize more fields in sctp_v6_from_sk() 2025-09-04 15:26:29 +02:00
smc net/smc: Remove validation of reserved bits in CLC Decline message 2025-09-09 18:54:15 +02:00
strparser strparser: Add read_sock callback 2025-03-07 16:56:37 +01:00
sunrpc Revert "SUNRPC: Don't allow waiting for exiting tasks" 2025-09-19 16:29:56 +02:00
switchdev net: switchdev: Convert blocking notification chain to a raw one 2025-03-28 21:58:49 +01:00
tipc minmax: add in_range() macro 2025-10-02 13:40:41 +02:00
tls tls: make sure to abort the stream if headers are bogus 2025-09-25 10:58:51 +02:00
unix af_unix: Don't set -ECONNRESET for consumed OOB skb. 2025-07-06 10:58:00 +02:00
vmw_vsock vsock/virtio: Validate length in packet header before skb_put() 2025-08-28 16:26:07 +02:00
wireless wifi: cfg80211: sme: cap SSID length in __cfg80211_connect_result() 2025-09-09 18:54:15 +02:00
x25
xdp xsk: fix an integer overflow in xp_create_and_assign_umem() 2025-03-28 21:59:01 +01:00
xfrm xfrm: interface: fix use-after-free after changing collect_md xfrm interface 2025-08-15 12:04:46 +02:00
compat.c
devres.c
Kconfig
Kconfig.debug
Makefile af_unix: Remove CONFIG_UNIX_SCM. 2025-06-04 14:40:23 +02:00
socket.c
sysctl_net.c