Description
In the Linux kernel, the following vulnerability has been resolved: ftrace: Add global mutex to serialize trace_parser access In ftrace, the trace_parser structure is allocated and initialized when a trace file is opened, and is subsequently used across write and release handlers to parse user input. The affected handler paths and their specific functions are: - Open paths: ftrace_regex_open(), ftrace_graph_open() - Write paths: ftrace_regex_write(), ftrace_graph_write() - Release paths: ftrace_regex_release(), ftrace_graph_release() If userspace opens a trace file descriptor and shares it across multiple threads, concurrent write calls will race on the parser's internal state, specifically the 'idx', 'cont', and 'buffer' fields, leading to corrupted input or undefined behavior. Fix this by adding a global mutex, parser_lock, to serialize all access to trace_parser across write and release paths, preventing concurrent corruption of parser state.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < a29bc20ea5f0cb79c6287f2c6182c5eeb8e6c01faffected689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < db76744d588086695371ecdd982694395628ba48affected689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < 1474fe4453505b6be720b5bb94be1c927de3314aaffected689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < 3d0dd138a06c782f8b755cd1b6f9909494514ce1affected689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < 90be137813e1a5bdfd671e40fe28004fb959d3e4affected689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < 65bf73bee1a4f3722208ae46afc0fa5de76b9a0aaffected689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < e807c9193d9493c7a0d039158ebb955050a76df1affected689fd8b65d669b96d612ccc37d6fb87bf7ed6907 to < 7720b63bcef3f54c7fe288774b720a227d54a306affected
Linux Linux
Default version status: affected
2.6.32affected0 to < 2.6.32unaffected5.10.266 to ≤ 5.10.*unaffected5.15.217 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a29bc20ea5f0cb79c6287f2c6182c5eeb8e6c01f ↗
- https://git.kernel.org/stable/c/db76744d588086695371ecdd982694395628ba48 ↗
- https://git.kernel.org/stable/c/1474fe4453505b6be720b5bb94be1c927de3314a ↗
- https://git.kernel.org/stable/c/3d0dd138a06c782f8b755cd1b6f9909494514ce1 ↗
- https://git.kernel.org/stable/c/90be137813e1a5bdfd671e40fe28004fb959d3e4 ↗
- https://git.kernel.org/stable/c/65bf73bee1a4f3722208ae46afc0fa5de76b9a0a ↗
- https://git.kernel.org/stable/c/e807c9193d9493c7a0d039158ebb955050a76df1 ↗
- https://git.kernel.org/stable/c/7720b63bcef3f54c7fe288774b720a227d54a306 ↗