Dear Ben Laurie,
--Thursday, January 22, 2004, 6:53:01 PM, you wrote to linux_4ever@yahoo.com:
BL> This is not a leak - mod_perl is a module that is compiled into Apache, BL> and hence has access to all its resources (including memory). If you BL> want to run untrusted Perl, then don't use mod_perl.
You're right: mod_perl is inside apache memory space and can access any descriptor, so it's impossible to blame apache descriptor is leaked. But you're wrong. mod_perl has access to memory, not perl script. At least, it's possible to store descriptors table and implement check for descriptor in every perl file/socket function inside mod_perl (and mod_php and mod_something) and only allow access to std descriptors and to descriptors open inside same script. The choice is between speed and security.
OK, you _might_ be able to do this (but I'll bet you five beers you'll never make Perl secure enough to avoid circumvention), and I doubt it'd even noticably impact speed. This is not something Apache can fix, though.
Cheers,
Ben.
-- http://www.apache-ssl.org/ben.html http://www.thebunker.net/
"There is no limit to what a man can do or how far he can go if he doesn't mind who gets the credit." - Robert Woodruff