CVE-2025-68183 in Linuxinformation

Résumé

par VulDB • 23/06/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

ima : ne pas effacer l'indicateur IMA_DIGSIG lors de la définition ou de la suppression d'un xattr non-IMA

Actuellement, lorsque les modes « fix » sont activés pour IMA et EVM, la signature IMA est réinitialisée au hachage IMA si un programme stocke d'abord une signature IMA dans security.ima, puis écrit/supprime un autre xattr de sécurité pour le fichier.

Par exemple, sur Fedora, après avoir démarré le noyau avec « ima_appraise=fix evm=fix ima_policy=appraise_tcb » et installé rpm-plugin-ima, l'installation/réinstallation d'un paquet ne génère pas une bonne signature IMA de référence. À la place, un hachage IMA est généré :

# getfattr -m - -d -e hex /usr/bin/bash # file: usr/bin/bash security.ima=0x0404...

Cela se produit car lors de la définition de security.selinux, l'indicateur IMA_DIGSIG qui avait été défini précédemment est effacé. Par conséquent, un hachage IMA est généré lorsque le fichier est fermé.

De même, une signature IMA peut être effacée à la fermeture du fichier après la suppression d'un xattr de sécurité tel que security.evm ou lors de la définition/suppression des ACL.

Empêcher le remplacement de la signature de fichier IMA par un hachage de fichier, en empêchant l'indicateur IMA_DIGSIG d'être réinitialisé.

Voici un programme minimal (reproducer) en C qui définit security.selinux comme dernière étape, ce qui peut également être remplacé par la suppression de security.evm ou la définition des ACL :

#include <stdio.h> #include <sys/xattr.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #include <stdlib.h>

int main() {
const char* file_path = "/usr/sbin/test_binary"; const char* hex_string = "030204d33204490066306402304"; int length = strlen(hex_string); char* ima_attr_value; int fd;

fd = open(file_path, O_WRONLY|O_CREAT|O_EXCL, 0644); if (fd == -1) {
perror("Error opening file"); return 1; }

ima_attr_value = (char*)malloc(length / 2 ); for (int i = 0, j = 0; i < length; i += 2, j++) {
sscanf(hex_string + i, "%2hhx", &ima_attr_value[j]);
}

if (fsetxattr(fd, "security.ima", ima_attr_value, length/2, 0) == -1) {
perror("Error setting extended attribute"); close(fd); return 1; }

const char* selinux_value= "system_u:object_r:bin_t:s0"; if (fsetxattr(fd, "security.selinux", selinux_value, strlen(selinux_value), 0) == -1) {
perror("Error setting extended attribute"); close(fd); return 1; }

close(fd);

return 0; }

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Réserver

16/12/2025

Divulgation

16/12/2025

Modérer

accepté

Entrée

VDB-336765

CPE

prêt

EPSS

0.00137

KEV

non

Activités

faible

Sources

Want to know what is going to be exploited?

We predict KEV entries!