Proposing to host system-auth-agent in fdo

Alex Perez aperez at student.santarosa.edu
Wed Oct 13 21:14:58 EEST 2004


Carlos Garnacho wrote:

>On Wed, 2004-10-13 at 10:17 +0200, Alexander Larsson wrote:
>  
>
>>On Tue, 2004-10-12 at 19:05 +0200, Carlos Garnacho wrote:
>>
>>    
>>
>>>In order to avoid malicious use of the program/API, there's a list of
>>>applications that are allowed to use the program, this list can be only
>>>handled by the root user, and the package already provides 2 commands to
>>>install/uninstall applications in that list (ideally, this will be
>>>handled transparently, during make install, rpm -i, dpkg -i, ...), so
>>>any application using this program will be there under the root user
>>>consent.
>>>      
>>>
>>I'd like to point out that the way this is handled:
>>
>>static char*
>>get_calling_app (void)
>>{
>>  pid_t ppid = 0;
>>  char  path[PATH_MAX], *link;
>>  int   length;
>>
>>  ppid = getppid ();
>>  sprintf (path, "/proc/%d/exe", ppid);
>>  link = (char *) malloc (sizeof (char) * PATH_MAX);
>>  
>>  length = readlink (path, link, PATH_MAX);
>>
>>Isn't very secure. Basically, to overcome it you only need to do:
>>LD_PRELOAD=/tmp/evil_code.so /usr/bin/trusted_binary
>>    
>>
>
>While it's true that the program should unset those vars before exec'ing
>the called application, the loader ignores any LD_PRELOAD or
>LD_LIBRARY_PATH envvar if the running program is setuid/setgid, so it's
>not an inmediate problem
>
>  
>
>>Furthermore, the /proc use is linux-only.
>>    
>>
>
>I've found the equivalence in FreeBSD 5.3Beta1, and I'm sure that
>Solaris gets this info from /proc too, it was created for things like
>this
>
>This /proc use might be a problem when/if there are python/perl/...
>bindings, because that symlink would point to the interpreter, but I'm
>sure that it can be fixed with a plugin system (or simply custom
>functions) to parse /proc/$pid/cmdline. But anyway, I think that it's
>the most secure way to know that the app is authorized to use the agent
>
>	Carlos
>
>  
>
>>=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>> Alexander Larsson                                            Red Hat, Inc 
>>                   alexl at redhat.com    alla at lysator.liu.se 
>>He's a shy dishevelled romance novelist in a wheelchair. She's a vivacious 
>>gold-digging femme fatale who dreams of becoming Elvis. They fight crime! 
>>    
>>
Just to throw a huge wrench into your perfect little plan, FreeBSD 
6-CURRENT has deprecated /proc. You can simply not assume every unix has 
a /proc.



More information about the xdg mailing list