Deux vulnérabilités dans le serveur ggml-RPC de llama.cpp ont été publiées dans la base nationale des vulnérabilités à moins d’une heure d’intervalle dans la nuit du 23 au 24 août. Elles touchent toutes deux le même composant. Aucune n’a de correctif dans l’arbre de distribution.

La plus grave

CVE-2026-78147, publiée le 23 août à 23:16 UTC, se trouve dans la fonction deserialize_tensor. Le serveur lit op et op_params depuis le réseau sans les valider. Pour une opération personnalisée, cette structure contient un pointeur de fonction — qui est ensuite appelé. La base de données précise explicitement qu’il s’agit d’un cas distinct d’un CVE antérieur, qui n’ajoutait qu’une vérification de tampon et ne validait pas les champs de l’opération. Le serveur RPC ne nécessite aucune authentification.

La seconde, et son correctif de 41 jours

CVE-2026-78148, publiée le 24 août à 00:16 UTC, est une déréférence de pointeur nul dans rpc_server::graph_compute, déclenchable à distance. C’est la moins grave des deux, et c’est celle qui a un correctif — une pull request ouverte le 14 juillet qui n’avait toujours pas été fusionnée lorsque le CVE a été publié 41 jours plus tard.

Ce que la lecture habituelle ne dit pas

Celles-ci seront présentées comme de « gravité moyenne », car c’est le libellé associé aux deux. Ce libellé suit la nouvelle échelle CVSS 4.0, qui attribue 6,9 aux deux — le même score pour un appel indirect contrôlé à distance et un crash par pointeur nul, ce qui devrait déjà susciter la méfiance. Sur l’ancienne échelle CVSS 3.1, le même évaluateur les distingue correctement : 7,3, dans la catégorie élevée, pour le problème de pointeur de fonction, et 5,3 pour le crash. Les scores ne sont pas contradictoires ; ce sont des échelles différentes, et celle qui est mise en avant est précisément celle qui aplatit la distinction.

Le point qui ne relève pas de la notation

Le problème à l’origine du CVE le plus grave a été signalé le 3 juillet et fermé le 18 août avec la mention not_planned — une clôture automatique pour inactivité, cinq jours avant la publication de la vulnérabilité. Aucun de ces deux cas n’était une faille inconnue. Ils figuraient tous deux dans le suivi, et le suivi est passé à autre chose.