<<< Date Index >>>     <<< Thread Index >>>

Re: GNU tar and the setuid bit



On Friday 05 Aug 2005 12:52 am, Imran Ghory wrote:
> If running as the root user tar restores the original permissions to
> extracted files, this includes the setuid bit. No warning is given to
> the user that this has happened.
>
> The default behaviour of tar under root is not to change ownership of
> the file to root. However owner information is extracted from the tar
> file, so a trivialy modified tar file can ensure the owner of the
> extracted files is the root user.
>
> This allows for the creation of arbitary setuid executable owned by
> the root user if the root user extracts the files from a malliciously
> crafted tar file.

With GNU tar (which you seem to be referring to), using --no-same-permissions 
when extracting clears all of the setuid, setgid and sticky bits in addition 
to subtracting the umask (undocumented behaviour, but logical enough). It's 
advisable to use this along with -o when extracting random archives as root. 
(Although as I've just noticed, -o alone will turn any setuid executable into 
a setuid-root executable - now that *is* a bug!) Or of course, you could 
extract them as someone else ;)

It looks as if they're planning to make --no-same-permissions the default for 
root in future, but 'alias tar="tar --no-same-permissions"' does the trick 
for now, if you don't mind breaking the old-style option syntax (-p reenables 
the full permissions from the archive, of course).

(By the way, -o is broken in version 1.14 at least, but --no-same-owner 
works.)