Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 09 Oct 2020 13:35:57 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 250222] Multiple ways for a kernel DoS (ufs_lookup_ino)
Message-ID:  <bug-250222-227@https.bugs.freebsd.org/bugzilla/>

index | next in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=250222

            Bug ID: 250222
           Summary: Multiple ways for a kernel DoS (ufs_lookup_ino)
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: emaste@freebsd.org

Reported by: Christopher Krah of Fraunhofer FKIE
Reporter's ID: FS-15-UFS-4

*Description of the vulnerability*: Mounting a specially crafted UFS filesystem
may lead to a kernel Denial of Service that was already anticipated in the
code.
This is due to the following code in function ufs_dirbad in line 762 in
/usr/src/sys/ufs/ufs/ufs_lookup.c:


{
struct mount *mp;

mp = ITOV(ip)->v_mount;
if ((mp->mnt_flag & MNT_RDONLY) == 0)
    panic("ufs_dirbad: %s: bad dir ino %ju at offset %ld: %s",
mp->mnt_stat.f_mntonname, (uintmax_t)ip->i_number, (long)offset, how);
else
    (void)printf("%s: bad dir ino %ju at offset %ld: %s\n",
mp->mnt_stat.f_mntonname, (uintmax_t)ip->i_number, (long)offset, how);
}


So far we were able to trigger this panic via 5 different system calls and
hence different/multiple unique back traces as of time of writing this email:

* sys_mkdir
* sys_openat
* sys_fsstatat
* sys_access
* sys_mknodat

This shows that the UFS fs is especially vulnerable to this type of kernel DoS.
If additional different ways to trigger this behavior appear they will be added
to the same shared folder referenced here at [1].


*Affected versions*: tested with FreeBSD 12.0-RELEASE AMD64. 

*Workaround*: None

---
FS image to be attached.

-- 
You are receiving this mail because:
You are the assignee for the bug.

help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-250222-227>