1. 04 Jul, 2024 38 commits
  2. 03 Jul, 2024 2 commits
    • Florian Westphal's avatar
      netfilter: nf_tables: unconditionally flush pending work before notifier · 9f6958ba
      Florian Westphal authored
      syzbot reports:
      
      KASAN: slab-uaf in nft_ctx_update include/net/netfilter/nf_tables.h:1831
      KASAN: slab-uaf in nft_commit_release net/netfilter/nf_tables_api.c:9530
      KASAN: slab-uaf int nf_tables_trans_destroy_work+0x152b/0x1750 net/netfilter/nf_tables_api.c:9597
      Read of size 2 at addr ffff88802b0051c4 by task kworker/1:1/45
      [..]
      Workqueue: events nf_tables_trans_destroy_work
      Call Trace:
       nft_ctx_update include/net/netfilter/nf_tables.h:1831 [inline]
       nft_commit_release net/netfilter/nf_tables_api.c:9530 [inline]
       nf_tables_trans_destroy_work+0x152b/0x1750 net/netfilter/nf_tables_api.c:9597
      
      Problem is that the notifier does a conditional flush, but its possible
      that the table-to-be-removed is still referenced by transactions being
      processed by the worker, so we need to flush unconditionally.
      
      We could make the flush_work depend on whether we found a table to delete
      in nf-next to avoid the flush for most cases.
      
      AFAICS this problem is only exposed in nf-next, with
      commit e169285f ("netfilter: nf_tables: do not store nft_ctx in transaction objects"),
      with this commit applied there is an unconditional fetch of
      table->family which is whats triggering the above splat.
      
      Fixes: 2c9f0293 ("netfilter: nf_tables: flush pending destroy work before netlink notifier")
      Reported-and-tested-by: syzbot+4fd66a69358fc15ae2ad@syzkaller.appspotmail.com
      Closes: https://syzkaller.appspot.com/bug?extid=4fd66a69358fc15ae2adSigned-off-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      9f6958ba
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 795c58e4
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix ioctl conflict with memmapped ring buffer ioctl
      
        It was reported that the ioctl() number used to update the ring buffer
        memory mapping conflicted with the TCGETS ioctl causing strace to
        report:
      
          $ strace -e ioctl stty
          ioctl(0, TCGETS or TRACE_MMAP_IOCTL_GET_READER, {c_iflag=ICRNL|IXON, c_oflag=NL0|CR0|TAB0|BS0|VT0|FF0|OPOST|ONLCR, c_cflag=B38400|CS8|CREAD, c_lflag=ISIG|ICANON|ECHO|ECHOE|ECHOK|IEXTEN|ECHOCTL|ECHOKE, ...}) = 0
      
        Since this ioctl hasn't been in a full release yet, change it from
        "T", 0x1 to "R" 0x20, and also reserve 0x20-0x2F for future ioctl
        commands, as some more are being worked on for the future"
      
      * tag 'trace-v6.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: Have memmapped ring buffer use ioctl of "R" range 0x20-2F
      795c58e4