All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] integrity: get comm using lock to avoid race in string printing
@ 2014-04-02 16:19 ` Richard Guy Briggs
  0 siblings, 0 replies; 17+ messages in thread
From: Richard Guy Briggs @ 2014-04-02 16:19 UTC (permalink / raw)
  To: linux-audit, linux-kernel, linux-security-module; +Cc: Richard Guy Briggs

When task->comm is passed directly to audit_log_untrustedstring() without
getting a copy or using the task_lock, there is a race that could happen that
would output a NULL (\0) in the output string that would effectively truncate
the rest of the report text after the comm= field in the audit, losing fields.

Use get_task_comm() to get a copy while acquiring the task_lock to prevent
this and to prevent the result from being a mixture of old and new values of
comm.

Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
---
 security/integrity/integrity_audit.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/security/integrity/integrity_audit.c b/security/integrity/integrity_audit.c
index 85253b5..11706a2 100644
--- a/security/integrity/integrity_audit.c
+++ b/security/integrity/integrity_audit.c
@@ -33,6 +33,7 @@ void integrity_audit_msg(int audit_msgno, struct inode *inode,
 			 const char *cause, int result, int audit_info)
 {
 	struct audit_buffer *ab;
+	char comm[sizeof(current->comm)];
 
 	if (!integrity_audit_info && audit_info == 1)	/* Skip info messages */
 		return;
@@ -49,7 +50,7 @@ void integrity_audit_msg(int audit_msgno, struct inode *inode,
 	audit_log_format(ab, " cause=");
 	audit_log_string(ab, cause);
 	audit_log_format(ab, " comm=");
-	audit_log_untrustedstring(ab, current->comm);
+	audit_log_untrustedstring(ab, get_task_comm(comm, current));
 	if (fname) {
 		audit_log_format(ab, " name=");
 		audit_log_untrustedstring(ab, fname);
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2014-06-15  2:45 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-02 16:19 [PATCH] integrity: get comm using lock to avoid race in string printing Richard Guy Briggs
2014-04-02 16:19 ` Richard Guy Briggs
2014-04-02 17:39 ` Mimi Zohar
2014-04-02 18:00   ` Steve Grubb
2014-04-02 18:00     ` Steve Grubb
2014-04-02 18:12     ` Mimi Zohar
2014-04-02 18:12       ` Mimi Zohar
2014-04-02 18:18       ` Eric Paris
2014-04-02 18:18         ` Eric Paris
2014-04-02 18:27         ` Mimi Zohar
2014-04-02 18:27           ` Mimi Zohar
2014-04-02 18:52           ` oraphaned keywords in audit log text [was: Re: [PATCH] integrity: get comm using lock to avoid race in string] printing Richard Guy Briggs
2014-06-14  0:02             ` Richard Guy Briggs
2014-06-14  9:43               ` [Linux-ima-user] " Dmitry Kasatkin
2014-06-15  1:46                 ` Mimi Zohar
2014-06-15  2:45                   ` Richard Guy Briggs
2014-04-02 18:45   ` [PATCH] integrity: get comm using lock to avoid race in string printing Richard Guy Briggs

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.