In the Linux kernel, the following vulnerability has been resolved:
tracing: Fix overflow in get_free_elt()
“tracing_map->next_elt” in get_free_elt() is at risk of overflowing.
Once it overflows, new elements can still be inserted into the tracing_map
even though the maximum number of elements (max_elts
) has been reached.
Continuing to insert elements after the overflow could result in the
tracing_map containing “tracing_map->max_size” elements, leaving no empty
entries.
If any attempt is made to insert an element into a full tracing_map using
__tracing_map_insert()
, it will cause an infinite loop with preemption
disabled, leading to a CPU hang problem.
Fix this by preventing any further increments to “tracing_map->next_elt”
once it reaches “tracing_map->max_elt”.
git.kernel.org/stable/c/236bb4690773ab6869b40bedc7bc8d889e36f9d6
git.kernel.org/stable/c/302ceb625d7b990db205a15e371f9a71238de91c
git.kernel.org/stable/c/788ea62499b3c18541fd6d621964d8fafbc4aec5
git.kernel.org/stable/c/a172c7b22bc2feaf489cfc6d6865f7237134fdf8
git.kernel.org/stable/c/bcf86c01ca4676316557dd482c8416ece8c2e143
git.kernel.org/stable/c/cd10d186a5409a1fe6e976df82858e9773a698da
git.kernel.org/stable/c/d3e4dbc2858fe85d1dbd2e72a9fc5dea988b5c18
git.kernel.org/stable/c/eb223bf01e688dfe37e813c8988ee11c8c9f8d0a