First published: Fri Aug 31 2012(Updated: )
As Tetsuo Handa pointed out, request_module() can stress the system while the oom-killed caller sleeps in TASK_UNINTERRUPTIBLE. The task T uses "almost all" memory, then it does something which triggers request_module(). Say, it can simply call sys_socket(). This in turn needs more memory and leads to OOM. oom-killer correctly chooses T and kills it, but this can't help because it sleeps in TASK_UNINTERRUPTIBLE and after that oom-killer becomes "disabled" by the TIF_MEMDIE task T. A local unprivileged user can make the system unusable. Upstream fixes: (1) 70834d30 "usermodehelper: use UMH_WAIT_PROC consistently" (2) b3449922 "usermodehelper: introduce umh_complete(sub_info)" (3) d0bd587a "usermodehelper: implement UMH_KILLABLE" (4) 9d944ef3 "usermodehelper: kill umh_wait, renumber UMH_* constants" (5) 5b9bd473 "usermodehelper: ____call_usermodehelper() doesn't need do_exit()" (6) 3e63a93b "kmod: introduce call_modprobe() helper" (7) 1cc684ab "kmod: make __request_module() killable" According to the reporter, (1) and (4) are optional and safer to exclude. References: <a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/963685">https://bugs.launchpad.net/ubuntu/+source/linux/+bug/963685</a> Acknowledgements: Red Hat would like to thank Tetsuo Handa for reporting this issue.
Credit: secalert@redhat.com secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
Linux Linux kernel | <=3.4 | |
Linux Linux kernel | =3.0-rc1 | |
Linux Linux kernel | =3.0-rc2 | |
Linux Linux kernel | =3.0-rc3 | |
Linux Linux kernel | =3.0-rc4 | |
Linux Linux kernel | =3.0-rc5 | |
Linux Linux kernel | =3.0-rc6 | |
Linux Linux kernel | =3.0-rc7 | |
Linux Linux kernel | =3.0.1 | |
Linux Linux kernel | =3.0.2 | |
Linux Linux kernel | =3.0.3 | |
Linux Linux kernel | =3.0.4 | |
Linux Linux kernel | =3.0.5 | |
Linux Linux kernel | =3.0.6 | |
Linux Linux kernel | =3.0.7 | |
Linux Linux kernel | =3.0.8 | |
Linux Linux kernel | =3.0.9 | |
Linux Linux kernel | =3.0.10 | |
Linux Linux kernel | =3.0.11 | |
Linux Linux kernel | =3.0.12 | |
Linux Linux kernel | =3.0.13 | |
Linux Linux kernel | =3.0.14 | |
Linux Linux kernel | =3.0.15 | |
Linux Linux kernel | =3.0.16 | |
Linux Linux kernel | =3.0.17 | |
Linux Linux kernel | =3.0.18 | |
Linux Linux kernel | =3.0.19 | |
Linux Linux kernel | =3.0.20 | |
Linux Linux kernel | =3.0.21 | |
Linux Linux kernel | =3.0.22 | |
Linux Linux kernel | =3.0.23 | |
Linux Linux kernel | =3.0.24 | |
Linux Linux kernel | =3.0.25 | |
Linux Linux kernel | =3.0.26 | |
Linux Linux kernel | =3.0.27 | |
Linux Linux kernel | =3.0.28 | |
Linux Linux kernel | =3.0.29 | |
Linux Linux kernel | =3.0.30 | |
Linux Linux kernel | =3.0.31 | |
Linux Linux kernel | =3.0.32 | |
Linux Linux kernel | =3.0.33 | |
Linux Linux kernel | =3.0.34 | |
Linux Linux kernel | =3.0.35 | |
Linux Linux kernel | =3.0.36 | |
Linux Linux kernel | =3.0.37 | |
Linux Linux kernel | =3.0.38 | |
Linux Linux kernel | =3.0.39 | |
Linux Linux kernel | =3.0.40 | |
Linux Linux kernel | =3.0.41 | |
Linux Linux kernel | =3.0.42 | |
Linux Linux kernel | =3.0.43 | |
Linux Linux kernel | =3.0.44 | |
Linux Linux kernel | =3.1 | |
Linux Linux kernel | =3.1-rc1 | |
Linux Linux kernel | =3.1-rc2 | |
Linux Linux kernel | =3.1-rc3 | |
Linux Linux kernel | =3.1-rc4 | |
Linux Linux kernel | =3.1.1 | |
Linux Linux kernel | =3.1.2 | |
Linux Linux kernel | =3.1.3 | |
Linux Linux kernel | =3.1.4 | |
Linux Linux kernel | =3.1.5 | |
Linux Linux kernel | =3.1.6 | |
Linux Linux kernel | =3.1.7 | |
Linux Linux kernel | =3.1.8 | |
Linux Linux kernel | =3.1.9 | |
Linux Linux kernel | =3.1.10 | |
Linux Linux kernel | =3.2 | |
Linux Linux kernel | =3.2-rc2 | |
Linux Linux kernel | =3.2-rc3 | |
Linux Linux kernel | =3.2-rc4 | |
Linux Linux kernel | =3.2-rc5 | |
Linux Linux kernel | =3.2-rc6 | |
Linux Linux kernel | =3.2-rc7 | |
Linux Linux kernel | =3.2.1 | |
Linux Linux kernel | =3.2.2 | |
Linux Linux kernel | =3.2.3 | |
Linux Linux kernel | =3.2.4 | |
Linux Linux kernel | =3.2.5 | |
Linux Linux kernel | =3.2.6 | |
Linux Linux kernel | =3.2.7 | |
Linux Linux kernel | =3.2.8 | |
Linux Linux kernel | =3.2.9 | |
Linux Linux kernel | =3.2.10 | |
Linux Linux kernel | =3.2.11 | |
Linux Linux kernel | =3.2.12 | |
Linux Linux kernel | =3.2.13 | |
Linux Linux kernel | =3.2.14 | |
Linux Linux kernel | =3.2.15 | |
Linux Linux kernel | =3.2.16 | |
Linux Linux kernel | =3.2.17 | |
Linux Linux kernel | =3.2.18 | |
Linux Linux kernel | =3.2.19 | |
Linux Linux kernel | =3.2.20 | |
Linux Linux kernel | =3.2.21 | |
Linux Linux kernel | =3.2.22 | |
Linux Linux kernel | =3.2.23 | |
Linux Linux kernel | =3.2.24 | |
Linux Linux kernel | =3.2.25 | |
Linux Linux kernel | =3.2.26 | |
Linux Linux kernel | =3.2.27 | |
Linux Linux kernel | =3.2.28 | |
Linux Linux kernel | =3.2.29 | |
Linux Linux kernel | =3.2.30 | |
Linux Linux kernel | =3.3 | |
Linux Linux kernel | =3.3-rc1 | |
Linux Linux kernel | =3.3-rc2 | |
Linux Linux kernel | =3.3-rc3 | |
Linux Linux kernel | =3.3-rc4 | |
Linux Linux kernel | =3.3-rc5 | |
Linux Linux kernel | =3.3-rc6 | |
Linux Linux kernel | =3.3-rc7 | |
Linux Linux kernel | =3.3.1 | |
Linux Linux kernel | =3.3.2 | |
Linux Linux kernel | =3.3.3 | |
Linux Linux kernel | =3.3.4 | |
Linux Linux kernel | =3.3.5 | |
Linux Linux kernel | =3.3.6 | |
Linux Linux kernel | =3.3.7 | |
Linux Linux kernel | =3.3.8 | |
Linux Linux kernel | =3.4-rc1 | |
Linux Linux kernel | =3.4-rc2 | |
Linux Linux kernel | =3.4-rc3 | |
Linux Linux kernel | =3.4-rc4 | |
Linux Linux kernel | =3.4-rc5 | |
Linux Linux kernel | =3.4-rc6 | |
debian/linux | 5.10.223-1 5.10.226-1 6.1.115-1 6.1.112-1 6.11.7-1 6.11.9-1 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.