[PATCH V2] fs: export anon_inode_make_secure_inode() and fix secretmem LSM bypass
Vlastimil Babka
vbabka at suse.cz
Mon Jun 23 14:13:19 UTC 2025
On 6/23/25 16:08, Shivank Garg wrote:
>
>
> On 6/23/2025 7:21 PM, David Hildenbrand wrote:
>> On 20.06.25 09:03, Shivank Garg wrote:
>>> Export anon_inode_make_secure_inode() to allow KVM guest_memfd to create
>>> anonymous inodes with proper security context. This replaces the current
>>> pattern of calling alloc_anon_inode() followed by
>>> inode_init_security_anon() for creating security context manually.
>>>
>>> This change also fixes a security regression in secretmem where the
>>> S_PRIVATE flag was not cleared after alloc_anon_inode(), causing
>>> LSM/SELinux checks to be bypassed for secretmem file descriptors.
>>>
>>> As guest_memfd currently resides in the KVM module, we need to export this
>>> symbol for use outside the core kernel. In the future, guest_memfd might be
>>> moved to core-mm, at which point the symbols no longer would have to be
>>> exported. When/if that happens is still unclear.
>>>
>>> Fixes: 2bfe15c52612 ("mm: create security context for memfd_secret inodes")
>>> Suggested-by: David Hildenbrand <david at redhat.com>
>>> Suggested-by: Mike Rapoport <rppt at kernel.org>
>>> Signed-off-by: Shivank Garg <shivankg at amd.com>
>>
>>
>> In general, LGTM, but I think the actual fix should be separated from exporting it for guest_memfd purposes?
>>
>> Also makes backporting easier, when EXPORT_SYMBOL_GPL_FOR_MODULES does not exist yet ...
>>
> I agree. I did not think about backporting conflicts when sending the patch.
>
> Christian, I can send it as 2 separate patches to make it easier?
The proper way is to send the fix without the export, and then add the
export only when adding its user.
> Thanks,
> Shivank
More information about the Linux-security-module-archive
mailing list