Thread (5 messages) 5 messages, 3 authors, 2019-04-09

Re: WARNING: refcount bug in sock_wfree

From: Xin Long <lucien.xin@gmail.com>
Date: 2019-04-09 10:32:36
Also in: linux-sctp, lkml

On Tue, Apr 9, 2019 at 4:23 PM Dmitry Vyukov [off-list ref] wrote:
On Thu, Feb 22, 2018 at 10:50 AM Xin Long [off-list ref] wrote:
quoted
On Wed, Feb 21, 2018 at 9:59 PM, syzbot
[off-list ref] wrote:
quoted
Hello,

syzbot hit the following crash on upstream commit
79c0ef3e85c015b0921a8fd5dd539d1480e9cd6c (Mon Feb 19 19:58:19 2018 +0000)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

So far this crash happened 2 times on
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/master.
syzkaller reproducer is attached.
Raw console output is attached.
compiler: gcc (GCC) 7.1.1 20170620
.config is attached.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+98a809ad0f54884bde26@syzkaller.appspotmail.com
It will help syzbot understand when the bug is fixed. See footer for
details.
If you forward the report, please keep this part and the footer.

IPv6: ADDRCONF(NETDEV_UP): bridge0: link is not ready
IPv6: ADDRCONF(NETDEV_UP): bridge0: link is not ready
audit: type=1400 audit(1519151768.973:11): avc:  denied  { sys_chroot } for
pid=4169 comm="syz-executor5" capability=18
scontext=unconfined_u:system_r:insmod_t:s0-s0:c0.c1023
tcontext=unconfined_u:system_r:insmod_t:s0-s0:c0.c1023 tclass=cap_userns
permissive=1
------------[ cut here ]------------
refcount_t: underflow; use-after-free.
WARNING: CPU: 0 PID: 5074 at lib/refcount.c:187
refcount_sub_and_test+0x167/0x1b0 lib/refcount.c:187
Kernel panic - not syncing: panic_on_warn set ...
It seems that we also need to process the chunks in
outqueue->control_chunk_list in sctp_for_each_tx_datachunk()
when peeling off.
Hi Xin,

Did you mail any fix for this?
No, I realized it doesn't make difference to add the process for
control_chunk_list in sctp_for_each_tx_datachunk().
The bug is still open, but the crash did not happen in the past
months. It seems that 3 different bugs accumulated in this bug: there
was a splash of crashes in Feb 2018, then it stopped crashing, then
some crashes in May 2018, probably a different bug, then stopped
happening again, then another splash in Nov 2018, most likely a
different bugs, then it stopped happening again. If we keep it open,
it will continue accumulating more different bugs.
We've had some fixes for peeling off process added in the latest kernel
since then, which could be related. So I think we can close this one now,
and let's see what the new bugs will look like.

Thanks.

quoted
quoted
CPU: 0 PID: 5074 Comm: syz-executor5 Not tainted 4.16.0-rc2+ #322
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:17 [inline]
 dump_stack+0x194/0x257 lib/dump_stack.c:53
 panic+0x1e4/0x41c kernel/panic.c:183
 __warn+0x1dc/0x200 kernel/panic.c:547
 report_bug+0x211/0x2d0 lib/bug.c:184
 fixup_bug.part.11+0x37/0x80 arch/x86/kernel/traps.c:178
 fixup_bug arch/x86/kernel/traps.c:247 [inline]
 do_error_trap+0x2d7/0x3e0 arch/x86/kernel/traps.c:296
 do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:315
 invalid_op+0x58/0x80 arch/x86/entry/entry_64.S:957
RIP: 0010:refcount_sub_and_test+0x167/0x1b0 lib/refcount.c:187
RSP: 0018:ffff8801cf2b6490 EFLAGS: 00010282
RAX: dffffc0000000008 RBX: 0000000000000401 RCX: ffffffff815abdbe
RDX: 0000000000000000 RSI: 1ffff10039e56c42 RDI: 1ffff10039e56c17
RBP: ffff8801cf2b6520 R08: 1ffff10039e56bd9 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 1ffff10039e56c93
R13: 00000000ffffff01 R14: 0000000000000500 R15: ffff8801ae3c69fc
 sock_wfree+0xa6/0x140 net/core/sock.c:1819
 sctp_wfree+0x2eb/0x670 net/sctp/socket.c:8065
 skb_release_head_state+0x124/0x260 net/core/skbuff.c:612
 skb_release_all+0x15/0x60 net/core/skbuff.c:625
 __kfree_skb net/core/skbuff.c:641 [inline]
 consume_skb+0x153/0x490 net/core/skbuff.c:701
 sctp_chunk_destroy net/sctp/sm_make_chunk.c:1450 [inline]
 sctp_chunk_put+0x29c/0x420 net/sctp/sm_make_chunk.c:1477
 sctp_chunk_free+0x53/0x60 net/sctp/sm_make_chunk.c:1464
 __sctp_outq_teardown+0x244/0x1230 net/sctp/outqueue.c:234
 sctp_outq_free+0x15/0x20 net/sctp/outqueue.c:291
 sctp_association_free+0x2d0/0x930 net/sctp/associola.c:356
 sctp_cmd_delete_tcb net/sctp/sm_sideeffect.c:939 [inline]
 sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1343 [inline]
 sctp_side_effects net/sctp/sm_sideeffect.c:1210 [inline]
 sctp_do_sm+0x32e3/0x6ed0 net/sctp/sm_sideeffect.c:1181
 sctp_primitive_ABORT+0xa0/0xd0 net/sctp/primitive.c:119
 sctp_close+0x266/0x9a0 net/sctp/socket.c:1539
 inet_release+0xed/0x1c0 net/ipv4/af_inet.c:427
 sock_release+0x8d/0x1e0 net/socket.c:595
 sock_close+0x16/0x20 net/socket.c:1149
 __fput+0x327/0x7e0 fs/file_table.c:209
 ____fput+0x15/0x20 fs/file_table.c:243
 task_work_run+0x199/0x270 kernel/task_work.c:113
 exit_task_work include/linux/task_work.h:22 [inline]
 do_exit+0x9bb/0x1ad0 kernel/exit.c:865
 do_group_exit+0x149/0x400 kernel/exit.c:968
 get_signal+0x73a/0x16d0 kernel/signal.c:2469
 do_signal+0x90/0x1e90 arch/x86/kernel/signal.c:809
 exit_to_usermode_loop+0x258/0x2f0 arch/x86/entry/common.c:162
 prepare_exit_to_usermode arch/x86/entry/common.c:196 [inline]
 syscall_return_slowpath arch/x86/entry/common.c:265 [inline]
 do_syscall_64+0x6e5/0x940 arch/x86/entry/common.c:292
 entry_SYSCALL_64_after_hwframe+0x42/0xb7
RIP: 0033:0x453da9
RSP: 002b:00007f297546ace8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 000000000072bf80 RCX: 0000000000453da9
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 000000000072bf80
RBP: 000000000072bf80 R08: 0000000000000000 R09: 000000000072bf58
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000a3e8ef R14: 00007f297546b9c0 R15: 0000000000000001
Dumping ftrace buffer:
   (ftrace buffer empty)
Kernel Offset: disabled
Rebooting in 86400 seconds..


---
This bug is generated by a dumb bot. It may contain errors.
See https://goo.gl/tpsmEJ for details.
Direct all questions to syzkaller@googlegroups.com.

syzbot will keep track of this bug report.
If you forgot to add the Reported-by tag, once the fix for this bug is
merged
into any tree, please reply to this email with:
#syz fix: exact-commit-title
If you want to test a patch for this bug, please reply with:
#syz test: git://repo/address.git branch
and provide the patch inline or as an attachment.
To mark this as a duplicate of another syzbot report, please reply with:
#syz dup: exact-subject-of-another-report
If it's a one-off invalid bug report, please reply with:
#syz invalid
Note: if the crash happens again, it will cause creation of a new bug
report.
Note: all commands must start from beginning of the line in the email body.
--
You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/CADvbK_eandMH1aZvKnzdX%3D3xdS0NSo6_NAeCrKasqA9EON4B0A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help