Re: R: Linux kernel source archive vulnerable

Kyle Moffett
2006-09-13T06:17:36Z

On Sep 13, 2006, at 01:34:01, David Wagner wrote:
> Willy Tarreau wrote:
>> The initial reason is that Linus now uses the "git-tar-tree" command
>> which creates the full tar archive from the tree. It does not use
>> tar,
>> it know how to produce the tar format itself. The command has to set
>> permissions on the files, and by default, it sets full permissions to
>> the files.
>
> Ahh, thanks for the explanation. That's helpful.
>
> So it sounds like git-tar-tree has a bug; its default isn't setting
> meaningful permissions on the files that it puts into the tar archive.
> I hope the maintainers of git-tar-tree will consider fixing this bug.

Let me reiterate: This is not a bug!

Here are a few facts:

1) When I run "touch foo", the "touch" command uses permissions
0666, which are modified by my umask before hitting the FS. (same
behavior for all UIDs)

2) When I run "gcc -c foo.c -o foo.o", the "gcc" command uses
permissions 0666, which are modified by my umask before hitting the
FS. (same behavior for all UIDs)

3) When I run "vim foo.c", the "vim" command uses permissions 0666
for new files, which are modified by my umask before hitting the FS.
(same behavior for all UIDs)

4) When I run "tar -xvf foo.tar" as a normal user, the "tar" command
uses permissions from the archive for new files, which are modified
by my umask before hitting the FS.

5) Do you see the pattern here?

Now when I run that tar command as root, for some reason they assume
that just because my UID is 0 I want to try to ignore my umask while
extracting my j_random.tar file. How does this follow from the
behavior of any other programs mentioned above?

The program "git-tar-tree" has no bug. It creates the tar archive
such that when extracted as a normal user the users' umask is applied
exactly as for every other standard program. If anything the "bug"
is in tar assuming that every archive file extracted as UID 0 is a
backup, or in the admin assuming that tar doesn't behave differently
when run as UID 0.

Cheers,
Kyle Moffett