In the Linux kernel, the following vulnerability has been resolved:
bpf: fix recursive lock when verdict program return SK_PASS
When the streamverdict program returns SKPASS, it places the received skb into its own receive queue, but a recursive lock eventually occurs, leading to an operating system deadlock. This issue has been present since v6.9.
''' skpsockstrpdataready writelockbh(&sk->skcallbacklock) strpdataready strpreadsock readsock -> tcpreadsock strprecv cb.rcvmsg -> skpsockstrpread # now streamverdict return SKPASS without peer sock assign _SKPASS = skpsockmapverd(SKPASS, NULL) skpsockverdictapply skpsockskbingressself skpsockskbingressenqueue skpsockdataready readlockbh(&sk->skcallbacklock) <= dead lock
'''
This topic has been discussed before, but it has not been fixed. Previous discussion: https://lore.kernel.org/all/6684a5864ec86_403d20898@john.notmuch