From: Eric Biggers <ebiggers@kernel.org>
To: Lizhi Xu <lizhi.xu@windriver.com>
Cc: syzbot+340581ba9dceb7e06fb3@syzkaller.appspotmail.com,
coreteam@netfilter.org, davem@davemloft.net, fw@strlen.de,
jaegeuk@kernel.org, kadlec@netfilter.org, kuba@kernel.org,
linux-fscrypt@vger.kernel.org, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, netfilter-devel@vger.kernel.org,
pablo@netfilter.org, syzkaller-bugs@googlegroups.com,
tytso@mit.edu
Subject: Re: [PATCH] ext4: add casefolded file check
Date: Thu, 30 May 2024 18:05:13 -0700 [thread overview]
Message-ID: <20240531010513.GA9629@sol.localdomain> (raw)
In-Reply-To: <20240530074150.4192102-1-lizhi.xu@windriver.com>
On Thu, May 30, 2024 at 03:41:50PM +0800, 'Lizhi Xu' via syzkaller-bugs wrote:
> The file name that needs to calculate the siphash must have both flags casefolded
> and dir at the same time, so before calculating it, confirm that the flag meets
> the conditions.
>
> Reported-by: syzbot+340581ba9dceb7e06fb3@syzkaller.appspotmail.com
> Signed-off-by: Lizhi Xu <lizhi.xu@windriver.com>
> ---
> fs/ext4/hash.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/fs/ext4/hash.c b/fs/ext4/hash.c
> index deabe29da7fb..c8840cfc01dd 100644
> --- a/fs/ext4/hash.c
> +++ b/fs/ext4/hash.c
> @@ -265,6 +265,10 @@ static int __ext4fs_dirhash(const struct inode *dir, const char *name, int len,
> __u64 combined_hash;
>
> if (fscrypt_has_encryption_key(dir)) {
> + if (!IS_CASEFOLDED(dir)) {
> + ext4_warning_inode(dir, "Siphash requires Casefolded file");
> + return -2;
> + }
> combined_hash = fscrypt_fname_siphash(dir, &qname);
> } else {
> ext4_warning_inode(dir, "Siphash requires key");
First, this needs to be sent to the ext4 mailing list (and not to irrelevant
mailing lists such as netdev). Please use ./scripts/get_maintainer.pl, as is
recommended by Documentation/process/submitting-patches.rst.
Second, ext4 already checks for the directory being casefolded before allowing
siphash. This is done by dx_probe(). Evidently syzbot found some way around
that, so what needs to be done is figure out why that happened and what is the
best fix to prevent it. This is not necessarily the patch you've proposed, as
the real issue might actually be a missing check at some earlier time like when
reading the inode from disk or when mounting the filesystem.
- Eric
next prev parent reply other threads:[~2024-05-31 1:05 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-29 20:41 [syzbot] [fscrypt?] WARNING in fscrypt_fname_siphash syzbot
2024-05-30 7:41 ` [PATCH] ext4: add casefolded file check Lizhi Xu
2024-05-31 1:05 ` Eric Biggers [this message]
2024-05-31 1:47 ` Lizhi Xu
2024-05-31 2:20 ` Eric Biggers
2024-05-31 3:07 ` [PATCH V2] ext4: add casefolded feature check before setup encrypted info Lizhi Xu
2024-05-31 3:11 ` Eric Biggers
2024-05-31 8:58 ` kernel test robot
2024-05-31 9:06 ` [PATCH V4] ext4: check hash version and filesystem casefolded consistent Lizhi Xu
2024-05-31 18:55 ` Eric Biggers
2024-06-01 11:37 ` [PATCH V5] " Lizhi Xu
2024-06-03 14:50 ` Gabriel Krisman Bertazi
2024-06-04 1:17 ` Lizhi Xu
2024-06-04 19:06 ` Gabriel Krisman Bertazi
2024-06-05 1:16 ` Lizhi Xu
2024-06-05 1:23 ` [PATCH V6] fs/ext4: Filesystem without casefold feature cannot be mounted with spihash Lizhi Xu
2024-08-22 15:00 ` Theodore Ts'o
2024-08-27 20:16 ` [PATCH] ext4: Fix error message when rejecting the default hash Gabriel Krisman Bertazi
2024-09-05 14:53 ` Theodore Ts'o
2024-06-06 6:27 ` [PATCH V5] ext4: check hash version and filesystem casefolded consistent Eric Biggers
2024-05-31 3:30 ` [PATCH V2] ext4: add casefolded feature check before setup encrypted info Lizhi Xu
2024-05-31 3:34 ` Eric Biggers
2024-05-31 8:56 ` [PATCH V3] ext4: check hash version and filesystem casefolded consistent Lizhi Xu
2024-06-04 9:27 ` Dan Carpenter
2024-06-04 9:36 ` Lizhi Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240531010513.GA9629@sol.localdomain \
--to=ebiggers@kernel.org \
--cc=coreteam@netfilter.org \
--cc=davem@davemloft.net \
--cc=fw@strlen.de \
--cc=jaegeuk@kernel.org \
--cc=kadlec@netfilter.org \
--cc=kuba@kernel.org \
--cc=linux-fscrypt@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizhi.xu@windriver.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
--cc=syzbot+340581ba9dceb7e06fb3@syzkaller.appspotmail.com \
--cc=syzkaller-bugs@googlegroups.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).