В ядре Linux устранена следующая уязвимость:
привкус: исправить Cred UAF в smack_file_send_sigiotask()
При проверке учетных данных другой задачи объективные учетные данные
(->real_cred, доступ к которому осуществляется с помощью __task_cred()), необходимо использовать всегда. Доступ к ->cred к нетекущей задаче запрещен, если эта задача не
быть созданным или уничтоженным; задаче разрешено изменять свой собственный ->cred
указатель без синхронизации, а изменение ->cred должно влиять только на
текущий системный вызов.
smack_file_send_sigiotask() имел доступ к обоим наборам учетных данных: первый
tsk->cred, затем __task_cred(tsk). Исправьте это, всегда получайте доступ к объективным учетным данным здесь.
Я проверил, что эта ошибка может привести к UAF структуры cred, о котором сообщает KASAN.
в smack_file_send_sigiotask() и что это исправление предотвращает гонку.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: smack: fix cred UAF in smack_file_send_sigiotask() When inspecting the credentials of another task, objective credentials (->real_cred, accessed with __task_cred()) must always be used. Accessing ->cred on a non-current task is forbidden unless that task is being created or destroyed; a task is allowed to change its own ->cred pointer with no synchronization, and changing ->cred should only affect the current syscall. smack_file_send_sigiotask() was accessing both sets of credentials: First tsk->cred, then __task_cred(tsk). Fix it, always access the objective credentials here. I have tested that this bug can lead to a KASAN-reported UAF of struct cred in smack_file_send_sigiotask(), and that this fix prevents the race.