On 3/12/2024 11:51 AM, Casey Schaufler wrote:
On 3/12/2024 11:14 AM, Fan Wu wrote:On 3/11/2024 8:07 PM, Eric Biggers wrote:On Mon, Mar 11, 2024 at 07:57:12PM -0700, Eric Biggers wrote:As I've said before, this commit message needs some work. It currently doesn't say anything about what the patch actually does. BTW, please make sure you're Cc'ing the fsverity mailing list (fsverity@xxxxxxxxxxxxxxx), not fscrypt (linux-fscrypt@xxxxxxxxxxxxxxx).Also, I thought this patch was using a new LSM hook, but I now see that you're actually abusing the existing security_inode_setsecurity() LSM hook. Currently that hook is called when an xattr is set. I don't see any precedent for overloading it for other purposes. This seems problematic, as it means that a request to set an xattr with the name you chose ("fsverity.builtin-sig") will be interpreted by LSMs as the fsverity builtin signature. A dedicated LSM hook may be necessary to avoid issues with overloading the existing xattr hook like this. - EricThanks for the suggestion. I found that using security_inode_setsecurity() causes issues with SMACK's inode_setsecurity() hook. I will crate a dedicated new hook like security_inode_setsig() in the next version.What is the issue you encountered with the Smack hook?
The current hook call for saving file signature will fail at https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/security/smack/smack_lsm.c#n2855 .
The issue is file signature size is larger than SMK_LONGLABEL so if SMACK is enabled the SMACK's hook will return -EINVAL, which prevents us to use security_inode_setsecurity() to save file signature into security blob.
We could also make security_inode_setsecurity() more generic instead of for xattr only, any suggestions?
-Fan