HomeFreeBSD

fusefs: handle evil servers that return illegal inode numbers

Description

fusefs: handle evil servers that return illegal inode numbers

  • If during FUSE_CREATE, FUSE_MKDIR, etc the server returns the same inode number for the new file as for its parent directory, reject it. Previously this would triggers a recurse-on-non-recursive lock panic.
  • If during FUSE_LINK the server returns a different inode number for the new name as for the old one, reject it. Obviously, that can't be a hard link.
  • If during FUSE_LOOKUP the server returns the same inode number for the new file as for its parent directory, reject it. Nothing good can come of this.

PR: 263662
Reported by: Robert Morris <rtm@lcs.mit.edu>
Reviewed by: pfg
Differential Revision: https://reviews.freebsd.org/D35128

(cherry picked from commit 0bef4927ea858bb18b6f679bc0a36cff264dc842)

Details

Provenance
asomersAuthored on May 4 2022, 11:36 PM
Reviewer
pfg
Differential Revision
D35128: fusefs: handle evil servers that return illegal inode numbers
Parents
rG14cd9da9db03: fusefs: make the mknod.cc tests a bit more general.
Branches
Unknown
Tags
Unknown