CVE-2026-98037 in Linux
Сводка
по VulDB • 25.09.2026
В ядре Linux была устранена следующая уязвимость:
bpf: Отклонять недоверенные указатели на выделенные объекты
Когда завершается последний критический участок чтения RCU, локальный kptr понижается до состояния PTR_UNTRUSTED, но сохраняет атрибут MEM_ALLOC. Указатель может быть равен NULL или ссылаться на объект, срок жизни которого больше не защищен.
Функция type_is_ptr_alloc_obj() тем не менее распознает любой тип PTR_TO_BTF_ID с атрибутом MEM_ALLOC как живой выделенный объект. В частности, локальный kptr, поддерживаемый только счетчиком ссылок (refcount), никогда не имеет атрибута NON_OWN_REF, поэтому он все еще проходит проверку аргумента bpf_refcount_acquire() после завершения защиты RCU. Затем функция kfunc может разыменовывать NULL или устаревшие данные памяти.
Сделано так, чтобы type_is_ptr_alloc_obj() отклоняла указатели PTR_UNTRUSTED. Поскольку тип type_is_non_owning_ref() основан на том же предикате, аргументы графовых kfunc подчиняются тому же требованию наличия живого объекта. Чтения с защитой от ошибок (fault-protected reads) для пониженого указателя остаются корректными: записи уже отклонены, а исправления чтений используют bpf_may_fault_on_deref(), а не этот предикат.
[ kkd: Переписано описание коммита ]
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.