{"id":"CVE-2026-98777","title":"binder: fix leaked fd fixups on TF_UPDATE_TXN supersede","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nbinder: fix leaked fd fixups on TF_UPDATE_TXN supersede\n\nWhen a TF_UPDATE_TXN transaction supersedes a pending async transaction\nin a frozen process, the outdated trans…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < 7fd609fb0e9dcbc4d7a1e4da1af5368c0555ff55","Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < 1299cb3fb061598496086fc87ff291057831148e","Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < 6673f4f21e2fddfed0abe1eb9045cc958e6db130","Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < c4c02084d6687d5cd5edccaf52cc45e5160f1184","Linux 6.0"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:48:13.993Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98777","references":[{"url":"https://git.kernel.org/stable/c/7fd609fb0e9dcbc4d7a1e4da1af5368c0555ff55"},{"url":"https://git.kernel.org/stable/c/1299cb3fb061598496086fc87ff291057831148e"},{"url":"https://git.kernel.org/stable/c/6673f4f21e2fddfed0abe1eb9045cc958e6db130"},{"url":"https://git.kernel.org/stable/c/c4c02084d6687d5cd5edccaf52cc45e5160f1184"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.490Z","slug":"CVE-2026-98777","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nbinder: fix leaked fd fixups on TF_UPDATE_TXN supersede\n\nWhen a TF_UPDATE_TXN transaction supersedes a pending async transaction\nin a frozen process, the outdated transaction is freed with kfree()\ndirectly. This skips binder_free_txn_fixups(), leaking all\nbinder_txn_fd_fixup entries and their fget()'d struct file references.\n\nThe leaked file refcounts never reach zero, so the struct file objects\nare permanently pinned in memory. They survive process exit and\naccumulate across invocations until file-max exhaustion.\n\nEvery other transaction cleanup path (binder_free_transaction(),\nbinder_transaction() error paths, binder_release_work()) correctly\ncalls binder_free_txn_fixups(). Add the missing call before kfree()\nin the t_outdated cleanup block.\n\n## Affected\n\n- `Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < 7fd609fb0e9dcbc4d7a1e4da1af5368c0555ff55`\n- `Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < 1299cb3fb061598496086fc87ff291057831148e`\n- `Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < 6673f4f21e2fddfed0abe1eb9045cc958e6db130`\n- `Linux >= 9864bb4801331daa48514face9d0f4861e4d485b < c4c02084d6687d5cd5edccaf52cc45e5160f1184`\n- `Linux 6.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}