Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 24 Jul 2014 11:14:49 -0700
From: Andy Lutomirski <>
Subject: Re: Linux peer_cred Mischmasch

On 07/22/2014 11:43 PM, Sebastian Krahmer wrote:
> On Tue, Jul 22, 2014 at 12:22:30PM -0700, Andy Lutomirski wrote:
>> On 07/22/2014 04:17 AM, Florian Weimer wrote:
>>> On 07/22/2014 12:15 PM, Sebastian Krahmer wrote:
>>>> While maybe_add_creds() (via SOCK_PASSCRED) and scm_send()
>>>> (via unix_{stream,dgram}_sendmsg()) use the real UID,
>>>> cred_to_ucred() (via SO_PEERCRED) passes the EUID (this time
>>>> also kuid_munged()).
>>> There should also be a discrepancy regarding when the credentials are
>>> captured (time of send for SOCK_PASSCRED, time of socket creation for
>>> SO_PEERCRED).  The latter is required because privileged processes
>>> assume that they can safely write to stderr, so picking the current
>>> process credentials may well introduce vulnerabilities.
> It does, and that should be ok.
>> Indeed.  IMO both of these interfaces are flawed, but PASSCRED is
>> terminally broken and should never be used.  See, for example,
>> CVE-2013-1979, which is the immediate cause of the ruid thing.
> Thats what I was wondering whether CVE-2013-1979 only fixed SCM_CREDENTIALS
> case and missed to fix SO_PEERCRED.
> I am not fully convinced thats OK to get one time the euid and another time
> the uid (even though I liked the spy example:)

SO_PEERCRED is at least less bad: you'd need to convince someone to call
socket(2) (or maybe connect(2)) on your behalf, which is hopefully much
harder than getting them to call write(2) on your behalf.

I still don't like it, but that ship sailed a long, long time ago.

> Sebastian

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.