CVE-2025-68359 in LinuxИнформация

Сводка

по VulDB • 30.06.2026

В ядре Linux устранена следующая уязвимость:

btrfs: исправлено двойное освобождение (double free) записи qgroup после неудачи при добавлении заголовка отложенной ссылки (delayed ref head).

В предыдущем коде была возможна ситуация двойного вызова kfree() при обращении к функции add_delayed_ref_head(). Это могло произойти, если запись уже существовала и об этом сообщалось в вызове btrfs_qgroup_trace_extent_nolock(), но затем возникала ошибка на этапе выполнения add_delayed_ref_head(). В таком случае, поскольку функция add_delayed_ref_head() вернула код ошибки, вызывающая сторона переходила к освобождению записи. Так как add_delayed_ref_head() не могла установить указатель этой освобождаемой памяти (kfree'd pointer) в NULL, последующий вызов kfree() выполнялся бы над объектом 'record', который уже был освобожден подвызываемой функцией (callee).

Проблема заключается в том, что ответственность за освобождение объекта через kfree одновременно лежит и на вызывающей стороне (caller), и на подвызываемой функции (callee). Следовательно, исправление состоит в передаче права собственности на объект 'qrecord' от add_delayed_ref_head() к вызывающей стороне. То есть мы никогда не будем пытаться выполнить освобождение данного объекта внутри этой функции и ожидаем, что вызывающая сторона самостоятельно обработает объект 'qrecord'. Единственным исключением является случай, когда объект 'qrecord' был вставлен в логику трассировки; для учета этого случая уже существует булева переменная 'qrecord_inserted_ret'. Таким образом, вызывающая сторона должна освобождать объект только в том случае, если add_delayed_ref_head() сообщает о том, что он не был вставлен в логику трассировки.

В качестве побочного эффекта вышесказанного необходимо гарантировать, что 'qrecord_inserted_ret' правильно инициализируется в начале функции, а не в конце, и устанавливается только при фактической вставке. Это позволяет избежать наличия у 'qrecord_inserted_ret' недопустимого значения при раннем выходе из функции.

Документация для add_delayed_ref_head() также была обновлена с учетом точного распределения прав собственности на объект 'qrecord'.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Ответственный

Linux

Резервировать

16.12.2025

Раскрытие

24.12.2025

Модерация

принято

Вход

VDB-338233

EPSS

0.00167

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!