From: Herbert Poetzl <herbert@13thfloor.at>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org
Subject: procfs permissions on 2.6.x
Date: Sat, 3 Jul 2004 22:22:42 +0200 [thread overview]
Message-ID: <20040703202242.GA31656@MAIL.13thfloor.at> (raw)
Hi Andrew!
stumbled over the following detail ...
usually when somebody tries to modify an inode,
notify_change() calls inode_change_ok() to verify
the user's permissions ... now it seems that
somewhere around 2.5.41, a patch similar to this
one was included into the mainline, and remained
almost unmodified ...
http://www.uwsg.iu.edu/hypermail/linux/kernel/0210.1/1002.html
this probably unintentionally circumvents the
inode_change_ok() check, so that now any user
can modify inodes of the procfs.
example:
$ chmod a-rwx /proc/cmdline
the following patch hopefully fixes this, so
please consider for inclusion ...
TIA,
Herbert
diff -NurpP --minimal linux-2.6.7/fs/proc/generic.c linux-2.6.7-fix/fs/proc/generic.c
--- linux-2.6.7/fs/proc/generic.c 2004-06-16 07:20:26.000000000 +0200
+++ linux-2.6.7-fix/fs/proc/generic.c 2004-07-03 21:50:30.000000000 +0200
@@ -241,8 +241,20 @@ static int proc_notify_change(struct den
return error;
}
+static int proc_setattr(struct dentry *dentry, struct iattr *iattr)
+{
+ struct inode *inode = dentry->d_inode;
+ int error;
+
+ error = inode_change_ok(inode, iattr);
+ if (error)
+ return error;
+ error = proc_notify_change(dentry, iattr);
+ return error;
+}
+
static struct inode_operations proc_file_inode_operations = {
- .setattr = proc_notify_change,
+ .setattr = proc_setattr,
};
/*
@@ -472,7 +484,7 @@ static struct file_operations proc_dir_o
*/
static struct inode_operations proc_dir_inode_operations = {
.lookup = proc_lookup,
- .setattr = proc_notify_change,
+ .setattr = proc_setattr,
};
static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp)
next reply other threads:[~2004-07-03 20:22 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-03 20:22 Herbert Poetzl [this message]
2004-07-03 20:25 ` Christoph Hellwig
2004-07-03 20:35 ` Andrew Morton
2004-07-03 21:04 ` Christoph Hellwig
2004-07-03 21:35 ` Andrew Morton
2004-07-04 21:35 ` viro
2004-07-04 21:55 ` Andrew Morton
2004-07-04 22:13 ` viro
2004-07-04 22:43 ` Andrew Morton
2004-07-06 3:31 ` Andy Lutomirski
2004-07-05 1:50 ` Clemens Schwaighofer
2004-07-05 1:55 ` viro
2004-07-05 8:05 ` Duncan Sands
2004-07-05 8:14 ` Clemens Schwaighofer
2004-07-04 1:27 ` bert hubert
[not found] <2dZjc-7BP-15@gated-at.bofh.it>
[not found] ` <2dZjf-7BP-27@gated-at.bofh.it>
[not found] ` <2dZsQ-7GF-23@gated-at.bofh.it>
[not found] ` <2dZVV-867-33@gated-at.bofh.it>
[not found] ` <2e0oZ-8lm-35@gated-at.bofh.it>
[not found] ` <2emSs-6R8-17@gated-at.bofh.it>
[not found] ` <2enbS-72q-19@gated-at.bofh.it>
[not found] ` <2env9-7li-9@gated-at.bofh.it>
2004-07-04 22:25 ` Andi Kleen
2004-07-04 22:37 ` FabF
2004-07-04 23:30 ` Paul Jackson
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=20040703202242.GA31656@MAIL.13thfloor.at \
--to=herbert@13thfloor.at \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
/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
Powered by JetHome