* [uml-devel] T-mode processes
@ 2004-10-03 0:26 Michael Richardson
2004-10-03 10:41 ` Henrik Nordstrom
2004-10-03 15:04 ` BlaisorBlade
0 siblings, 2 replies; 15+ messages in thread
From: Michael Richardson @ 2004-10-03 0:26 UTC (permalink / raw)
To: user-mode-linux-devel
-----BEGIN PGP SIGNED MESSAGE-----
The following seems to get rid of the processes:
ps ax | grep linux | awk '{print $1;}' | while read pid
do
( strace -p $pid ) &
done
So, this tells me that kill-9 can't kill a process which is being
strace'ed. I really think that this is a bug.
- --
] "Elmo went to the wrong fundraiser" - The Simpson | firewalls [
] Michael Richardson, Xelerance Corporation, Ottawa, ON |net architect[
] mcr@xelerance.com http://www.sandelman.ottawa.on.ca/mcr/ |device driver[
] panic("Just another Debian GNU/Linux using, kernel hacking, security guy"); [
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
Comment: Finger me for keys
iQCVAwUBQV9HNIqHRg3pndX9AQEsDgP9EP9IiMZYGGbUBs8Kr77fNDDfnvZyg7tw
CO20Y3kRMT0qZf5QiumuNtF4LZhadtpmw4nMINfmo/DAatrIDDzFPSadJMbxf4s5
K3U/+Ow/Q3LNybAGiKpo/X9LZ7amNrQnqxt4mOI2wHVpbO4Ued1nz8s6ZkJBJMns
FyxO+1u9C+M=
=IfWa
-----END PGP SIGNATURE-----
-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [uml-devel] T-mode processes 2004-10-03 0:26 [uml-devel] T-mode processes Michael Richardson @ 2004-10-03 10:41 ` Henrik Nordstrom 2004-10-03 17:26 ` Michael Richardson 2004-10-03 15:04 ` BlaisorBlade 1 sibling, 1 reply; 15+ messages in thread From: Henrik Nordstrom @ 2004-10-03 10:41 UTC (permalink / raw) To: Michael Richardson; +Cc: user-mode-linux-devel On Sat, 2 Oct 2004, Michael Richardson wrote: > So, this tells me that kill-9 can't kill a process which is being > strace'ed. I really think that this is a bug. It is the way it should be, even if somewhat confusing. Traced processes are special in many ways. Regards Henrik ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-03 10:41 ` Henrik Nordstrom @ 2004-10-03 17:26 ` Michael Richardson 2004-10-03 17:55 ` Henrik Nordstrom 0 siblings, 1 reply; 15+ messages in thread From: Michael Richardson @ 2004-10-03 17:26 UTC (permalink / raw) To: Henrik Nordstrom; +Cc: user-mode-linux-devel -----BEGIN PGP SIGNED MESSAGE----- >>>>> "Henrik" == Henrik Nordstrom <uml@hno.marasystems.com> writes: >> So, this tells me that kill-9 can't kill a process which is being >> strace'ed. I really think that this is a bug. Henrik> It is the way it should be, even if somewhat Henrik> confusing. Traced processes are special in many ways. It may well be, but it isn't acceptable. What would break if kill-9 got rid of processes being PTRACE'ed? If we need to change the behaviour for tracing used in UML (or if SYSEMU can have this behaviour), I would be much happier. Alternatively, if this is a question of writing "killuml" which can get it out of PTRACE state and -9 it, then we should put that into the umltools. - -- ] "Elmo went to the wrong fundraiser" - The Simpson | firewalls [ ] Michael Richardson, Xelerance Corporation, Ottawa, ON |net architect[ ] mcr@xelerance.com http://www.sandelman.ottawa.on.ca/mcr/ |device driver[ ] panic("Just another Debian GNU/Linux using, kernel hacking, security guy"); [ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) Comment: Finger me for keys iQCVAwUBQWA2NIqHRg3pndX9AQGUMgP/ZeOAdqHLOIJ41dr3r+k/Z7syduD8aUjZ Qv16cyi3Q9IC4yOXPx96BeQPfJRsSDDuMP49eCPxdatACooTOM+bmHwjEIijc85v XoFvcXtaQ25OVEqevVLU3dltsULX4yhVkd1BCYIhxyAHiTNawueFW0L0lukfuKJx RqZu8YxhpVk= =Rj37 -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-03 17:26 ` Michael Richardson @ 2004-10-03 17:55 ` Henrik Nordstrom 2004-10-03 18:39 ` Michael Richardson 0 siblings, 1 reply; 15+ messages in thread From: Henrik Nordstrom @ 2004-10-03 17:55 UTC (permalink / raw) To: Michael Richardson; +Cc: user-mode-linux-devel On Sun, 3 Oct 2004, Michael Richardson wrote: > It may well be, but it isn't acceptable. > What would break if kill-9 got rid of processes being PTRACE'ed? This discussion probably is more related to lkml than uml.. For one thing the SIGKILL needs to be notified to and acted upon by the tracing parent process before it is delivered to the killed process. It is possible (and certainly so in case of UML) that the tracing parent wants to do something entirely different when a traced whild receives SIGKILL or other terminal action. The actual question is why a process can be left in traced state without any parent tracing it.. You'll see the same symptoms if you strace a process and then kills strace. My guess is that this is from the basic question on how to determine what to do with the traced process when the tracing parent disappears without telling what the future fate of this process should be.. neither killing or untracing the process is safe options. Any way, sending a SIGCONT to the stopped process gets it going again, or killed in case a SIGKILL or other terminal action is pending. Regards Henrik ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-03 17:55 ` Henrik Nordstrom @ 2004-10-03 18:39 ` Michael Richardson 2004-10-04 18:22 ` BlaisorBlade 0 siblings, 1 reply; 15+ messages in thread From: Michael Richardson @ 2004-10-03 18:39 UTC (permalink / raw) To: Henrik Nordstrom; +Cc: user-mode-linux-devel -----BEGIN PGP SIGNED MESSAGE----- >>>>> "Henrik" == Henrik Nordstrom <uml@hno.marasystems.com> writes: >> It may well be, but it isn't acceptable. What would break if >> kill-9 got rid of processes being PTRACE'ed? Henrik> This discussion probably is more related to lkml than uml.. Sure. Henrik> For one thing the SIGKILL needs to be notified to and acted Henrik> upon by the tracing parent process before it is delivered to Henrik> the killed process. It is possible (and certainly so in case Henrik> of UML) that the tracing parent wants to do something Henrik> entirely different when a traced whild receives SIGKILL or Henrik> other terminal action. I can't see a use for this :-) At least, when the tracing process has gone away, then the SIGKILL should take effect. Henrik> The actual question is why a process can be left in traced Henrik> state without any parent tracing it.. You'll see the same Henrik> symptoms if you strace a process and then kills strace. My Henrik> guess is that this is from the basic question on how to Henrik> determine what to do with the traced process when the Henrik> tracing parent disappears without telling what the future Henrik> fate of this process should be.. neither killing or Henrik> untracing the process is safe options. Henrik> Any way, sending a SIGCONT to the stopped process gets it Henrik> going again, or killed in case a SIGKILL or other terminal Henrik> action is pending. Our test bed produces a dozen of these every night. If someone has an idea on how to get better intel on this, I'm happy to cooperate. - -- ] "Elmo went to the wrong fundraiser" - The Simpson | firewalls [ ] Michael Richardson, Xelerance Corporation, Ottawa, ON |net architect[ ] mcr@xelerance.com http://www.sandelman.ottawa.on.ca/mcr/ |device driver[ ] panic("Just another Debian GNU/Linux using, kernel hacking, security guy"); [ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) Comment: Finger me for keys iQCVAwUBQWBHXoqHRg3pndX9AQEa6QP/TueVomIuseyLAuF9ZyUadncSwrQXIM3H aGBul3l1mmtCr34G0f1vJItvWXUW1MDLZ+hHiFIIh63zkeOWboklKMrRbSPxFC13 Er2peBRxNZ+EGUosEQaMcKktxHn9ktoWifHzcOwvUITTVp4DT+Sp9AuTNObMqTBG ZIEPnFmjPSg= =Vub3 -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-03 18:39 ` Michael Richardson @ 2004-10-04 18:22 ` BlaisorBlade 2004-10-04 22:40 ` Michael Richardson 0 siblings, 1 reply; 15+ messages in thread From: BlaisorBlade @ 2004-10-04 18:22 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Michael Richardson, Henrik Nordstrom On Sunday 03 October 2004 20:39, Michael Richardson wrote: > >>>>> "Henrik" == Henrik Nordstrom <uml@hno.marasystems.com> writes: > > Henrik> Any way, sending a SIGCONT to the stopped process gets it > Henrik> going again, or killed in case a SIGKILL or other terminal > Henrik> action is pending. > > Our test bed produces a dozen of these every night. > If someone has an idea on how to get better intel on this, I'm happy > to cooperate. If you want to change the behaviour on such a point, you should convince top-level hackers on the LKML. Quite frankly, I guess that they will say 'NO'; and they will add "Who ever said that SIGKILL always works?". And if Al Viro reads your post, his answer could be very bad (Al Viro is famous for the way he flames newbie kernel hackers). That said, this just means you need to fix the automated reaper. Changing this in the SKAS patch is not an option (I don't have time to describe this). Even because I think the behaviour is correct, and it's hard to change that. Bye -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-04 18:22 ` BlaisorBlade @ 2004-10-04 22:40 ` Michael Richardson 0 siblings, 0 replies; 15+ messages in thread From: Michael Richardson @ 2004-10-04 22:40 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, Henrik Nordstrom -----BEGIN PGP SIGNED MESSAGE----- >>>>> "BlaisorBlade" == BlaisorBlade <blaisorblade_spam@yahoo.it> writes: BlaisorBlade> you should convince top-level hackers on the BlaisorBlade> LKML. Quite frankly, I guess that they will say 'NO'; BlaisorBlade> and they will add "Who ever said that SIGKILL always BlaisorBlade> works?". And if Al Viro reads your post, his answer BlaisorBlade> could be very bad (Al Viro is famous for the way he BlaisorBlade> flames newbie kernel hackers). How about if I get Dennis Ritchie to post this :-) I've filed numerous bugs in the 1980s against SCO and SunOS about kill-9 failing to clear a process due to device issues, and every single one was acknowledged as correct. (Not that SCO ever fixed many of them, but they didn't disagree) - -- ] "Elmo went to the wrong fundraiser" - The Simpson | firewalls [ ] Michael Richardson, Xelerance Corporation, Ottawa, ON |net architect[ ] mcr@xelerance.com http://www.sandelman.ottawa.on.ca/mcr/ |device driver[ ] panic("Just another Debian GNU/Linux using, kernel hacking, security guy"); [ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) Comment: Finger me for keys iQCVAwUBQWHRUoqHRg3pndX9AQFvUQQAsr0HpRGjXi22D15lG32ly0iij6XBR6oZ qXIHAxckGtdam4hDeXbbYkZFC6Ph4x/ClStl4VWdXmPw6RM0aQzzZQw74j94pd2J RCb8ShufEsLJrqzjFb5Z4kPoh3Vv8/LUFzNQNDg5bLADPiHVzxOfHa+znlSnfYGJ JGkHk6uZy/4= =Yc8N -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-03 0:26 [uml-devel] T-mode processes Michael Richardson 2004-10-03 10:41 ` Henrik Nordstrom @ 2004-10-03 15:04 ` BlaisorBlade 2004-10-03 17:44 ` Michael Richardson 1 sibling, 1 reply; 15+ messages in thread From: BlaisorBlade @ 2004-10-03 15:04 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Michael Richardson On Sunday 03 October 2004 02:26, Michael Richardson wrote: > The following seems to get rid of the processes: > > ps ax | grep linux | awk '{print $1;}' | while read pid > do > ( strace -p $pid ) & > done > > So, this tells me that kill-9 can't kill a process which is being > strace'ed. I really think that this is a bug. Well, you should probably try kill -CONT before doing kill -9 (i.e. -KILL). Actually it makes sense that strace -p *does* kill -CONT. > We also continue to have an issue with the /proc/PID/environ file not being > owned by the process involved. I'm looking at the permission in your listing and in my linux, and I don't see anything strange. Plus, I don't understand what you mean with "a file owned by a certain process". Do you mean "I start the process with uid build and /proc/PID/* has uid root while it should have uid build"? If you mean this, the answer is that you seem to be starting UML with one id and making it run with another UID. At least, I see this permission situation with the X Font Server: root # ls -la /proc/1164/ totale 0 dr-xr-xr-x 3 xfs xfs 0 ott 3 17:03 . dr-xr-xr-x 125 root root 0 ott 3 2004 .. -r--r--r-- 1 root root 0 ott 3 17:03 cmdline lrwxrwxrwx 1 root root 0 ott 3 17:03 cwd -> / -r-------- 1 root root 0 ott 3 17:03 environ lrwxrwxrwx 1 root root 0 ott 3 17:03 exe -> /usr/X11R6/bin/xfs dr-x------ 2 root root 0 ott 3 17:03 fd -r--r--r-- 1 root root 0 ott 3 17:03 maps -rw------- 1 root root 0 ott 3 17:03 mem -r--r--r-- 1 root root 0 ott 3 17:03 mounts lrwxrwxrwx 1 root root 0 ott 3 17:03 root -> / -r--r--r-- 1 root root 0 ott 3 17:03 stat -r--r--r-- 1 root root 0 ott 3 17:03 statm -r--r--r-- 1 root root 0 ott 3 17:03 status > This keeps our automatic cleaner from > getting the processes which are strays. Bye -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-03 15:04 ` BlaisorBlade @ 2004-10-03 17:44 ` Michael Richardson 2004-10-04 18:57 ` BlaisorBlade 0 siblings, 1 reply; 15+ messages in thread From: Michael Richardson @ 2004-10-03 17:44 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel -----BEGIN PGP SIGNED MESSAGE----- >>>>> "BlaisorBlade" == BlaisorBlade <blaisorblade_spam@yahoo.it> writes: >> We also continue to have an issue with the /proc/PID/environ file >> not being owned by the process involved. BlaisorBlade> I'm looking at the permission in your listing and in BlaisorBlade> my linux, and I don't see anything strange. Plus, I BlaisorBlade> don't understand what you mean with "a file owned by a BlaisorBlade> certain process". BlaisorBlade> Do you mean "I start the process with uid build and BlaisorBlade> /proc/PID/* has uid root while it should have uid BlaisorBlade> build"? Yes. BlaisorBlade> If you mean this, the answer is that you seem to be BlaisorBlade> starting UML with one id and making it run with BlaisorBlade> another UID. At least, I see this permission situation BlaisorBlade> with the X Font Server: No, this is not the case. It runs as "build" and that is all. The problem is that the use of mm confuses the proc-permission system into thinking that the process is setuid. I wandered through this last year, when we first noticed this problem. This seems to be due to how mm->dumpable is initalized. (see task_dumpable in fs/proc/base.c) I tried to change it, but I was not successful. I can dig up my attempts, but they are on the list. - -- ] "Elmo went to the wrong fundraiser" - The Simpson | firewalls [ ] Michael Richardson, Xelerance Corporation, Ottawa, ON |net architect[ ] mcr@xelerance.com http://www.sandelman.ottawa.on.ca/mcr/ |device driver[ ] panic("Just another Debian GNU/Linux using, kernel hacking, security guy"); [ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) Comment: Finger me for keys iQCVAwUBQWA6ZoqHRg3pndX9AQHq4wQAicuhD6K2kVa9RAKpeuHxQoqEMaHsmES8 VBvblPm6DWFlo44ti2EFHK2+TxGHNRY3o7I2IAiodcB8L9YVUv2vZT+imnqbhUZ+ OHRv+qyuWPcPL3r8pZt7h4UecNhgHL5r+D7JRoYqia6UefQ9F0SHJMdo3hpgyPQP XY31FzFQcrM= =lEFE -----END PGP SIGNATURE----- ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-03 17:44 ` Michael Richardson @ 2004-10-04 18:57 ` BlaisorBlade 2004-10-04 20:25 ` Henrik Nordstrom 0 siblings, 1 reply; 15+ messages in thread From: BlaisorBlade @ 2004-10-04 18:57 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Michael Richardson On Sunday 03 October 2004 19:44, Michael Richardson wrote: > >>>>> "BlaisorBlade" == BlaisorBlade <blaisorblade_spam@yahoo.it> writes: > >> We also continue to have an issue with the /proc/PID/environ file > >> not being owned by the process involved. > > BlaisorBlade> I'm looking at the permission in your listing and in > BlaisorBlade> my linux, and I don't see anything strange. Plus, I > BlaisorBlade> don't understand what you mean with "a file owned by a > BlaisorBlade> certain process". > > BlaisorBlade> Do you mean "I start the process with uid build and > BlaisorBlade> /proc/PID/* has uid root while it should have uid > BlaisorBlade> build"? > > Yes. > > BlaisorBlade> If you mean this, the answer is that you seem to be > BlaisorBlade> starting UML with one id and making it run with > BlaisorBlade> another UID. At least, I see this permission situation > BlaisorBlade> with the X Font Server: > No, this is not the case. > It runs as "build" and that is all. > The problem is that the use of mm confuses the proc-permission system > into thinking that the process is setuid. I wandered through this last > year, when we first noticed this problem. > This seems to be due to how mm->dumpable is initalized. > (see task_dumpable in fs/proc/base.c) > I tried to change it, but I was not successful. I can dig up my > attempts, but they are on the list. Oh, ok... this can be fixed, I guess, with these infos... I'll come back to this when I have time. Actually, what I should do is to set the "mm->dumpable" flag to 1 inside mm/proc_mm.c (after mm_alloc(), it is 0). The situation is clear. However, to write a good patch, I want to study well the "mm->dumpable" flag use (when it's set, when not...) otherwise I could open a security hole (even because there are people using UML setuid to root, for the mlock() patch). Bye -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-04 18:57 ` BlaisorBlade @ 2004-10-04 20:25 ` Henrik Nordstrom 2004-10-05 18:51 ` BlaisorBlade 0 siblings, 1 reply; 15+ messages in thread From: Henrik Nordstrom @ 2004-10-04 20:25 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, Michael Richardson On Mon, 4 Oct 2004, BlaisorBlade wrote: > Actually, what I should do is to set the "mm->dumpable" flag to 1 inside > mm/proc_mm.c (after mm_alloc(), it is 0). The situation is clear. However, to > write a good patch, I want to study well the "mm->dumpable" flag use (when > it's set, when not...) otherwise I could open a security hole (even because > there are people using UML setuid to root, for the mlock() patch). I don't think it is safe to set dumpable to 1 once it has become 0. If you want to fix this you need to find secure ways to prevent it from becoming 0, or to add another parameter defining "security restricted" processes differently from dumpable. Just some thoughts. Regards Henrik ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-04 20:25 ` Henrik Nordstrom @ 2004-10-05 18:51 ` BlaisorBlade 2004-10-06 0:00 ` Henrik Nordstrom 0 siblings, 1 reply; 15+ messages in thread From: BlaisorBlade @ 2004-10-05 18:51 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Henrik Nordstrom, Michael Richardson On Monday 04 October 2004 22:25, Henrik Nordstrom wrote: > On Mon, 4 Oct 2004, BlaisorBlade wrote: > > Actually, what I should do is to set the "mm->dumpable" flag to 1 inside > > mm/proc_mm.c (after mm_alloc(), it is 0). The situation is clear. > > However, to write a good patch, I want to study well the "mm->dumpable" > > flag use (when it's set, when not...) otherwise I could open a security > > hole (even because there are people using UML setuid to root, for the > > mlock() patch). > > I don't think it is safe to set dumpable to 1 once it has become 0. I think you are overlooking something ... read the original mail. The problem is that for the userspace thread mm->dumpable is always 0, and this happens on every known SKAS3 patch revision. Simply nobody thought about this before now. The field does not "become" 0. allocate_mm, or whatever, allocates the mm_struct, fills it with 0, and then initializes some basic fields. After fork and execve, the dumpable field is adjusted according to the needs (and can become 1). Since opening /proc/mm is more or less like creating a new process (or even like forking), dumpable can become 1, following the general Linux rules. Actually, the current fork() code simply copies the dumpable flag with all the rest, and does not change it; this also makes a lot of sense, and I guess that open_proc_mm will just copy the current->mm->dumpable setting to the new mm. However, that's a problem if a process using /proc/mm changes its setting of mm->dumpable (which happens on uid changes and with prctl). Does in that case the uid of the ptraced process change? If needed, it could be reloaded on the new mm when using PROC_SWITCH_MM, but that is strange. Also, I don't understand why prctl() does not do any security check. And anyway, I'm not rushing on this... I want to study the mainstream code and the ptrace exploit patch, before coding anything here. > If you want to fix this you need to find secure ways to prevent it from > becoming 0, or to add another parameter defining "security restricted" > processes differently from dumpable. Hmm, Alan Cox has been writing some changes to the dumpable flag (a sysctl option, I think). Bye -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-05 18:51 ` BlaisorBlade @ 2004-10-06 0:00 ` Henrik Nordstrom 2004-10-06 19:45 ` BlaisorBlade 2004-10-14 16:46 ` BlaisorBlade 0 siblings, 2 replies; 15+ messages in thread From: Henrik Nordstrom @ 2004-10-06 0:00 UTC (permalink / raw) To: BlaisorBlade; +Cc: user-mode-linux-devel, Henrik Nordstrom, Michael Richardson On Tue, 5 Oct 2004, BlaisorBlade wrote: > Since opening /proc/mm is more or less like creating a new process (or even > like forking), dumpable can become 1, following the general Linux rules. only if it was 1 for the process I think. If it was 0 for the process then there is a obvious risk that sensitive pages will get migrated to the new mm. creating a new memory map within the process is not really the same as exec if I understand SKAS correctly. The two memory maps may be set to share a significant portion of pages including data pages, while on exec you are guaranteed the two memory maps are fully separate unless they cooperate via mmap or shm which both have access to. If there is need to then it may be possible to add an argument indicating that the mm should be dumpable even if sanity checks says it should not, but I don't see very much need for this. > However, that's a problem if a process using /proc/mm changes its > setting of mm->dumpable (which happens on uid changes and with prctl). > Does in that case the uid of the ptraced process change? In such case the dumpable attribute needs to be cleared on all mm:s of that process. There is no easy way telling which memory maps may contain restricted pages on such change of the process status. Regarding prctl, the running code can be assumed trusted here. The dumpable attribute is about preventing sensitive data from leaking outside of the process. If you circumvent this by setting dumpable to 1 you are assumed to know what you (and any libraries you use) do and assume all responsibility. It is only the running process code itself which can do this, the user can not force it externally from outside of the process Regards Henrik ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-06 0:00 ` Henrik Nordstrom @ 2004-10-06 19:45 ` BlaisorBlade 2004-10-14 16:46 ` BlaisorBlade 1 sibling, 0 replies; 15+ messages in thread From: BlaisorBlade @ 2004-10-06 19:45 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Henrik Nordstrom, Michael Richardson On Wednesday 06 October 2004 02:00, Henrik Nordstrom wrote: > On Tue, 5 Oct 2004, BlaisorBlade wrote: > > Since opening /proc/mm is more or less like creating a new process (or > > even like forking), dumpable can become 1, following the general Linux > > rules. > > only if it was 1 for the process I think. If it was 0 for the process then > there is a obvious risk that sensitive pages will get migrated to the new > mm. Yes, I agree on this (even if I had not the "shared pages" problem in my picture of the problem). > creating a new memory map within the process is not really the same as > exec if I understand SKAS correctly. The two memory maps may be set to > share a significant portion of pages including data pages, while on exec > you are guaranteed the two memory maps are fully separate unless they > cooperate via mmap or shm which both have access to. In fact I was going to compare it to fork, not to exec, because what we do is more similar to creating a new mm and a new process, instead of replacing a process with another... and plus there is a lot of shared-memory, which is a problem. > If there is need to then it may be possible to add an argument indicating > that the mm should be dumpable even if sanity checks says it should not, > but I don't see very much need for this. I don't want to skip the sanity checks! They are currently skipped and dumpable is always 0. Stop. And the fact that we are safe (i.e. that dumpable is by default 0) seems to just be by a lucky accident, actually. Oh well. > > However, that's a problem if a process using /proc/mm changes its > > setting of mm->dumpable (which happens on uid changes and with prctl). > > Does in that case the uid of the ptraced process change? > In such case the dumpable attribute needs to be cleared on all mm:s of > that process. There is no easy way telling which memory maps may contain > restricted pages on such change of the process status. Ok, in this case, this should be doable on PTRACE_SWITCH_MM. Anyway, the dumpable flag can become 1 again only with prctl(), so in that case things should be safe (or it is the application's fault). > Regarding prctl, the running code can be assumed trusted here. The > dumpable attribute is about preventing sensitive data from leaking outside > of the process. If you circumvent this by setting dumpable to 1 you are > assumed to know what you (and any libraries you use) do and assume all > responsibility. It is only the running process code itself which can do > this, the user can not force it externally from outside of the process Ok, this is fine and clear. Btw: I've also found the ptrace root exploit for 2.4.20. And I'm understanding the old problem. Bye -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [uml-devel] T-mode processes 2004-10-06 0:00 ` Henrik Nordstrom 2004-10-06 19:45 ` BlaisorBlade @ 2004-10-14 16:46 ` BlaisorBlade 1 sibling, 0 replies; 15+ messages in thread From: BlaisorBlade @ 2004-10-14 16:46 UTC (permalink / raw) To: user-mode-linux-devel; +Cc: Henrik Nordstrom, Michael Richardson On Wednesday 06 October 2004 02:00, Henrik Nordstrom wrote: > On Tue, 5 Oct 2004, BlaisorBlade wrote: > > Since opening /proc/mm is more or less like creating a new process (or > > even like forking), dumpable can become 1, following the general Linux > > rules. > > only if it was 1 for the process I think. These are the general Linux rules applied on fork. > If it was 0 for the process then > there is a obvious risk that sensitive pages will get migrated to the new > mm. > creating a new memory map within the process is not really the same as > exec if I understand SKAS correctly. The two memory maps may be set to > share a significant portion of pages including data pages, > while on exec > you are guaranteed the two memory maps are fully separate unless they > cooperate via mmap or shm which both have access to. Hmmm - there is no difference between the two situations. We can expect UML creating shared mappings, but that is not entirely different from when two processes share memory via mmap. In both cases, they share data (even sensitive). Or better, since the file is unlinked, it's like when a parent and a child share data through mmap()'ing the same file descriptor. > If there is need to then it may be possible to add an argument indicating > that the mm should be dumpable even if sanity checks says it should not, > but I don't see very much need for this. No will to implement anything like this. > > However, that's a problem if a process using /proc/mm changes its > > setting of mm->dumpable (which happens on uid changes and with prctl). > > Does in that case the uid of the ptraced process change? > > In such case the dumpable attribute needs to be cleared on all mm:s of > that process. There is no easy way telling which memory maps may contain > restricted pages on such change of the process status. Yes, this is what I've implemented. I'm sending the patch for this just now (separately because it's via patch-scripts). Bye -- Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2004-10-14 18:56 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-10-03 0:26 [uml-devel] T-mode processes Michael Richardson 2004-10-03 10:41 ` Henrik Nordstrom 2004-10-03 17:26 ` Michael Richardson 2004-10-03 17:55 ` Henrik Nordstrom 2004-10-03 18:39 ` Michael Richardson 2004-10-04 18:22 ` BlaisorBlade 2004-10-04 22:40 ` Michael Richardson 2004-10-03 15:04 ` BlaisorBlade 2004-10-03 17:44 ` Michael Richardson 2004-10-04 18:57 ` BlaisorBlade 2004-10-04 20:25 ` Henrik Nordstrom 2004-10-05 18:51 ` BlaisorBlade 2004-10-06 0:00 ` Henrik Nordstrom 2004-10-06 19:45 ` BlaisorBlade 2004-10-14 16:46 ` BlaisorBlade
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox