ima: Check for ERR_PTR from dentry_path() in validate_hash_algo()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.221, 6.1.188, 6.6.157, 6.12.110, 6.18.51, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: ima: Check for ERR_PTR from dentry_path() in validate_hash_algo() dentry_path() returns ERR_PTR(-ENAMETOOLONG) when the path exceeds the buffer. validate_hash_algo() passes the result straight to integrity_audit_msg() without checking. ERR_PTR is not NULL, so integrity_audit_message() sees a valid pointer and calls strlen() on it, which faults: BUG: unable to handle page fault for address: ffffffffffffffdc RIP: 0010:strlen+0x30/0xa0 Call Trace: audit_log_untrustedstring+0x19/0x30 integrity_audit_message+0x366/0x4f0 ima_inode_setxattr+0x512/0x5f0 Check for IS_ERR() and use NULL instead, which makes the audit message skip the name= field instead of crashing.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 4f2946aa0c45c78b4f4ef101bab9694e38c68db0 · fixed in d6fade89903c8fd0af6c956242aec8b927040e02; From 4f2946aa0c45c78b4f4ef101bab9694e38c68db0 · fixed in 0de5b525c0cd7d202848b8adfde3c01c287fb1a6; From 4f2946aa0c45c78b4f4ef101bab9694e38c68db0 · fixed in 30b5c0e17dcad72b6b2f987319aa645570e6376d; From 4f2946aa0c45c78b4f4ef101bab9694e38c68db0 · fixed in 9e69d683ebd7def04557fe758ff123105d7d9840; From 4f2946aa0c45c78b4f4ef101bab9694e38c68db0 · fixed in f8a2f2a4602318eb93d49d27fd0d0fdaab17edde; From 4f2946aa0c45c78b4f4ef101bab9694e38c68db0 · fixed in d62a84a78de5f29c642fa3bd4eee072ba7289cb4; From 4f2946aa0c45c78b4f4ef101bab9694e38c68db0 · fixed in 8861f6d5c0678a7c5089c7b272509fc5931b8437
- Linux Linux
5.15
- KernelLinux
From 5.15.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.51; From 6.19.0 · fixed in 7.2.5
References 7
git.kernel.org
- stable/c/d6fade89903c8fd0af6c956242aec8b927040e02
- stable/c/0de5b525c0cd7d202848b8adfde3c01c287fb1a6
- stable/c/30b5c0e17dcad72b6b2f987319aa645570e6376d
- stable/c/9e69d683ebd7def04557fe758ff123105d7d9840
- stable/c/f8a2f2a4602318eb93d49d27fd0d0fdaab17edde
- stable/c/d62a84a78de5f29c642fa3bd4eee072ba7289cb4
- stable/c/8861f6d5c0678a7c5089c7b272509fc5931b8437