Две уязвимости в сервере ggml-RPC проекта llama.cpp были опубликованы в национальной базе данных уязвимостей с разницей менее часа в ночь на 23–24 августа. Обе находятся в одном компоненте. Ни для одной в поставляемом дереве нет исправления.
Более серьезная из них
CVE-2026-78147, опубликованная 23 августа в 23:16 UTC, обнаружена в функции deserialize_tensor. Сервер читает op и op_params из сети, не проверяя их. Для пользовательской операции такая структура содержит указатель на функцию — который затем вызывается. В базе данных прямо указано, что это отличается от более раннего CVE, где была добавлена только проверка буфера и поля операции не валидировались. Для RPC-сервера не требуется аутентификация.
Вторая уязвимость и ее 41-дневное исправление
CVE-2026-78148, опубликованная 24 августа в 00:16 UTC, представляет собой разыменование нулевого указателя в rpc_server::graph_compute, которое можно вызвать удаленно. Она менее серьезна из двух и именно для нее есть исправление — pull request, открытый 14 июля, который все еще не был слит, когда CVE была опубликована 41 день спустя.
Что не так с общепринятой трактовкой
Об этих уязвимостях будут писать как о «средней» степени серьезности, потому что именно такой ярлык присвоен обеим. Этот ярлык соответствует более новой шкале CVSS 4.0, которая ставит обеим 6,9 — одинаковую оценку для удаленно управляемого косвенного вызова и падения из-за нулевого указателя, что само по себе должно вызывать сомнения. На старой шкале CVSS 3.1 тот же оценщик разделяет их корректно: 7,3, в высокой категории, для проблемы с указателем на функцию и 5,3 для падения. Оценки не противоречат друг другу; это разные шкалы, и на поверхность вынесена именно та, которая сглаживает различие.
То, что не сводится к оценкам
Проблема, лежащая в основе более серьезного CVE, была сообщена 3 июля и закрыта 18 августа с пометкой not_planned — автоматическим закрытием из-за неактивности, за пять дней до публикации уязвимости. Ни одна из этих проблем не была неизвестным дефектом. Обе находились в трекере, и трекер двигался дальше.
