{"id":"CVE-2026-74314","title":"bpf: Cancel special fields on map value recycle","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Cancel special fields on map value recycle\n\nMap update and delete paths currently call bpf_obj_free_fields() when a\nvalue is being replaced or recycled. That makes…","severity":"high","cvss":7.8,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cvssSource":"cna","vendor":"Linux","product":"Linux","affected":["Linux >= 14a324f6a67ef6a53e04362a70160a47eb8afffa < 9ea734e2cc0143d7429ab7dc0b20c85e5836183c","Linux >= 14a324f6a67ef6a53e04362a70160a47eb8afffa < a3a81d247651218e47153f2d2afd7aee236726fd","Linux f0462d38589422bc9e27fd3c6343dfeb6b3db2f9","Linux >= 5.18.18 < 5.19","Linux 5.19"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"total","timestamp":"2026-10-16T18:53:09.033904Z"},"published":"2026-08-15","updated":"2026-10-16","sourceUpdated":"2026-10-16T18:55:32.490Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-74314","references":[{"url":"https://git.kernel.org/stable/c/9ea734e2cc0143d7429ab7dc0b20c85e5836183c"},{"url":"https://git.kernel.org/stable/c/a3a81d247651218e47153f2d2afd7aee236726fd"}],"tags":["cve.org"],"epss":0.00177,"epssPercentile":0.06771,"ingestedAt":"2026-10-16T19:46:24.380Z","slug":"CVE-2026-74314","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Cancel special fields on map value recycle\n\nMap update and delete paths currently call bpf_obj_free_fields() when a\nvalue is being replaced or recycled. That makes field destruction depend\non the context of the update/delete operation. For tracing programs this\ncan include NMI context, where referenced kptr destructors, uptr\nunpinning, and graph root destruction are not generally safe.\n\nIntroduce bpf_obj_cancel_fields() for the reusable-value path. It only\nperforms NMI-safe cleanup for timer, workqueue, and task_work fields.\nFields that need full destruction are left attached to the recycled value\nand are destroyed by the final cleanup path instead.\n\nSwitch array and hashtab update/delete/recycle paths to this cancel\nhelper. Keep bpf_obj_free_fields() for final map destruction and for\nbpf_mem_alloc destructors. Preallocated hashtabs do not have allocator\ndestructors, so teardown continues to walk the normal and extra elements\nand fully destroy their fields.\n\nThis deliberately relaxes the eager-free semantics of map update/delete\nfor special fields. Programs that relied on a recycled map slot becoming\nempty immediately after update/delete were relying on behavior that\ncannot be implemented safely from every BPF execution context without\noffloading arbitrary destructors.\n\nThere is a chance this change breaks programs making assumptions\nregarding the eager freeing of fields. If so, we can relax semantics to\ncancellation only when irqs_disabled() is true in the future. However,\ntheoretically, map values that get reused eagerly already have weaker\nguarantees as parallel users can recreate freed fields before the new\nelement becomes visible again.\n\n## Affected\n\n- `Linux >= 14a324f6a67ef6a53e04362a70160a47eb8afffa < 9ea734e2cc0143d7429ab7dc0b20c85e5836183c`\n- `Linux >= 14a324f6a67ef6a53e04362a70160a47eb8afffa < a3a81d247651218e47153f2d2afd7aee236726fd`\n- `Linux f0462d38589422bc9e27fd3c6343dfeb6b3db2f9`\n- `Linux >= 5.18.18 < 5.19`\n- `Linux 5.19`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":43,"depthScoreParts":{"impact":42.9,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}