{"api_version":"1","generated_at":"2026-10-22T08:09:51+00:00","cve":"CVE-2026-98777","urls":{"html":"https://cve.report/CVE-2026-98777","api":"https://cve.report/api/cve/CVE-2026-98777.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-98777","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-98777"},"summary":{"title":"binder: fix leaked fd fixups on TF_UPDATE_TXN supersede","description":"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 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.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-10-18 16:17:31","updated_at":"2026-10-21 13:21:45"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/a7329ea53d04f0c6135d02905810cd6f42acdf45","name":"https://git.kernel.org/stable/c/a7329ea53d04f0c6135d02905810cd6f42acdf45","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/6673f4f21e2fddfed0abe1eb9045cc958e6db130","name":"https://git.kernel.org/stable/c/6673f4f21e2fddfed0abe1eb9045cc958e6db130","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c4c02084d6687d5cd5edccaf52cc45e5160f1184","name":"https://git.kernel.org/stable/c/c4c02084d6687d5cd5edccaf52cc45e5160f1184","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7fd609fb0e9dcbc4d7a1e4da1af5368c0555ff55","name":"https://git.kernel.org/stable/c/7fd609fb0e9dcbc4d7a1e4da1af5368c0555ff55","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/1299cb3fb061598496086fc87ff291057831148e","name":"https://git.kernel.org/stable/c/1299cb3fb061598496086fc87ff291057831148e","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-98777","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98777","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 9864bb4801331daa48514face9d0f4861e4d485b a7329ea53d04f0c6135d02905810cd6f42acdf45 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 9864bb4801331daa48514face9d0f4861e4d485b 7fd609fb0e9dcbc4d7a1e4da1af5368c0555ff55 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 9864bb4801331daa48514face9d0f4861e4d485b 1299cb3fb061598496086fc87ff291057831148e git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 9864bb4801331daa48514face9d0f4861e4d485b 6673f4f21e2fddfed0abe1eb9045cc958e6db130 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 9864bb4801331daa48514face9d0f4861e4d485b c4c02084d6687d5cd5edccaf52cc45e5160f1184 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 6.0","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.0 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.160 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.113 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.56 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.10 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"98777","cve":"CVE-2026-98777","epss":"0.001680000","percentile":"0.057210000","score_date":"2026-10-21","updated_at":"2026-10-22 00:15:10"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/android/binder.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"a7329ea53d04f0c6135d02905810cd6f42acdf45","status":"affected","version":"9864bb4801331daa48514face9d0f4861e4d485b","versionType":"git"},{"lessThan":"7fd609fb0e9dcbc4d7a1e4da1af5368c0555ff55","status":"affected","version":"9864bb4801331daa48514face9d0f4861e4d485b","versionType":"git"},{"lessThan":"1299cb3fb061598496086fc87ff291057831148e","status":"affected","version":"9864bb4801331daa48514face9d0f4861e4d485b","versionType":"git"},{"lessThan":"6673f4f21e2fddfed0abe1eb9045cc958e6db130","status":"affected","version":"9864bb4801331daa48514face9d0f4861e4d485b","versionType":"git"},{"lessThan":"c4c02084d6687d5cd5edccaf52cc45e5160f1184","status":"affected","version":"9864bb4801331daa48514face9d0f4861e4d485b","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/android/binder.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"6.0"},{"lessThan":"6.0","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.160","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.113","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.56","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.10","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.160","versionStartIncluding":"6.0","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.113","versionStartIncluding":"6.0","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.56","versionStartIncluding":"6.0","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.10","versionStartIncluding":"6.0","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3","versionStartIncluding":"6.0","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"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 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."}],"providerMetadata":{"dateUpdated":"2026-10-21T12:56:50.708Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/a7329ea53d04f0c6135d02905810cd6f42acdf45"},{"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"}],"title":"binder: fix leaked fd fixups on TF_UPDATE_TXN supersede","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-98777","datePublished":"2026-10-18T15:48:13.993Z","dateReserved":"2026-09-25T10:25:14.369Z","dateUpdated":"2026-10-21T12:56:50.708Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-18 16:17:31","lastModifiedDate":"2026-10-21 13:21:45","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"98777","Ordinal":"1","Title":"binder: fix leaked fd fixups on TF_UPDATE_TXN supersede","CVE":"CVE-2026-98777","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"98777","Ordinal":"1","NoteData":"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 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.","Type":"Description","Title":"binder: fix leaked fd fixups on TF_UPDATE_TXN supersede"}]}}}