![]() |
Home ▼ Bookkeeping
Online ▼ Security
Audits ▼
Managed
DNS ▼
About
Order
FAQ
Acceptable Use Policy
Dynamic DNS Clients
Configure Domains Dyanmic DNS Update Password Network
Monitor ▼
Enterprise Package
Advanced Package
Standard Package
Free Trial
FAQ
Price/Feature Summary
Order/Renew
Examples
Configure/Status Alert Profiles | ||
CVE ID: | CVE-2021-47103 |
Description: | In the Linux kernel, the following vulnerability has been resolved:
inet: fully convert sk->sk_rx_dst to RCU rules syzbot reported various
issues around early demux, one being included in this changelog [1]
sk->sk_rx_dst is using RCU protection without clearly documenting it.
And following sequences in tcp_v4_do_rcv()/tcp_v6_do_rcv() are not
following standard RCU rules. [a] dst_release(dst); [b] sk->sk_rx_dst
= NULL; They look wrong because a delete operation of RCU protected
pointer is supposed to clear the pointer before the
call_rcu()/synchronize_rcu() guarding actual memory freeing. In some
cases indeed, dst could be freed before [b] is done. We could cheat by
clearing sk_rx_dst before calling dst_release(), but this seems the
right time to stick to standard RCU annotations and debugging
facilities. [1] BUG: KASAN: use-after-free in dst_check
include/net/dst.h:470 [inline] BUG: KASAN: use-after-free in
tcp_v4_early_demux+0x95b/0x960 net/ipv4/tcp_ipv4.c:1792 Read of size 2
at addr ffff88807f1cb73a by task syz-executor.5/9204 CPU: 0 PID: 9204
Comm: syz-executor.5 Not tainted 5.16.0-rc5-syzkaller #0 Hardware
name: Google Google Compute Engine/Google Compute Engine, BIOS Google
01/01/2011 Call Trace: |
Test IDs: | None available |
Cross References: |
Common Vulnerability Exposure (CVE) ID: CVE-2021-47103 https://git.kernel.org/stable/c/0249a4b8a554f2eb6a27b62516fa50168584faa4 https://git.kernel.org/stable/c/0249a4b8a554f2eb6a27b62516fa50168584faa4 https://git.kernel.org/stable/c/68c34ce11ef23328692aa35fa6aaafdd75913100 https://git.kernel.org/stable/c/68c34ce11ef23328692aa35fa6aaafdd75913100 https://git.kernel.org/stable/c/75a578000ae5e511e5d0e8433c94a14d9c99c412 https://git.kernel.org/stable/c/75a578000ae5e511e5d0e8433c94a14d9c99c412 https://git.kernel.org/stable/c/8f905c0e7354ef261360fb7535ea079b1082c105 https://git.kernel.org/stable/c/8f905c0e7354ef261360fb7535ea079b1082c105 https://git.kernel.org/stable/c/92e6e36ecd16808866ac6172b9491b5097cde449 https://git.kernel.org/stable/c/92e6e36ecd16808866ac6172b9491b5097cde449 https://git.kernel.org/stable/c/c3bb4a7e8cbc984e1cdac0fe6af60e880214ed6e https://git.kernel.org/stable/c/c3bb4a7e8cbc984e1cdac0fe6af60e880214ed6e https://git.kernel.org/stable/c/f039b43cbaea5e0700980c2f0052da05a70782e0 https://git.kernel.org/stable/c/f039b43cbaea5e0700980c2f0052da05a70782e0 |