CVE-2024-36963 Information

Description

In the Linux kernel the following vulnerability has been resolved:

tracefs: Reset permissions on remount if permissions are options

There’s an inconsistency with the way permissions are handled in tracefs. Because the permissions are generated when accessed they default to the root inode’s permission if they were never set by the user. If the user sets the permissions then a flag is set and the permissions are saved via the inode (for tracefs files) or an internal attribute field (for eventfs).

But if a remount happens that specify the permissions all the files that were not changed by the user gets updated but the ones that were are not. If the user were to remount the file system with a given permission then all files and directories within that file system should be updated.

This can cause security issues if a file’s permission was updated but the admin forgot about it. They could incorrectly think that remounting with permissions set would update all files but miss some.

For example:

cd /sys/kernel/tracing chgrp 1002 current_tracer ls -l [..] -rw-r—– 1 root root 0 May 1 21:25 buffer_size_kb -rw-r—– 1 root root 0 May 1 21:25 buffer_subbuf_size_kb -r–r—– 1 root root 0 May 1 21:25 buffer_total_size_kb -rw-r—– 1 root lkp 0 May 1 21:25 current_tracer -rw-r—– 1 root root 0 May 1 21:25 dynamic_events -r–r—– 1 root root 0 May 1 21:25 dyn_ftrace_total_info -r–r—– 1 root root 0 May 1 21:25 enabled_functions

Where current_tracer now has group \lkp.

mount -o remountgid=1001 . ls -l -rw-r—– 1 root tracing 0 May 1 21:25 buffer_size_kb -rw-r—– 1 root tracing 0 May 1 21:25 buffer_subbuf_size_kb -r–r—– 1 root tracing 0 May 1 21:25 buffer_total_size_kb -rw-r—– 1 root lkp 0 May 1 21:25 current_tracer -rw-r—– 1 root tracing 0 May 1 21:25 dynamic_events -r–r—– 1 root tracing 0 May 1 21:25 dyn_ftrace_total_info -r–r—– 1 root tracing 0 May 1 21:25 enabled_functions

Everything changed but the ## Reference https://git.kernel.org/stable/c/5f91fc82794d4a6e41cdcd02d00baa377d94ca78 https://git.kernel.org/stable/c/414fb08628143203d29ccd0264b5a83fb9523c03 https://git.kernel.org/stable/c/baa23a8d4360d981a49913841a726edede5cdd54

Share on: