All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ignaz Forster <ignaz.forster@gmx.de>
To: Mimi Zohar <zohar@linux.ibm.com>,
	zohar@linux.vnet.ibm.com, linux-integrity@vger.kernel.org
Cc: Goldwyn Rodrigues <rgoldwyn@suse.com>, Fabian Vogt <fvogt@suse.de>
Subject: Re: Bug: Persisting O_TMPFILE with IMA
Date: Sat, 15 Dec 2018 12:07:21 +0100	[thread overview]
Message-ID: <8dd90198-00ef-a43f-194b-9c4dcfc2227a@gmx.de> (raw)
In-Reply-To: <1544814096.3681.12.camel@linux.ibm.com>


[-- Attachment #1.1: Type: text/plain, Size: 2175 bytes --]

Mimi Zohar schrieb am 14.12.2018 um 20:01 Uhr:
> On Fri, 2018-12-14 at 19:11 +0100, Ignaz Forster wrote:
>> Hello,
>>
>> persisting files opened with O_TMPFILE doesn't seem to work on IMA as 
>> expected: The IMA xattr won't be written. This makes it impossible to 
>> access the file later.
>> The following example application, based on the O_TMPFILE example from
>> 	man 2 open
>> will demonstrate this:
>>
>>
>> #include <fcntl.h>
>> #include <unistd.h>
>> #include <linux/limits.h>
>> #include <stdio.h>
>>
>> int main(int argc, char *argv[]) {
>> 	char path[PATH_MAX];
>> 	int fd = open("/tmp", __O_TMPFILE | O_RDWR, S_IRUSR | S_IWUSR);
>> 	write(fd, "test", 4);
>> 	snprintf(path, PATH_MAX, "/proc/self/fd/%d", fd);
>> 	linkat(AT_FDCWD, path, AT_FDCWD, "/tmp/tmpfile_persisted.txt",
>> 			AT_SYMLINK_FOLLOW);
>> }
>>
>>
>> (/tmp should not be a tmpfs of course; change to paths to a supported 
>> file system if necessary.)
>>
>> This was discovered when trying to understand why IMA is failing on 
>> overlayfs during truncated copy_up operations (see thread "PROBLEM: IMA 
>> xattrs not written on overlayfs" from September / October), though this 
>> is probably a different problem.
> 
> rootfs is a tmpfs filesystem.  Once CPIO supports xattrs, they can be
> included in the initramfs.
> 
> Remember the builtin policies - ima_policy=tcb|appraise_tcb - are
> there from boot.  They are meant to be replaced with finer grained
> policies based on LSM labels, once the LSMs are up and running.
> 
> Feel free to replace the builtin IMA policy with one to your liking.

I'm not talking about the initrd or the early boot process here - the 
application will fail when compiling and executing it in a fully started 
system. It will just open a temporary file without a name, write something 
into it and save it to "/tmp/tmpfile_persisted.txt", following the example 
for using O_TMPFILE in the open(2) manpage. No IMA hash will be generated 
for the file, making the file inaccessible and thus breaking applications 
relying on this feature of O_TMPFILE (though I assume that's not widely 
used yet).

Ignaz


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2018-12-15 11:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-14 18:11 Bug: Persisting O_TMPFILE with IMA Ignaz Forster
2018-12-14 19:01 ` Mimi Zohar
2018-12-15 11:07   ` Ignaz Forster [this message]
2018-12-16 14:36     ` Mimi Zohar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8dd90198-00ef-a43f-194b-9c4dcfc2227a@gmx.de \
    --to=ignaz.forster@gmx.de \
    --cc=fvogt@suse.de \
    --cc=linux-integrity@vger.kernel.org \
    --cc=rgoldwyn@suse.com \
    --cc=zohar@linux.ibm.com \
    --cc=zohar@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.