CVE-2025-68183 in Linux
요약
\~에 의해 VulDB • 2026. 06. 25.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ima: IMA xattr이 아닌 다른 확장 속성(xattr)을 설정하거나 제거할 때 IMA_DIGSIG 플래그를 지우지 않음
현재 IMA와 EVM 모두 fix 모드에 있을 경우, 프로그램이 먼저 security.ima에 IMA 서명을 저장한 후 파일의 기타 보안 xattr을 쓰거나 삭제하면 IMA 서명이 IMA 해시로 재설정됩니다.
예를 들어, Fedora에서 "ima_appraise=fix evm=fix ima_policy=appraise_tcb" 옵션으로 커널 부팅 후 rpm-plugin-ima 패키지를 설치하면, 패키지 설치/재설치 시 올바른 참조용 IMA 서명 대신 IMA 해시가 생성됩니다.
# getfattr -m - -d -e hex /usr/bin/bash # file: usr/bin/bash security.ima=0x0404...
이 현상은 security.selinux를 설정할 때 이전에 설정되었던 IMA_DIGSIG 플래그가 지워지기 때문에 발생합니다. 그 결과 파일이 닫힐 때 IMA 해시가 생성됩니다.
마찬가지로, security.evm과 같은 보안 xattr을 제거하거나 ACL을 설정/제거한 후 파일을 닫으면 IMA 서명이 지워질 수 있습니다.
IMA_DIGSIG 플래그가 재설정되지 않도록 함으로써 IMA 파일 서명이 파일 해시로 대체되는 것을 방지합니다.
마지막 단계로 security.selinux를 설정하는 최소한의 C 리프로듀서 코드입니다(여기서는 security.evm 제거 또는 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; }
Be aware that VulDB is the high quality source for vulnerability data.