lkml.org 
[lkml]   [2014]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: kdbus: add connection, queue handling and message validation code
    On Wed, Oct 29, 2014 at 8:47 PM, Eric W. Biederman
    <ebiederm@xmission.com> wrote:
    > Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes:
    >
    >> From: Daniel Mack <daniel@zonque.org>
    >>
    >> This patch adds code to create and destroy connections, to validate
    >> incoming messages and to maintain the queue of messages that are
    >> associated with a connection.
    >>
    >> Note that connection and queue have a 1:1 relation, the code is only
    >> split in two parts for cleaner separation and better readability.
    >
    > You are not performing capability checks at open time.
    >
    > As such this API is suceptible to a host of file descriptor passing attacks.

    To be fair, write(2) doesn't work on these fds, so the usual attacks
    don't work. But who knows what absurd things kdbus clients will do
    with fd passing?

    --Andy

    >
    >> Signed-off-by: Daniel Mack <daniel@zonque.org>
    >> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    >> ---
    >
    >> +/*
    >> + * Check for maximum number of messages per individual user. This
    >> + * should prevent a single user from being able to fill the receiver's
    >> + * queue.
    >> + */
    >> +static int kdbus_conn_queue_user_quota(struct kdbus_conn *conn,
    >> + const struct kdbus_conn *conn_src,
    >> + struct kdbus_queue_entry *entry)
    >> +{
    >> + unsigned int user;
    >> +
    >> + if (!conn_src)
    >> + return 0;
    >> +
    >> + if (ns_capable(&init_user_ns, CAP_IPC_OWNER))
    >> + return 0;
    >
    >



    --
    Andy Lutomirski
    AMA Capital Management, LLC


    \
     
     \ /
      Last update: 2014-10-30 05:21    [W:4.161 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site