В ядре Linux устранена следующая уязвимость:
lockd: устраняет утечку nlm_file при сбое nlm_do_fopen()
Клиент может неоднократно вызывать сбои nlm_do_fopen(), предоставляя
обрабатывает файлы, которые отклоняются базовым экспортом. После kzalloc_obj()
nlm_lookup_file() завершается успешно, только что выделенный nlm_file не
еще вставлен в nlm_files[]. Путь отказа nlm_do_fopen() перескакивает
на out_unlock, который освобождает nlm_file_mutex и возвращает без
освобождая выделение, поэтому при каждом сбое происходит утечка одного nlm_file.
Направьте ошибку через out_free, чтобы функция kfree() выполнялась до того, как
функция возвращает.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: lockd: Plug nlm_file leak when nlm_do_fopen() fails A client can repeatedly drive nlm_do_fopen() failures by presenting file handles that the underlying export rejects. After kzalloc_obj() succeeds in nlm_lookup_file(), the freshly allocated nlm_file is not yet inserted into nlm_files[]. The nlm_do_fopen() failure path jumps to out_unlock, which releases nlm_file_mutex and returns without freeing the allocation, so each failure leaks one nlm_file. Route the failure through out_free so kfree() runs before the function returns.