Message ID | tencent_B730B2241BE4152C9D6AA80789EEE1DEE30A@qq.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [Bug,Report] OOB-read BUG in HFS+ filesystem | expand |
On Mon, Apr 14, 2025 at 09:45:25PM +0800, now4yreal wrote: > Dear Linux Security Maintainers, > I would like to report a OOB-read vulnerability in the HFS+ file > system, which I discovered using our in-house developed kernel fuzzer, > Symsyz. Bug reports from non-official syzbot instances are generally not accepted. hfs and hfsplus are orphaned filesystems since at least 2014. Bug reports for such filesystems won't receive much attention from the core maintainers. I'm very very close to putting them on the chopping block as they're slowly turning into pointless burdens.
On Mon, Apr 14, 2025 at 04:18:27PM +0200, Christian Brauner wrote: > On Mon, Apr 14, 2025 at 09:45:25PM +0800, now4yreal wrote: > > Dear Linux Security Maintainers, > > I would like to report a OOB-read vulnerability in the HFS+ file > > system, which I discovered using our in-house developed kernel fuzzer, > > Symsyz. > > Bug reports from non-official syzbot instances are generally not > accepted. > > hfs and hfsplus are orphaned filesystems since at least 2014. Bug > reports for such filesystems won't receive much attention from the core > maintainers. > > I'm very very close to putting them on the chopping block as they're > slowly turning into pointless burdens. I've tried asking some people who are long term Apple & Linux people, but haven't been able to find anyone interested in becoming maintainer. Let's drop both hfs & hfsplus. Ten years of being unmaintained is long enough.
On Mon, Apr 14, 2025 at 03:21:56PM +0100, Matthew Wilcox wrote: > On Mon, Apr 14, 2025 at 04:18:27PM +0200, Christian Brauner wrote: > > On Mon, Apr 14, 2025 at 09:45:25PM +0800, now4yreal wrote: > > > Dear Linux Security Maintainers, > > > I would like to report a OOB-read vulnerability in the HFS+ file > > > system, which I discovered using our in-house developed kernel fuzzer, > > > Symsyz. > > > > Bug reports from non-official syzbot instances are generally not > > accepted. > > > > hfs and hfsplus are orphaned filesystems since at least 2014. Bug > > reports for such filesystems won't receive much attention from the core > > maintainers. > > > > I'm very very close to putting them on the chopping block as they're > > slowly turning into pointless burdens. > > I've tried asking some people who are long term Apple & Linux people, > but haven't been able to find anyone interested in becoming maintainer. > Let's drop both hfs & hfsplus. Ten years of being unmaintained is > long enough. Agreed. If needed there are FUSE implementations to access .dmg files with HFS/HFS+ or other standalone tools. https://github.com/0x09/hfsfuse https://github.com/darlinghq/darling-dmg
On Mon, Apr 14, 2025 at 06:23:28PM +0200, David Sterba wrote: > On Mon, Apr 14, 2025 at 03:21:56PM +0100, Matthew Wilcox wrote: > > On Mon, Apr 14, 2025 at 04:18:27PM +0200, Christian Brauner wrote: > > > On Mon, Apr 14, 2025 at 09:45:25PM +0800, now4yreal wrote: > > > > Dear Linux Security Maintainers, > > > > I would like to report a OOB-read vulnerability in the HFS+ file > > > > system, which I discovered using our in-house developed kernel fuzzer, > > > > Symsyz. > > > > > > Bug reports from non-official syzbot instances are generally not > > > accepted. > > > > > > hfs and hfsplus are orphaned filesystems since at least 2014. Bug > > > reports for such filesystems won't receive much attention from the core > > > maintainers. > > > > > > I'm very very close to putting them on the chopping block as they're > > > slowly turning into pointless burdens. > > > > I've tried asking some people who are long term Apple & Linux people, > > but haven't been able to find anyone interested in becoming maintainer. > > Let's drop both hfs & hfsplus. Ten years of being unmaintained is > > long enough. > > Agreed. If needed there are FUSE implementations to access .dmg files > with HFS/HFS+ or other standalone tools. > > https://github.com/0x09/hfsfuse > https://github.com/darlinghq/darling-dmg Ok, I'm open to trying. I'm adding a deprecation message when initating a new hfs{plus} context logged to dmesg and then we can try and remove it by the end of the year.
On 15.04.25 09:52, Christian Brauner wrote: > On Mon, Apr 14, 2025 at 06:23:28PM +0200, David Sterba wrote: >> On Mon, Apr 14, 2025 at 03:21:56PM +0100, Matthew Wilcox wrote: >>> On Mon, Apr 14, 2025 at 04:18:27PM +0200, Christian Brauner wrote: >>>> On Mon, Apr 14, 2025 at 09:45:25PM +0800, now4yreal wrote: >>>>> Dear Linux Security Maintainers, >>>>> I would like to report a OOB-read vulnerability in the HFS+ file >>>>> system, which I discovered using our in-house developed kernel fuzzer, >>>>> Symsyz. >>>> >>>> Bug reports from non-official syzbot instances are generally not >>>> accepted. >>>> >>>> hfs and hfsplus are orphaned filesystems since at least 2014. Bug >>>> reports for such filesystems won't receive much attention from the core >>>> maintainers. >>>> >>>> I'm very very close to putting them on the chopping block as they're >>>> slowly turning into pointless burdens. >>> >>> I've tried asking some people who are long term Apple & Linux people, >>> but haven't been able to find anyone interested in becoming maintainer. >>> Let's drop both hfs & hfsplus. Ten years of being unmaintained is >>> long enough. >> >> Agreed. If needed there are FUSE implementations to access .dmg files >> with HFS/HFS+ or other standalone tools. >> >> https://github.com/0x09/hfsfuse >> https://github.com/darlinghq/darling-dmg > > Ok, I'm open to trying. I'm adding a deprecation message when initating > a new hfs{plus} context logged to dmesg and then we can try and remove > it by the end of the year. > > Just a word of caution though, (at least Intel) Macs have their EFI ESP partition on HFS+ instead of FAT. I don't own an Apple Silicon Mac so I can't check if it's there as well.
On Tue, Apr 15, 2025 at 09:16:58AM +0000, Johannes Thumshirn wrote: > On 15.04.25 09:52, Christian Brauner wrote: > > On Mon, Apr 14, 2025 at 06:23:28PM +0200, David Sterba wrote: > >> On Mon, Apr 14, 2025 at 03:21:56PM +0100, Matthew Wilcox wrote: > >>> On Mon, Apr 14, 2025 at 04:18:27PM +0200, Christian Brauner wrote: > >>>> On Mon, Apr 14, 2025 at 09:45:25PM +0800, now4yreal wrote: > >>>>> Dear Linux Security Maintainers, > >>>>> I would like to report a OOB-read vulnerability in the HFS+ file > >>>>> system, which I discovered using our in-house developed kernel fuzzer, > >>>>> Symsyz. > >>>> > >>>> Bug reports from non-official syzbot instances are generally not > >>>> accepted. > >>>> > >>>> hfs and hfsplus are orphaned filesystems since at least 2014. Bug > >>>> reports for such filesystems won't receive much attention from the core > >>>> maintainers. > >>>> > >>>> I'm very very close to putting them on the chopping block as they're > >>>> slowly turning into pointless burdens. > >>> > >>> I've tried asking some people who are long term Apple & Linux people, > >>> but haven't been able to find anyone interested in becoming maintainer. > >>> Let's drop both hfs & hfsplus. Ten years of being unmaintained is > >>> long enough. > >> > >> Agreed. If needed there are FUSE implementations to access .dmg files > >> with HFS/HFS+ or other standalone tools. > >> > >> https://github.com/0x09/hfsfuse > >> https://github.com/darlinghq/darling-dmg > > > > Ok, I'm open to trying. I'm adding a deprecation message when initating > > a new hfs{plus} context logged to dmesg and then we can try and remove > > it by the end of the year. > > > > > > Just a word of caution though, (at least Intel) Macs have their EFI ESP > partition on HFS+ instead of FAT. I don't own an Apple Silicon Mac so I > can't check if it's there as well. Yeah, someone mentioned that. Well, then we hopefully have someone stepping up to for maintainership.
On 15.04.25 11:31, Christian Brauner wrote: > On Tue, Apr 15, 2025 at 09:16:58AM +0000, Johannes Thumshirn wrote: >> On 15.04.25 09:52, Christian Brauner wrote: >>> Ok, I'm open to trying. I'm adding a deprecation message when initating >>> a new hfs{plus} context logged to dmesg and then we can try and remove >>> it by the end of the year. >>> >>> >> >> Just a word of caution though, (at least Intel) Macs have their EFI ESP >> partition on HFS+ instead of FAT. I don't own an Apple Silicon Mac so I >> can't check if it's there as well. > > Yeah, someone mentioned that. Well, then we hopefully have someone > stepping up to for maintainership. > I hope you aren't considering me here :D. I'm lacking the time to volunteer as a Maintainer but I can offer to look into some fixes.
On Tue, Apr 15, 2025 at 10:23:27AM +0000, Johannes Thumshirn wrote: > On 15.04.25 11:31, Christian Brauner wrote: > > On Tue, Apr 15, 2025 at 09:16:58AM +0000, Johannes Thumshirn wrote: > >> On 15.04.25 09:52, Christian Brauner wrote: > >>> Ok, I'm open to trying. I'm adding a deprecation message when initating > >>> a new hfs{plus} context logged to dmesg and then we can try and remove > >>> it by the end of the year. > >>> > >>> > >> > >> Just a word of caution though, (at least Intel) Macs have their EFI ESP > >> partition on HFS+ instead of FAT. I don't own an Apple Silicon Mac so I > >> can't check if it's there as well. > > > > Yeah, someone mentioned that. Well, then we hopefully have someone > > stepping up to for maintainership. > > > > I hope you aren't considering me here :D. I'm lacking the time to > volunteer as a Maintainer but I can offer to look into some fixes. No no, I'm aware. I'm just saying that if this is really crucial this Mac use-case then we better find someone to take care of it properly.
diff --git a/fs/hfsplus/bnode.c b/fs/hfsplus/bnode.c index 87974d5e6791..5bd31ebe648b 100644 --- a/fs/hfsplus/bnode.c +++ b/fs/hfsplus/bnode.c @@ -22,10 +22,14 @@ void hfs_bnode_read(struct hfs_bnode *node, void *buf, int off, int len) { struct page **pagep; - int l; + int l, pagenum; off += node->page_offset; - pagep = node->page + (off >> PAGE_SHIFT); + pagenum = off >> PAGE_SHIFT + if (pagenum >= node->tree->pages_per_bnode) + break; + + pagep = node->page + pagenum; off &= ~PAGE_MASK; l = min_t(int, len, PAGE_SIZE - off);