В ядре Linux устранена следующая уязвимость:
аудит: избегайте удаления ссылки на живое дерево при автоматическом удалении правила fsnotify
Audit_del_rule() используется как для шаблонов удаления сетевых ссылок, так и для внутренних
fsnotify автоматическое удаление. Первый передает анализируемый шаблон, которому принадлежит
временная ссылка на дерево; последний передает саму установленную запись. Безусловный аудит_put_tree() в конце аудита_del_rule() предполагает
шаблонный корпус.
Для смешанных правил AUDIT_DIR и AUDIT_EXE файл fsnotify
Поэтому событие autoremove удаляет ссылку на живое дерево установленного правила. Повторение этого для правил, использующих одно и то же дерево, может освободить дерево, пока
другое правило все еще ссылается на него, а более позднее автоматическое удаление разыменовывает
освобожден путь при сравнении правил. Переместите временное дерево, помещенное в Audit_rule_change(), вызывающую сторону, которой принадлежит
удаление шаблонов.
Сохраните его в очистке AUDIT_DEL_RULE, чтобы оба
успешное удаление и -ENOENT по-прежнему освобождают дерево, принадлежащее анализатору.
[PM: удалил ненужный комментарий из-за длины строки]
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: audit: avoid dropping live tree ref on fsnotify rule autoremove audit_del_rule() is used for both netlink deletion templates and internal fsnotify autoremove. The former passes a parsed template which owns a temporary tree reference; the latter passes the installed entry itself. The unconditional audit_put_tree() at the end of audit_del_rule() assumes the template case. For mixed AUDIT_DIR plus AUDIT_EXE rules, an fsnotify autoremove event therefore drops the installed rule's live tree reference. Repeating this across rules sharing the same tree can free the tree while another rule still references it, and a later autoremove dereferences the freed pathname while comparing rules. Move the temporary-tree put to audit_rule_change(), the caller that owns deletion templates. Keep it in the AUDIT_DEL_RULE cleanup so both successful deletion and -ENOENT still release the parser-owned tree. [PM: dropped unnecessary comment for line length reasons]
Характеристики атаки
Последствия
Строка CVSS v3.1