CVE-2023-53189

Summary

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

ipv6/addrconf: fix a potential refcount underflow for idev

Now in addrconf_mod_rs_timer(), reference idev depends on whether rs_timer is not pending. Then modify rs_timer timeout.

There is a time gap in [1], during which if the pending rs_timer becomes not pending. It will miss to hold idev, but the rs_timer is activated. Thus rs_timer callback function addrconf_rs_timer() will be executed and put idev later without holding idev. A refcount underflow issue for idev can be caused by this.

if (!timer_pending(&idev->rs_timer))
	in6_dev_hold(idev);
	  <--------------[1]
mod_timer(&idev->rs_timer, jiffies + when);

To fix the issue, hold idev if mod_timer() return 0.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < c6395e32935d35e6f935e7caf1c2dac5a95943b4affected
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < df62fdcd004afa72ecbed0e862ebb983acd3aa57affected
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < c7eeba47058532f6077d6a658e38b6698f6ae71aaffected
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < 2ad31ce40e8182860b631e37209e93e543790b7caffected
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < 82abd1c37d3bf2a2658b34772c17a25a6f9cca42affected
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < 436b7cc7eae7851c184b671ed7a4a64c750b86f7affected
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < 1f656e483eb4733d62f18dfb206a49b78f60f495affected
LinuxLinuxb7b1bfce0bb68bd8f6e62a28295922785cc63781 < 06a0716949c22e2aefb648526580671197151accaffected
LinuxLinux973d5956f754cfc306f5e274d71503498f4b0324affected
LinuxLinux3.10.105 < 3.11affected
LinuxLinux3.11affected
LinuxLinux0 < 3.11unaffected
LinuxLinux4.14.322 <= 4.14.*unaffected
LinuxLinux4.19.291 <= 4.19.*unaffected
LinuxLinux5.4.251 <= 5.4.*unaffected
LinuxLinux5.10.188 <= 5.10.*unaffected
LinuxLinux5.15.121 <= 5.15.*unaffected
LinuxLinux6.1.40 <= 6.1.*unaffected
LinuxLinux6.4.5 <= 6.4.*unaffected
LinuxLinux6.5 <= *unaffected

Weaknesses

References