Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: tracing: Fix resource leak on mmiotrace trace_pipe close The mmiotrace tracer was added May 12th 2008. At that time, resources created in pipe_open() could not be freed because there was not pipe_close function pointer of the tracer. The pipe_close function pointer was added in December 7th, 2009, but the mmiotrace tracer was not updated. mmio_pipe_open() allocates a header_iter and takes a pci_dev reference when trace_pipe is opened. mmio_close() frees them, but it was only wired to the tracer's .close callback. tracing_release_pipe() invokes .pipe_close, not .close, when the trace_pipe file is released. As a result, closing trace_pipe with the mmiotrace tracer active leaked the header_iter allocation and left a stale pci_dev reference. Set .pipe_close to mmio_close, matching how function_graph wires both callbacks to the same handler. Note, if the trace_pipe is read to completion, it will clean up the resources, but if one were to run: # head -n 1 /sys/kernel/tracing/trace_pipe VERSION 20070824 Over and over again, it would trigger a massive leak.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before 7871128ea41217fa6a58bbbcb44cb0d2e9e60966; affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before 1d0b59e2b203c02149d8f63607329debe36b3ec5; affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before 581ac13e12e77d6c64f8719083bdf95209308919; affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before f9e6dfe341fb31c95b9655eb6b1db8b3ae090817; affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before 594e1cf3f736779a535873fd5988162d827bfe4f; affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before cf5a82bef623b969a609f2b7e392d06dbae34aa6; affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before cb459fec4f7b13caf646101ff076e94ef38434d8; affected c521efd1700a8c0f7ce26f011f5eaecca17fabfa before c1d87e724ae55e781b7cc7ccafb34d9e668582b2 |
| Linux / Linux | affected 2.6.33; unaffected 0 before 2.6.33; unaffected 5.10.265 through 5.10.*; unaffected 5.15.216 through 5.15.*; unaffected 6.1.183 through 6.1.*; unaffected 6.6.148 through 6.6.*; unaffected 6.12.101 through 6.12.*; unaffected 6.18.42 through 6.18.*; unaffected 7.1.6 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/7871128ea41217fa6a58bbbcb44cb0d2e9e60966
- https://git.kernel.org/stable/c/1d0b59e2b203c02149d8f63607329debe36b3ec5
- https://git.kernel.org/stable/c/581ac13e12e77d6c64f8719083bdf95209308919
- https://git.kernel.org/stable/c/f9e6dfe341fb31c95b9655eb6b1db8b3ae090817
- https://git.kernel.org/stable/c/594e1cf3f736779a535873fd5988162d827bfe4f
- https://git.kernel.org/stable/c/cf5a82bef623b969a609f2b7e392d06dbae34aa6
- https://git.kernel.org/stable/c/cb459fec4f7b13caf646101ff076e94ef38434d8
- https://git.kernel.org/stable/c/c1d87e724ae55e781b7cc7ccafb34d9e668582b2