{"id":"CVE-2025-68740","state":"PUBLISHED","title":"ima: Handle error code returned by ima_filter_rule_match()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nima: Handle error code returned by ima_filter_rule_match()\n\nIn ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to\nthe rule being NULL, the function incorrectly skips the 'if (!rc)' check\nand sets 'result = true'. The LSM rule is considered a match, causing\nextra files to be measured by IMA.\n\nThis issue can be reproduced in the following scenario:\nAfter unloading the SELinux policy module via 'semodule -d', if an IMA\nmeasurement is triggered before ima_lsm_rules is updated,\nin ima_match_rules(), the first call to ima_filter_rule_match() returns\n-ESTALE. This causes the code to enter the 'if (rc == -ESTALE &&\n!rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In\nima_lsm_copy_rule(), since the SELinux module has been removed, the rule\nbecomes NULL, and the second call to ima_filter_rule_match() returns\n-ENOENT. This bypasses the 'if (!rc)' check and results in a false match.\n\nCall trace:\n  selinux_audit_rule_match+0x310/0x3b8\n  security_audit_rule_match+0x60/0xa0\n  ima_match_rules+0x2e4/0x4a0\n  ima_match_policy+0x9c/0x1e8\n  ima_get_action+0x48/0x60\n  process_measurement+0xf8/0xa98\n  ima_bprm_check+0x98/0xd8\n  security_bprm_check+0x5c/0x78\n  search_binary_handler+0x6c/0x318\n  exec_binprm+0x58/0x1b8\n  bprm_execve+0xb8/0x130\n  do_execveat_common.isra.0+0x1a8/0x258\n  __arm64_sys_execve+0x48/0x68\n  invoke_syscall+0x50/0x128\n  el0_svc_common.constprop.0+0xc8/0xf0\n  do_el0_svc+0x24/0x38\n  el0_svc+0x44/0x200\n  el0t_64_sync_handler+0x100/0x130\n  el0t_64_sync+0x3c8/0x3d0\n\nFix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error\ncodes like -ENOENT do not bypass the check and accidentally result in a\nsuccessful match.","publishedAt":"2025-12-24T12:09:37.971Z","updatedAt":"2026-06-16T19:20:31.026Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"d14e0ec6a6828ee0dffa163fb5d513c9a21f0a51","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"f2f4627b74c120fcdd8e1db93bc91f9bbaf46f85","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"88cd5fbf5869731be8fc6f7cecb4e0d6ab3d8749","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"cca3e7df3c0f99542033657ba850b9a6d27f8784","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"c2238d487a640ae3511e1b6f4640ab27ce10d7f6","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"de4431faf308d0c533cb386f5fa9af009bc86158","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"32952c4f4d1b2deb30dce72ba109da808a9018e1","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"738c9738e690f5cea24a3ad6fd2d9a323cf614f6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/integrity/ima/ima_policy.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"5.10.248","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.198","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.160","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.63","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.17.13","status":"unaffected","lessThanOrEqual":"6.17.*","versionType":"semver"},{"version":"6.18.2","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/integrity/ima/ima_policy.c"]}],"references":["https://git.kernel.org/stable/c/d14e0ec6a6828ee0dffa163fb5d513c9a21f0a51","https://git.kernel.org/stable/c/f2f4627b74c120fcdd8e1db93bc91f9bbaf46f85","https://git.kernel.org/stable/c/88cd5fbf5869731be8fc6f7cecb4e0d6ab3d8749","https://git.kernel.org/stable/c/cca3e7df3c0f99542033657ba850b9a6d27f8784","https://git.kernel.org/stable/c/c2238d487a640ae3511e1b6f4640ab27ce10d7f6","https://git.kernel.org/stable/c/de4431faf308d0c533cb386f5fa9af009bc86158","https://git.kernel.org/stable/c/32952c4f4d1b2deb30dce72ba109da808a9018e1","https://git.kernel.org/stable/c/738c9738e690f5cea24a3ad6fd2d9a323cf614f6"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:56.034Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/68xxx/CVE-2025-68740.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-68740","state":"PUBLISHED","datePublished":"2025-12-24T12:09:37.971Z","dateUpdated":"2026-06-16T19:20:31.026Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-12-24T10:30:51.030Z"},"containers":{"cna":{"title":"ima: Handle error code returned by ima_filter_rule_match()","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nima: Handle error code returned by ima_filter_rule_match()\n\nIn ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to\nthe rule being NULL, the function incorrectly skips the 'if (!rc)' check\nand sets 'result = true'. The LSM rule is considered a match, causing\nextra files to be measured by IMA.\n\nThis issue can be reproduced in the following scenario:\nAfter unloading the SELinux policy module via 'semodule -d', if an IMA\nmeasurement is triggered before ima_lsm_rules is updated,\nin ima_match_rules(), the first call to ima_filter_rule_match() returns\n-ESTALE. This causes the code to enter the 'if (rc == -ESTALE &&\n!rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In\nima_lsm_copy_rule(), since the SELinux module has been removed, the rule\nbecomes NULL, and the second call to ima_filter_rule_match() returns\n-ENOENT. This bypasses the 'if (!rc)' check and results in a false match.\n\nCall trace:\n  selinux_audit_rule_match+0x310/0x3b8\n  security_audit_rule_match+0x60/0xa0\n  ima_match_rules+0x2e4/0x4a0\n  ima_match_policy+0x9c/0x1e8\n  ima_get_action+0x48/0x60\n  process_measurement+0xf8/0xa98\n  ima_bprm_check+0x98/0xd8\n  security_bprm_check+0x5c/0x78\n  search_binary_handler+0x6c/0x318\n  exec_binprm+0x58/0x1b8\n  bprm_execve+0xb8/0x130\n  do_execveat_common.isra.0+0x1a8/0x258\n  __arm64_sys_execve+0x48/0x68\n  invoke_syscall+0x50/0x128\n  el0_svc_common.constprop.0+0xc8/0xf0\n  do_el0_svc+0x24/0x38\n  el0_svc+0x44/0x200\n  el0t_64_sync_handler+0x100/0x130\n  el0t_64_sync+0x3c8/0x3d0\n\nFix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error\ncodes like -ENOENT do not bypass the check and accidentally result in a\nsuccessful match."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"d14e0ec6a6828ee0dffa163fb5d513c9a21f0a51","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"f2f4627b74c120fcdd8e1db93bc91f9bbaf46f85","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"88cd5fbf5869731be8fc6f7cecb4e0d6ab3d8749","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"cca3e7df3c0f99542033657ba850b9a6d27f8784","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"c2238d487a640ae3511e1b6f4640ab27ce10d7f6","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"de4431faf308d0c533cb386f5fa9af009bc86158","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"32952c4f4d1b2deb30dce72ba109da808a9018e1","versionType":"git"},{"version":"4af4662fa4a9dc62289c580337ae2506339c4729","status":"affected","lessThan":"738c9738e690f5cea24a3ad6fd2d9a323cf614f6","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/integrity/ima/ima_policy.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.30","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.30","versionType":"semver"},{"version":"5.10.248","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.198","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.160","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.120","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.63","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.17.13","status":"unaffected","lessThanOrEqual":"6.17.*","versionType":"semver"},{"version":"6.18.2","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["security/integrity/ima/ima_policy.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/d14e0ec6a6828ee0dffa163fb5d513c9a21f0a51"},{"url":"https://git.kernel.org/stable/c/f2f4627b74c120fcdd8e1db93bc91f9bbaf46f85"},{"url":"https://git.kernel.org/stable/c/88cd5fbf5869731be8fc6f7cecb4e0d6ab3d8749"},{"url":"https://git.kernel.org/stable/c/cca3e7df3c0f99542033657ba850b9a6d27f8784"},{"url":"https://git.kernel.org/stable/c/c2238d487a640ae3511e1b6f4640ab27ce10d7f6"},{"url":"https://git.kernel.org/stable/c/de4431faf308d0c533cb386f5fa9af009bc86158"},{"url":"https://git.kernel.org/stable/c/32952c4f4d1b2deb30dce72ba109da808a9018e1"},{"url":"https://git.kernel.org/stable/c/738c9738e690f5cea24a3ad6fd2d9a323cf614f6"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:52:25.762Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.10.248"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"5.15.198"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.1.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.6.120"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.12.63"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.17.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.18.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.30","versionEndExcluding":"6.19"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-06-16T19:20:20.279928Z","id":"CVE-2025-68740","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-06-16T19:20:31.026Z"}}]}}}