====================================================== [ INFO: possible circular locking dependency detected ] 4.9.141+ #1 Not tainted ------------------------------------------------------- syz-executor.3/19171 is trying to acquire lock: (&sb->s_type->i_mutex_key){++++++}, at: [] inode_lock_shared include/linux/fs.h:776 [inline] (&sb->s_type->i_mutex_key){++++++}, at: [] do_last fs/namei.c:3314 [inline] (&sb->s_type->i_mutex_key){++++++}, at: [] path_openat+0x1309/0x2790 fs/namei.c:3534 but task is already holding lock: (&sig->cred_guard_mutex){+.+.+.}, at: [] prepare_bprm_creds+0x53/0x110 fs/exec.c:1369 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 __mutex_lock_common kernel/locking/mutex.c:521 [inline] mutex_lock_killable_nested+0xcc/0x9f0 kernel/locking/mutex.c:641 mm_access+0x51/0x140 kernel/fork.c:1028 map_files_d_revalidate+0xf6/0x6e0 fs/proc/base.c:1933 d_revalidate fs/namei.c:789 [inline] lookup_slow+0x361/0x470 fs/namei.c:1656 walk_component+0x822/0xcf0 fs/namei.c:1784 lookup_last fs/namei.c:2266 [inline] path_lookupat.isra.10+0x186/0x410 fs/namei.c:2283 filename_lookup.part.18+0x177/0x370 fs/namei.c:2317 filename_lookup fs/namei.c:2310 [inline] user_path_at_empty+0x53/0x70 fs/namei.c:2578 user_path_at include/linux/namei.h:55 [inline] SYSC_quotactl fs/quota/quota.c:862 [inline] SyS_quotactl+0x7c4/0x1250 fs/quota/quota.c:834 do_syscall_64+0x19f/0x550 arch/x86/entry/common.c:285 entry_SYSCALL_64_after_swapgs+0x5d/0xdb check_prev_add kernel/locking/lockdep.c:1828 [inline] check_prevs_add kernel/locking/lockdep.c:1938 [inline] validate_chain kernel/locking/lockdep.c:2265 [inline] __lock_acquire+0x3189/0x4a10 kernel/locking/lockdep.c:3345 lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 down_read+0x44/0xb0 kernel/locking/rwsem.c:22 inode_lock_shared include/linux/fs.h:776 [inline] do_last fs/namei.c:3314 [inline] path_openat+0x1309/0x2790 fs/namei.c:3534 do_filp_open+0x197/0x270 fs/namei.c:3568 do_open_execat+0x10f/0x640 fs/exec.c:844 open_exec+0x43/0x60 fs/exec.c:876 load_script+0x5a4/0x740 fs/binfmt_script.c:100 search_binary_handler+0x14f/0x6f0 fs/exec.c:1621 exec_binprm fs/exec.c:1663 [inline] do_execveat_common.isra.14+0x1139/0x1ed0 fs/exec.c:1785 do_execveat fs/exec.c:1840 [inline] SYSC_execveat fs/exec.c:1921 [inline] SyS_execveat+0x55/0x70 fs/exec.c:1913 do_syscall_64+0x19f/0x550 arch/x86/entry/common.c:285 entry_SYSCALL_64_after_swapgs+0x5d/0xdb other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&sig->cred_guard_mutex); lock(&sb->s_type->i_mutex_key); lock(&sig->cred_guard_mutex); lock(&sb->s_type->i_mutex_key); *** DEADLOCK *** 1 lock held by syz-executor.3/19171: #0: (&sig->cred_guard_mutex){+.+.+.}, at: [] prepare_bprm_creds+0x53/0x110 fs/exec.c:1369 stack backtrace: CPU: 1 PID: 19171 Comm: syz-executor.3 Not tainted 4.9.141+ #1 ffff8801a2b974d8 ffffffff81b42e79 ffffffff83c73360 ffffffff83ca2c70 ffffffff83c73360 ffff8801c8eab850 ffff8801c8eaaf80 ffff8801a2b97520 ffffffff813fee40 0000000000000001 00000000c8eab830 0000000000000001 Call Trace: [] __dump_stack lib/dump_stack.c:15 [inline] [] dump_stack+0xc1/0x128 lib/dump_stack.c:51 [] print_circular_bug.cold.36+0x2f7/0x432 kernel/locking/lockdep.c:1202 [] check_prev_add kernel/locking/lockdep.c:1828 [inline] [] check_prevs_add kernel/locking/lockdep.c:1938 [inline] [] validate_chain kernel/locking/lockdep.c:2265 [inline] [] __lock_acquire+0x3189/0x4a10 kernel/locking/lockdep.c:3345 [] lock_acquire+0x130/0x3e0 kernel/locking/lockdep.c:3756 [] down_read+0x44/0xb0 kernel/locking/rwsem.c:22 [] inode_lock_shared include/linux/fs.h:776 [inline] [] do_last fs/namei.c:3314 [inline] [] path_openat+0x1309/0x2790 fs/namei.c:3534 [] do_filp_open+0x197/0x270 fs/namei.c:3568 [] do_open_execat+0x10f/0x640 fs/exec.c:844 [] open_exec+0x43/0x60 fs/exec.c:876 [] load_script+0x5a4/0x740 fs/binfmt_script.c:100 [] search_binary_handler+0x14f/0x6f0 fs/exec.c:1621 [] exec_binprm fs/exec.c:1663 [inline] [] do_execveat_common.isra.14+0x1139/0x1ed0 fs/exec.c:1785 [] do_execveat fs/exec.c:1840 [inline] [] SYSC_execveat fs/exec.c:1921 [inline] [] SyS_execveat+0x55/0x70 fs/exec.c:1913 [] do_syscall_64+0x19f/0x550 arch/x86/entry/common.c:285 [] entry_SYSCALL_64_after_swapgs+0x5d/0xdb A link change request failed with some changes committed already. Interface syz_tun may have been left with an inconsistent configuration, please check. A link change request failed with some changes committed already. Interface syz_tun may have been left with an inconsistent configuration, please check. netlink: 24 bytes leftover after parsing attributes in process `syz-executor.5'. netlink: 24 bytes leftover after parsing attributes in process `syz-executor.5'. IPv6: ADDRCONF(NETDEV_CHANGE): j: link becomes ready qtaguid: iface_stat: create6(j): no inet dev IPv6: ADDRCONF(NETDEV_CHANGE): ip_vti0: link becomes ready SELinux: unrecognized netlink message: protocol=0 nlmsg_type=12152 sclass=netlink_route_socket pig=19215 comm=syz-executor.4 IPv6: ADDRCONF(NETDEV_CHANGE): j: link becomes ready qtaguid: iface_stat: create6(j): no inet dev IPv6: ADDRCONF(NETDEV_CHANGE): ip_vti0: link becomes ready SELinux: unrecognized netlink message: protocol=0 nlmsg_type=12152 sclass=netlink_route_socket pig=19215 comm=syz-executor.4 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=58663 sclass=netlink_route_socket pig=19293 comm=syz-executor.1 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=58663 sclass=netlink_route_socket pig=19304 comm=syz-executor.1 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19322 comm=syz-executor.1 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19372 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19400 comm=syz-executor.1 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19477 comm=syz-executor.2 input: syz1 as /devices/virtual/input/input74 input: syz1 as /devices/virtual/input/input75 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19510 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19550 comm=syz-executor.2 binder: 19578:19584 IncRefs 0 refcount change on invalid ref 0 ret -22 binder: 19578:19584 BC_REQUEST_DEATH_NOTIFICATION invalid ref 0 binder: 19578:19584 BC_CLEAR_DEATH_NOTIFICATION invalid ref 1754502290 binder: 19578:19584 ioctl c0306201 200003c0 returned -14 tc_dump_action: action bad kind audit: type=1400 audit(1574528406.752:151): avc: denied { read } for pid=19599 comm="syz-executor.2" laddr=::ac14:14aa lport=44788 faddr=::1 fport=20002 scontext=unconfined_u:system_r:insmod_t:s0-s0:c0.c1023 tcontext=system_u:object_r:semanage_trans_lock_t:s0 tclass=tcp_socket permissive=1 IPv6: ADDRCONF(NETDEV_CHANGE): lo: link becomes ready tc_dump_action: action bad kind ip6_tunnel: ip6tnl1 xmit: Local address not yet configured! input: syz1 as /devices/virtual/input/input76 netlink: 1 bytes leftover after parsing attributes in process `syz-executor.3'. tc_dump_action: action bad kind input: syz1 as /devices/virtual/input/input77 netlink: 2 bytes leftover after parsing attributes in process `syz-executor.2'. tc_dump_action: action bad kind SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2 SELinux: unrecognized netlink message: protocol=0 nlmsg_type=0 sclass=netlink_route_socket pig=19765 comm=syz-executor.2