lkml.org 
[lkml]   [2010]   [Jul]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
Subjectprocfs gives read/write access to RO/WO pipes
From
Using /proc/*/fd, you can get read/write access to a pipe that you
have read-only or write-only access to. The program below
demonstrates this. It reads and writes through the "0" fd.
Tested with 2.6.34, i686.

At first sight, it doesn't look too serious if a program can write
to its own readable pipe, or read from its writeable pipe, but
perhaps I'm just not creative enough to see an exploit. Also, I
don't know it it might affect other file types where it might be a
real problem. At least, it does seem to violate the permissions.

#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>

int main ()
{
char a, n[64];
int p[2], f, r;
pipe (p);
sprintf (n, "/proc/self/fd/%i", p[0]);
f = open (n, O_RDWR);
write (f, "x", 1);
r = read (f, &a, 1);
fprintf (stderr, "%i %c\n", r, a);
return 0;
}


\
 
 \ /
  Last update: 2010-07-02 22:15    [W:0.021 / U:0.244 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site