
oss-sec mailing list archives
Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros
From: Demi Marie Obenour <demiobenour () gmail com>
Date: Wed, 11 Jun 2025 00:16:03 -0400
On 6/5/25 23:02, Solar Designer wrote:
Re-added CC: Attila, Muhammed On Mon, Jun 02, 2025 at 11:38:30PM -0400, Demi Marie Obenour wrote:On 6/2/25 22:59, Solar Designer wrote:The kernel security team ended up rejecting the CVE: https://lore.kernel.org/linux-cve-announce/2025033057-CVE-2025-0927-1436@gregkh/T/#uFilesystem bugs due to corrupt images are not considered a CVE for any filesystem that is only mountable by CAP_SYS_ADMIN in the initial user namespace. That includes delegated mounting.If nothing else, this can be used to bypass UEFI Secure Boot.Good point. So is arbitrary unsigned code execution in the kernel (locked down against it) generally out of scope of kernel CVE assignment?
It seems so, which is rather sad.
For practical purposes, I think there's major difference between UEFI Secure Boot bypasses that let you run arbitrary code without logging in (especially if you can bypass TPM-based disk encryption in this way) vs. post-login (doesn't violate TPM-based disk encryption's security model).
The code execution would happen after login. This is still severe in some threat models, as it allows for an attacker to maintain persistent control of a machine as long as the user uses it, rather than only until the user reboots.
An issue here is that "allowing console users to automount removable media" is a high risk, especially if upstream doesn't intend the code to be robust and secure against corrupt or malicious filesystem images. Maybe there should at least be an allow-list of filesystem types, which would be focused on filesystems most commonly used on removable media?Which ones would you include?I was thinking those commonly seen on pre-formatted flash media, but maybe that doesn't cover a large enough fraction of use cases.
I think those are NTFS, FAT32, and exFAT.
Another issue is the disconnect on what's CVE-worthy between upstream and the distro. This will keep coming up. Maybe a solution for such cases is to assign CVEs against the distro rather than against upstream?This is the only option I can see kernel.org being okay with, but itApparently, they were not OK with it this time. I don't know why not.
What the kernel developers would almost certainly prefer is for the vulnerability to state, “Ubuntu allows local users to mount untrusted filesystems, which allows them to escalate privileges via maliciously crafted filesystem images.” The patch would then be to no longer allow mounting filesystem images without providing root-equivalent credentials, or to require the mount to happen via libguestfs or another FUSE driver. In other words, from an upstream kernel perspective, this is a udisks2 configuration vulnerability, *not* a kernel vulnerability.
doesn't solve the underlying problem. kernel.org's view of what is (and is not) a vulnerability in a filesystem is severely out of touch with what distros actually do, and that includes security-conscious distros like ChromiumOS.If distros could have CVEs for "Linux HFS+ filesystem only as exposed for attack in certain distros, not a vulnerability in upstream Linux", maybe that would be fine.
I hope it would be. I wonder if it would be possible to expose kernel filesystems via user-mode Linux and FUSE.
The linux-cve-announce thread above suggests that upstream may assign CVEs to filesystem implementation issues for corruptions that pass fsck. So theoretically a way for a distro to avoid relying on robustness and security of kernel code beyond what upstream cares about would be to force fsck before mounting a filesystem. However, doing that even for filesystems that claim to be clean (as it would be required for security) is impractical. Also, would the CVEs (and eventual fixes) be against (for) the kernel or fsck then?Why is it impractical? Performance?Yes, I was thinking primarily performance. Then also UI in case fsck finds any issues, but this can be taken care of. Then there are some fsck-only vulnerabilities. Finally, the fsck approach wouldn't solve the secure boot bypass aspect, as fsck could be bypassed by root (and that's how it should remain). OTOH, is there other significant security impact? As I understood, on Ubuntu a privileged logged in user could use this bug to obtain root. However, is that user perhaps privileged enough to also sudo to root by default? So is this only a bypass of the need to re-enter the user's password for sudo? That sudo from user to root is only a nominal protection mechanism anyway, more against inadvertent mistakes than against malicious attacks.
The user does not need sudo privileges.
There are three filesystems that *must* be secure against malicious images to avoid very serious problems: 1. FAT32, as this is used by the UEFI System Partition and so must be mounted by every UEFI-based system. 2. F2FS, as this is used by Android for its writable storage. 3. ext4, as this is used by ChromiumOS for its writable storage. In all three cases, a malicious filesystem image can be used to bypass secure boot. UEFI secure boot is often considered quite weak and I tend to agree with this, but Android and ChromiumOS have very strong verified boot mechanisms and being able to break them is without question worthy of a CVE. ChromeOS Security has confirmed that they do indeed consider "attacker corrupts writable storage to get code execution when the machine reboots" to be in scope for their threat model. The only way I can think of to fix this issue is not technical, but organizational: somehow ensure that the burden of dealing with these bugs falls onto those who care about them, rather than on overworked filesystem maintainers. Is there any way that this could reasonably be done? Could the Android and ChromeOS security teams triage *and fix* bugs involving crafted images *without* the filesystem maintainers having to be involved? Or is the solution for the parties who care about these vulnerabilities to completely reimplement the filesystems in Rust and/or using FUSE?The filesystem maintainers would need to be involved to review and approve/merge patches submitted by those who really care. It is too easy to introduce new bugs when you try and fix a bug without being familiar with the subsystem's codebase.
The only solution to this I can think of is to add a filesystem maintainer whose explicit job is security. That might take a long time due to training requirements, but it’s the only solution I can think of that is sustainable in the long term, short of a rewrite in Rust. In some cases, it might be okay to deliberately crash the kernel (with BUG()) as a downstream-only patch. -- Sincerely, Demi Marie Obenour (she/her/hers)
Attachment:
OpenPGP_0xB288B55FFF9C22C1.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature
Current thread:
- Linux kernel: HFS+ filesystem implementation issues, exposure in distros Solar Designer (Jun 02)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Demi Marie Obenour (Jun 02)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Solar Designer (Jun 05)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Attila Szasz (Jun 06)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Simon McVittie (Jun 07)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Marc Deslauriers (Jun 11)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Simon McVittie (Jun 11)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Marc Deslauriers (Jun 11)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Demi Marie Obenour (Jun 11)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Solar Designer (Jun 05)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Demi Marie Obenour (Jun 02)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Demi Marie Obenour (Jun 11)
- Re: Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Greg KH (Jun 04)
- Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Solar Designer (Jun 05)
- Re: Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Eli Schwartz (Jun 05)
- Re: Re: Linux kernel: HFS+ filesystem implementation issues, exposure in distros Jacob Bachmeyer (Jun 06)