{"id":"CVE-2026-98990","summary":"namespace: check a submount for references right before unmounting it","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nnamespace: check a submount for references right before unmounting it\n\nshrink_submounts() and mark_mounts_for_expiry() first collect all the\nmounts they are allowed to unmount and then unmount them.\n\nWhether a mount is busy is decided by propagate_mount_busy() on the\ntree. But unmounting the first mount changes the tree that the second\none propagates into. propagate_umount()\nmoves a surviving overmount off a copy it unmounts and mounts it where\nthe copy was mounted. If that's where the propagated copy of the second\nvictim is looked up the overmount becomes a candidate of the second\numount_tree(). It's childless and so trim_one() commits it without\nlooking at its reference count.\n\nSo a synchronous umount pulls out a busy mount that is in use somewhere\nelse and marks it MNT_SYNC_UMOUNT while it has users:\n\n  umount2(/tmp/plshrink/p1, 0) = 0 errno 0\n  cwd is (unreachable)\n\nThe same two umounts requested one after the other fail with EBUSY.\nThis needs a mount with MNT_SHRINKABLE, i.e., automounted submounts of\nNFS, AFS and CIFS or the tracefs mount below debugfs. Bind mounts\ninherit the flag.\n\nCheck each mount right before it is unmounted under the same hold of\nnamespace_sem and mount_lock as the umount itself. Make sure that the\nalgorithm stays linear.","modified":"2026-11-01T02:31:05.061751848Z","published":"2026-10-23T12:20:09.349Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98990.json","cna_assigner":"Linux"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/18902a23ef36f83d32bafc58ae2484e6bb4bb8ef"},{"type":"WEB","url":"https://git.kernel.org/stable/c/32bf92416614a1e3ff3524fc6b780259c7aad3ef"},{"type":"WEB","url":"https://git.kernel.org/stable/c/361f59e7f3f9a219fb5567bf9abc8482a154a399"},{"type":"WEB","url":"https://git.kernel.org/stable/c/3f55f71291e4332983cd63b288d1f2be3c9c08fc"},{"type":"WEB","url":"https://git.kernel.org/stable/c/6e4012e571867868b545c91ca9d6095fdb709907"},{"type":"WEB","url":"https://git.kernel.org/stable/c/cda0c4e502a0f74a191471ce100fb061e5ab35d6"},{"type":"WEB","url":"https://git.kernel.org/stable/c/d73f04e92c1aab78d96ac6cadb234c8a3a373d22"},{"type":"WEB","url":"https://git.kernel.org/stable/c/f6394281834492c6516a405a348b545ae698a331"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98990.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98990"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"1064f874abc0d05eeed8993815f584d847b72486"},{"fixed":"cda0c4e502a0f74a191471ce100fb061e5ab35d6"},{"fixed":"3f55f71291e4332983cd63b288d1f2be3c9c08fc"},{"fixed":"361f59e7f3f9a219fb5567bf9abc8482a154a399"},{"fixed":"f6394281834492c6516a405a348b545ae698a331"},{"fixed":"6e4012e571867868b545c91ca9d6095fdb709907"},{"fixed":"d73f04e92c1aab78d96ac6cadb234c8a3a373d22"},{"fixed":"18902a23ef36f83d32bafc58ae2484e6bb4bb8ef"},{"fixed":"32bf92416614a1e3ff3524fc6b780259c7aad3ef"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4.1.40"},{"fixed":"4.2"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4.4.54"},{"fixed":"4.5"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4.9.15"},{"fixed":"4.10"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4.10.3"},{"fixed":"4.11"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"5e6ef5ef6eaf690faad3a7c6c665ebf45d7b6ccf"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"839d42687dfce0ed0ea2c6bd8d707cc0e276fbe7"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"808e83e5add13152bd4a88346487de68395c136b"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"6de9d08a9718ee9c12ba6343c50141c2d633e3dc"}]}],"versions":["v4.1.52","v4.1.51","v4.1.50","v4.1.49","v4.1.48","v4.1.47","v4.1.46","v4.1.45","v4.1.44","v4.1.43","v4.1.42","v4.1.41","v4.1.40","v4.4.302","v4.4.301","v4.4.300","v4.4.299","v4.4.298","v4.4.297","v4.4.296","v4.4.295","v4.4.294","v4.4.293","v4.4.292","v4.4.291","v4.4.290","v4.4.289","v4.4.288","v4.4.287","v4.4.286","v4.4.285","v4.4.284","v4.4.283","v4.4.282","v4.4.281","v4.4.280","v4.4.279","v4.4.278","v4.4.277","v4.4.276","v4.4.275","v4.4.274","v4.4.273","v4.4.272","v4.4.271","v4.4.270","v4.4.269","v4.4.268","v4.4.267","v4.4.266","v4.4.265","v4.4.264","v4.4.263","v4.4.262","v4.4.261","v4.4.260","v4.4.259","v4.4.258","v4.4.257","v4.4.256","v4.4.255","v4.4.254","v4.4.253","v4.4.252","v4.4.251","v4.4.250","v4.4.249","v4.4.248","v4.4.247","v4.4.246","v4.4.245","v4.4.244","v4.4.243","v4.4.242","v4.4.241","v4.4.240","v4.4.239","v4.4.238","v4.4.237","v4.4.236","v4.4.235","v4.4.234","v4.4.233","v4.4.232","v4.4.231","v4.4.230","v4.4.229","v4.4.228","v4.4.227","v4.4.226","v4.4.225","v4.4.224","v4.4.223","v4.4.222","v4.4.221","v4.4.220","v4.4.219","v4.4.218","v4.4.217","v4.4.216","v4.4.215","v4.4.214","v4.4.213","v4.4.212","v4.4.211","v4.4.210","v4.4.209","v4.4.208","v4.4.207","v4.4.206","v4.4.205","v4.4.204","v4.4.203","v4.4.202","v4.4.201","v4.4.200","v4.4.199","v4.4.198","v4.4.197","v4.4.196","v4.4.195","v4.4.194","v4.4.193","v4.4.192","v4.4.191","v4.4.190","v4.4.189","v4.4.188","v4.4.187","v4.4.186","v4.4.185","v4.4.184","v4.4.183","v4.4.182","v4.4.181","v4.4.180","v4.4.179","v4.4.178","v4.4.177","v4.4.176","v4.4.175","v4.4.174","v4.4.173","v4.4.172","v4.4.171","v4.4.170","v4.4.169","v4.4.168","v4.4.167","v4.4.166","v4.4.165","v4.4.164","v4.4.163","v4.4.162","v4.4.161","v4.4.160","v4.4.159","v4.4.158","v4.4.157","v4.4.156","v4.4.155","v4.4.154","v4.4.153","v4.4.152","v4.4.151","v4.4.150","v4.4.149","v4.4.148","v4.4.147","v4.4.146","v4.4.145","v4.4.144","v4.4.143","v4.4.142","v4.4.141","v4.4.140","v4.4.139","v4.4.138","v4.4.137","v4.4.136","v4.4.135","v4.4.134","v4.4.133","v4.4.132","v4.4.131","v4.4.130","v4.4.129","v4.4.128","v4.4.127","v4.4.126","v4.4.125","v4.4.124","v4.4.123","v4.4.122","v4.4.121","v4.4.120","v4.4.119","v4.4.118","v4.4.117","v4.4.116","v4.4.115","v4.4.114","v4.4.113","v4.4.112","v4.4.111","v4.4.110","v4.4.109","v4.4.108","v4.4.107","v4.4.106","v4.4.105","v4.4.104","v4.4.103","v4.4.102","v4.4.101","v4.4.100","v4.4.99","v4.4.98","v4.4.97","v4.4.96","v4.4.95","v4.4.94","v4.4.93","v4.4.92","v4.4.91","v4.4.90","v4.4.89","v4.4.88","v4.4.87","v4.4.86","v4.4.85","v4.4.84","v4.4.83","v4.4.82","v4.4.81","v4.4.80","v4.4.79","v4.4.78","v4.4.77","v4.4.76","v4.4.75","v4.4.74","v4.4.73","v4.4.72","v4.4.71","v4.4.70","v4.4.69","v4.4.68","v4.4.67","v4.4.66","v4.4.65","v4.4.64","v4.4.63","v4.4.62","v4.4.61","v4.4.60","v4.4.59","v4.4.58","v4.4.57","v4.4.56","v4.4.55","v4.4.54","v4.9.337","v4.9.336","v4.9.335","v4.9.334","v4.9.333","v4.9.332","v4.9.331","v4.9.330","v4.9.329","v4.9.328","v4.9.327","v4.9.326","v4.9.325","v4.9.324","v4.9.323","v4.9.322","v4.9.321","v4.9.320","v4.9.319","v4.9.318","v4.9.317","v4.9.316","v4.9.315","v4.9.314","v4.9.313","v4.9.312","v4.9.311","v4.9.310","v4.9.309","v4.9.308","v4.9.307","v4.9.306","v4.9.305","v4.9.304","v4.9.303","v4.9.302","v4.9.301","v4.9.300","v4.9.299","v4.9.298","v4.9.297","v4.9.296","v4.9.295","v4.9.294","v4.9.293","v4.9.292","v4.9.291","v4.9.290","v4.9.289","v4.9.288","v4.9.287","v4.9.286","v4.9.285","v4.9.284","v4.9.283","v4.9.282","v4.9.281","v4.9.280","v4.9.279","v4.9.278","v4.9.277","v4.9.276","v4.9.275","v4.9.274","v4.9.273","v4.9.272","v4.9.271","v4.9.270","v4.9.269","v4.9.268","v4.9.267","v4.9.266","v4.9.265","v4.9.264","v4.9.263","v4.9.262","v4.9.261","v4.9.260","v4.9.259","v4.9.258","v4.9.257","v4.9.256","v4.9.255","v4.9.254","v4.9.253","v4.9.252","v4.9.251","v4.9.250","v4.9.249","v4.9.248","v4.9.247","v4.9.246","v4.9.245","v4.9.244","v4.9.243","v4.9.242","v4.9.241","v4.9.240","v4.9.239","v4.9.238","v4.9.237","v4.9.236","v4.9.235","v4.9.234","v4.9.233","v4.9.232","v4.9.231","v4.9.230","v4.9.229","v4.9.228","v4.9.227","v4.9.226","v4.9.225","v4.9.224","v4.9.223","v4.9.222","v4.9.221","v4.9.220","v4.9.219","v4.9.218","v4.9.217","v4.9.216","v4.9.215","v4.9.214","v4.9.213","v4.9.212","v4.9.211","v4.9.210","v4.9.209","v4.9.208","v4.9.207","v4.9.206","v4.9.205","v4.9.204","v4.9.203","v4.9.202","v4.9.201","v4.9.200","v4.9.199","v4.9.198","v4.9.197","v4.9.196","v4.9.195","v4.9.194","v4.9.193","v4.9.192","v4.9.191","v4.9.190","v4.9.189","v4.9.188","v4.9.187","v4.9.186","v4.9.185","v4.9.184","v4.9.183","v4.9.182","v4.9.181","v4.9.180","v4.9.179","v4.9.178","v4.9.177","v4.9.176","v4.9.175","v4.9.174","v4.9.173","v4.9.172","v4.9.171","v4.9.170","v4.9.169","v4.9.168","v4.9.167","v4.9.166","v4.9.165","v4.9.164","v4.9.163","v4.9.162","v4.9.161","v4.9.160","v4.9.159","v4.9.158","v4.9.157","v4.9.156","v4.9.155","v4.9.154","v4.9.153","v4.9.152","v4.9.151","v4.9.150","v4.9.149","v4.9.148","v4.9.147","v4.9.146","v4.9.145","v4.9.144","v4.9.143","v4.9.142","v4.9.141","v4.9.140","v4.9.139","v4.9.138","v4.9.137","v4.9.136","v4.9.135","v4.9.134","v4.9.133","v4.9.132","v4.9.131","v4.9.130","v4.9.129","v4.9.128","v4.9.127","v4.9.126","v4.9.125","v4.9.124","v4.9.123","v4.9.122","v4.9.121","v4.9.120","v4.9.119","v4.9.118","v4.9.117","v4.9.116","v4.9.115","v4.9.114","v4.9.113","v4.9.112","v4.9.111","v4.9.110","v4.9.109","v4.9.108","v4.9.107","v4.9.106","v4.9.105","v4.9.104","v4.9.103","v4.9.102","v4.9.101","v4.9.100","v4.9.99","v4.9.98","v4.9.97","v4.9.96","v4.9.95","v4.9.94","v4.9.93","v4.9.92","v4.9.91","v4.9.90","v4.9.89","v4.9.88","v4.9.87","v4.9.86","v4.9.85","v4.9.84","v4.9.83","v4.9.82","v4.9.81","v4.9.80","v4.9.79","v4.9.78","v4.9.77","v4.9.76","v4.9.75","v4.9.74","v4.9.73","v4.9.72","v4.9.71","v4.9.70","v4.9.69","v4.9.68","v4.9.67","v4.9.66","v4.9.65","v4.9.64","v4.9.63","v4.9.62","v4.9.61","v4.9.60","v4.9.59","v4.9.58","v4.9.57","v4.9.56","v4.9.55","v4.9.54","v4.9.53","v4.9.52","v4.9.51","v4.9.50","v4.9.49","v4.9.48","v4.9.47","v4.9.46","v4.9.45","v4.9.44","v4.9.43","v4.9.42","v4.9.41","v4.9.40","v4.9.39","v4.9.38","v4.9.37","v4.9.36","v4.9.35","v4.9.34","v4.9.33","v4.9.32","v4.9.31","v4.9.30","v4.9.29","v4.9.28","v4.9.27","v4.9.26","v4.9.25","v4.9.24","v4.9.23","v4.9.22","v4.9.21","v4.9.20","v4.9.19","v4.9.18","v4.9.17","v4.9.16","v4.9.15","v4.10.17","v4.10.16","v4.10.15","v4.10.14","v4.10.13","v4.10.12","v4.10.11","v4.10.10","v4.10.9","v4.10.8","v4.10.7","v4.10.6","v4.10.5","v4.10.4","v4.10.3"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98990.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.11.0"},{"fixed":"5.10.273"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.11.0"},{"fixed":"5.15.224"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.16.0"},{"fixed":"6.1.191"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.2.0"},{"fixed":"6.6.160"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.7.0"},{"fixed":"6.12.113"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.57"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.11"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98990.json"}}],"schema_version":"1.9.2"}