{"id":"AZL-111341","summary":"CVE-2026-99180 affecting package kernel 6.6.157.1-1","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nunicode: free the map after a grace period\n\ngeneric_ci_d_hash() and generic_ci_d_compare() read sb-\u003es_encoding and\ndereference the unicode map while a pathwalk in rcu mode holds nothing\nbut rcu_read_lock(). The filesystems that use them, ext4, f2fs and\ntmpfs, drop the map with utf8_unload() from -\u003eput_super(), which runs\nwhen the last reference to the mount goes away. A lookup that is still\ninside such a filesystem at that point reads a freed map.\n\nWith a pathwalk held up in utf8_casefold_hash() while the last reference\nto a casefolded tmpfs goes away:\n\n  BUG: KASAN: slab-use-after-free in utf8nlookup+0x74c/0x950\n  Read of size 8 at addr ff110001030fe658 by task walker/98\n  Call Trace:\n   \u003cTASK\u003e\n   utf8nlookup+0x74c/0x950\n   utf8byte+0x160/0x1560\n   utf8_casefold_hash+0x167/0x230\n   generic_ci_d_hash+0xdd/0x1c0\n   link_path_walk+0x11ad/0x1d30\n   path_lookupat+0x63/0xb00\n   filename_lookup+0x1f1/0x5b0\n   vfs_statx+0xd7/0x3b0\n  [...]\n  Allocated by task 94:\n   __kmalloc_cache_noprof+0x249/0x560\n   utf8_load+0x4e/0x570\n   shmem_parse_opt_casefold.isra.0+0x92/0x270\n  [...]\n  Freed by task 97:\n   kfree+0x1db/0x5b0\n   shmem_put_super+0x72/0x170\n   generic_shutdown_super+0x14c/0x530\n   kill_anon_super+0x3a/0x60\n   deactivate_locked_super+0x9c/0xf0\n   cleanup_mnt+0x9f/0x130\n\nSo far that has been hard to hit. umount(2) waits for a grace period\nin namespace_unlock() before it drops the mount, so only a mount whose\nlast reference goes away elsewhere, like the close of a file or a chdir\nout of a lazily unmounted directory, can race a walker. So it is\nreachable.\n\nDelay the free until a grace period has passed. The map and the data\ntable it holds a reference to then outlive any pathwalk that found the\nsuperblock before the mount went away. The reference on the data table\nmodule is dropped from the rcu callback as well. utf8-core is built in\nwhenever CONFIG_UNICODE is set, so there is no module exit that would\nhave to wait for the callbacks.\n\nOverlayfs points the s_encoding of an overlay at the map of its first\nlayer without taking a reference of its own. That stays correct. The\nlayer is held by the overlay, so its map is dropped only after the\noverlay is gone.","modified":"2026-10-29T14:16:53.993357718Z","published":"2026-10-28T11:17:38Z","upstream":["CVE-2026-99180"],"references":[{"type":"WEB","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99180"}],"affected":[{"package":{"name":"kernel","ecosystem":"Azure Linux:3","purl":"pkg:rpm/azure-linux/kernel"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"6.6.157.1-1"}]}],"database_specific":{"source":"https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-111341.json"}}],"schema_version":"1.9.2"}