{"id":"CVE-2026-97923","published":"2026-09-25T11:17:19.413","lastModified":"2026-09-25T11:17:19.413","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Free histogram the var ref when its initialization fails\n\ncreate_var_ref() allocates a VAR_REF hist_field and then calls\ninit_var_ref() to fill it in. When that fails the field is leaked.\n\ncommit 656fe2ba85e8 (\"tracing: Use hist trigger's var_ref array to destroy\nvar_refs\") made destroy_hist_field() return early for\nHIST_FIELD_FL_VAR_REF, since var refs are freed by walking the trigger's\nvar_refs[] array instead. create_var_ref() adds the field to that array\nonly after init_var_ref() has succeeded, so on this path the field is in\nneither place and nothing frees it. The call was correct when it was\nwritten, before var refs were taken out of destroy_hist_field().\n\ninit_var_ref() cannot free it either. The caller owns the field, so\ninit_var_ref() undoes only its own string allocations and leaves the\nfield alone. Freeing it there would leave create_var_ref() passing freed\nmemory to destroy_hist_field(), which reads its flags.\n\nCall __destroy_hist_field(), which frees the field without consulting\nthe flag.","cvssScore":null,"cvssSeverity":null,"cvssVector":null,"cwes":[],"vendors":[],"products":[],"references":[{"url":"https://git.kernel.org/stable/c/222abcbe7866fef04563b6eb89fb21f627dcbc77","tags":[]},{"url":"https://git.kernel.org/stable/c/516001d53e6b2ea95a251ee2ef54a1a689a3fd58","tags":[]},{"url":"https://git.kernel.org/stable/c/74375caa20fe5165807b4334c783d1790b01f02a","tags":[]},{"url":"https://git.kernel.org/stable/c/a69baeac38677270656e85753d93856a076dee57","tags":[]}],"exploitRefs":[],"hasPoc":false,"ai":null}