CVE-2022-50676

Summary

In the Linux kernel, the following vulnerability has been resolved:

net: rds: don't hold sock lock when cancelling work from rds_tcp_reset_callbacks()

syzbot is reporting lockdep warning at rds_tcp_reset_callbacks() [1], for commit ac3615e7f3cffe2a ("RDS: TCP: Reduce code duplication in rds_tcp_reset_callbacks()") added cancel_delayed_work_sync() into a section protected by lock_sock() without realizing that rds_send_xmit() might call lock_sock().

We don't need to protect cancel_delayed_work_sync() using lock_sock(), for even if rds_{send,recv}_worker() re-queued this work while _flush_work() from cancel_delayed_work_sync() was waiting for this work to complete, retried rds{send,recv}_worker() is no-op due to the absence of RDS_CONN_UP bit.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < 5d2ba255e93211e541373469dffbda7c99dfa0e5affected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < 2425007c0967a7c04b0dee7cce05ecf0ca869ad1affected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < e3cb25d3ad08f5dbd53ce2b31720cad529944322affected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < 360aa7219285fac63dab99706a16f2daf3222abeaffected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < da349221c4d2d4ac5f606c1c3b36d4ef0b3e6a0caffected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < 30bfa5aa7228eb1e67663d67e553627e572cc717affected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < c380c28ab9b15fc53565909c814f6dd3e7f77c4baffected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < afe7053c390fe8ff27d0c2ceaece5625283044baaffected
LinuxLinuxac3615e7f3cffe2a1a6b25172dfd09e138593d82 < a91b750fd6629354460282bbf5146c01b05c4859affected
LinuxLinux4.8affected
LinuxLinux0 < 4.8unaffected
LinuxLinux4.9.331 <= 4.9.*unaffected
LinuxLinux4.14.296 <= 4.14.*unaffected
LinuxLinux4.19.262 <= 4.19.*unaffected
LinuxLinux5.4.220 <= 5.4.*unaffected
LinuxLinux5.10.150 <= 5.10.*unaffected
LinuxLinux5.15.75 <= 5.15.*unaffected
LinuxLinux5.19.17 <= 5.19.*unaffected
LinuxLinux6.0.3 <= 6.0.*unaffected
LinuxLinux6.1 <= *unaffected

Weaknesses

References