[Date Prev][Date Next] [Chronological] [Thread] [Top]

openldap tries to unlink unix domain socket (ITS#2157)



Full_Name: Andreas Steinmetz
Version: 2.1.8
OS: Linux 2.4
URL: 
Submission from: (NULL) (80.132.110.122)


slapd erroneously tries to unlink a unix domain socket which results in
attempts
to unlink files with arbitrary random names.


Detected on a system with mandatory access control. From syslog (there's tons of
this):


Oct 26 11:19:08 tux kernel: LIDS: slapd (9 2 inode 186428) pid 27030 ppid 27029
user (35/35) on NULL tty: Attempt to unlink ^R\205
Oct 26 11:19:08 tux kernel: ^A^A^B^G2
Oct 26 11:22:01 tux kernel: LIDS: slapd (9 2 inode 186428) pid 27103 ppid 27029
user (35/35) on NULL tty: Attempt to unlink ^R\205
Oct 26 11:22:01 tux kernel: ^A^A^B^G2
Oct 26 11:22:02 tux kernel: LIDS: slapd (9 2 inode 186428) pid 27775 ppid 27029
user (35/35) on NULL tty: more Attempt to unlink ^R\205
Oct 26 11:22:02 tux kernel: ^A^A^B^G2,logging disabled for 60 seconds


A trace of pid 27030 shows that slapd tries to unlink a unix domain socket:


tux:~ # strace -tt -p 27030
11:29:07.177066 --- SIGSTOP (Stopped (signal)) ---
11:29:07.177726 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [7])
11:30:00.250537 accept(7, {sin_family=AF_UNIX, path="
2"}, [2]) = 14
11:30:00.250912 time(NULL)              = 1035624600
11:30:00.251078 fcntl64(14, F_GETFL)    = 0x2 (flags O_RDWR)
11:30:00.251261 fcntl64(14, F_SETFL, O_RDWR|O_NONBLOCK) = 0
11:30:00.251497 sched_yield()           = 0
11:30:00.251649 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.253254 time(NULL)              = 1035624600
11:30:00.253770 read(14, "0;\2\1\1`6\2\1", 9) = 9
11:30:00.254273 read(14, "\3\4\32cn=ldap2nss,dc=domdv,dc=de\200\25e"..., 52) =
52
11:30:00.254760 time(NULL)              = 1035624600
11:30:00.255187 kill(27775, SIGRTMIN)   = 0
11:30:00.255630 kill(27775, SIGRTMIN)   = 0
11:30:00.256078 read(14, 0x9b86707, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:00.256520 kill(27775, SIGRTMIN)   = 0
11:30:00.257795 sched_yield()           = 0
11:30:00.258213 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.259631 time(NULL)              = 1035624600
11:30:00.260053 read(14, "03\2\1\2c.\4\16", 9) = 9
11:30:00.260511 read(14,
"dc=domdv,dc=de\n\1\2\n\1\0\2\1\1\2\1\36\1\1\0\243\v\4"..., 44) = 44
11:30:00.261019 time(NULL)              = 1035624600
11:30:00.261445 kill(27776, SIGRTMIN)   = 0
11:30:00.261883 kill(27776, SIGRTMIN)   = 0
11:30:00.271191 read(14, 0x9b7c35f, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:00.271640 kill(27776, SIGRTMIN)   = 0
11:30:00.272279 sched_yield()           = 0
11:30:00.272695 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.273850 time(NULL)              = 1035624600
11:30:00.274273 read(14, "0\201\313\2\1\3c\201\305", 9) = 9
11:30:00.274743 read(14, "\4\27ou=Group,dc=domdv,dc=de\n\1\1\n\1\0\2"..., 197) =
197
11:30:00.275234 time(NULL)              = 1035624600
11:30:00.275663 kill(27103, SIGRTMIN)   = 0
11:30:00.276105 kill(27103, SIGRTMIN)   = 0
11:30:00.288883 read(14, 0x9b86707, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:00.304585 kill(27103, SIGRTMIN)   = 0
11:30:00.305224 sched_yield()           = 0
11:30:00.305656 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.307488 time(NULL)              = 1035624600
11:30:00.307919 read(14, "", 9)         = 0
11:30:00.308358 write(5, "0", 1)        = 1
11:30:00.308794 write(5, "0", 1)        = 1
11:30:00.309234 unlink("
2")      = -1 ENOENT (No such file or directory)
11:30:00.309925 shutdown(14, 2 /* send and receive */) = 0
11:30:00.310345 close(14)               = 0
11:30:00.310786 sched_yield()           = 0
11:30:00.311206 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [4])
11:30:00.311907 read(4, "00", 8192)     = 2
11:30:00.312344 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [7])
11:30:00.338263 accept(7, {sin_family=AF_UNIX, path="
2"}, [2]) = 14
11:30:00.339053 time(NULL)              = 1035624600
11:30:00.339488 fcntl64(14, F_GETFL)    = 0x2 (flags O_RDWR)
11:30:00.339928 fcntl64(14, F_SETFL, O_RDWR|O_NONBLOCK) = 0
11:30:00.340721 sched_yield()           = 0
11:30:00.341165 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.342259 time(NULL)              = 1035624600
11:30:00.342694 read(14, "0;\2\1\1`6\2\1", 9) = 9
11:30:00.343188 read(14, "\3\4\32cn=ldap2nss,dc=domdv,dc=de\200\25e"..., 52) =
52
11:30:00.343678 time(NULL)              = 1035624600
11:30:00.344114 kill(27774, SIGRTMIN)   = 0
11:30:00.344567 kill(27774, SIGRTMIN)   = 0
11:30:00.345019 read(14, 0x9b7c46f, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:00.345456 kill(27774, SIGRTMIN)   = 0
11:30:00.346735 sched_yield()           = 0
11:30:00.347157 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.348591 time(NULL)              = 1035624600
11:30:00.349013 read(14, "03\2\1\2c.\4\16", 9) = 9
11:30:00.349475 read(14,
"dc=domdv,dc=de\n\1\2\n\1\0\2\1\1\2\1\36\1\1\0\243\v\4"..., 44) = 44
11:30:00.349989 time(NULL)              = 1035624600
11:30:00.350425 kill(27775, SIGRTMIN)   = 0
11:30:00.350867 kill(27775, SIGRTMIN)   = 0
11:30:00.360066 read(14, 0x9b82acf, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:00.360518 kill(27775, SIGRTMIN)   = 0
11:30:00.361166 sched_yield()           = 0
11:30:00.361585 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.362735 time(NULL)              = 1035624600
11:30:00.363043 read(14, "0\201\313\2\1\3c\201\305", 9) = 9
11:30:00.363247 read(14, "\4\27ou=Group,dc=domdv,dc=de\n\1\1\n\1\0\2"..., 197) =
197
11:30:00.363463 time(NULL)              = 1035624600
11:30:00.363614 kill(27776, SIGRTMIN)   = 0
11:30:00.363784 kill(27776, SIGRTMIN)   = 0
11:30:00.370831 read(14, 0x9b7c35f, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:00.376673 sched_yield()           = 0
11:30:00.382483 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:00.394242 time(NULL)              = 1035624600
11:30:00.394399 read(14, "", 9)         = 0
11:30:00.394565 write(5, "0", 1)        = 1
11:30:00.394725 write(5, "0", 1)        = 1
11:30:00.394889 unlink("
2")      = -1 ENOENT (No such file or directory)
11:30:00.395122 shutdown(14, 2 /* send and receive */) = 0
11:30:00.395265 close(14)               = 0
11:30:00.395428 sched_yield()           = 0
11:30:00.395574 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [4])
11:30:00.396004 read(4, "00", 8192)     = 2
11:30:00.396167 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [7])
11:30:01.147580 accept(7, {sin_family=AF_UNIX, path="
2"}, [2]) = 14
11:30:01.148367 time(NULL)              = 1035624601
11:30:01.148804 fcntl64(14, F_GETFL)    = 0x2 (flags O_RDWR)
11:30:01.149240 fcntl64(14, F_SETFL, O_RDWR|O_NONBLOCK) = 0
11:30:01.149751 sched_yield()           = 0
11:30:01.150181 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:01.151294 time(NULL)              = 1035624601
11:30:01.151722 read(14, "0;\2\1\1`6\2\1", 9) = 9
11:30:01.152188 read(14, "\3\4\32cn=ldap2nss,dc=domdv,dc=de\200\25e"..., 52) =
52
11:30:01.152674 time(NULL)              = 1035624601
11:30:01.153127 kill(27103, SIGRTMIN)   = 0
11:30:01.153315 kill(27103, SIGRTMIN)   = 0
11:30:01.153490 read(14, 0x9b85727, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:01.153647 kill(27103, SIGRTMIN)   = 0
11:30:01.154637 sched_yield()           = 0
11:30:01.154787 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:01.156222 time(NULL)              = 1035624601
11:30:01.156367 read(14, "0\201\314\2\1\2c\201\306", 9) = 9
11:30:01.156564 read(14, "\4\30ou=People,dc=domdv,dc=de\n\1\1\n\1\0"..., 198) =
198
11:30:01.156777 time(NULL)              = 1035624601
11:30:01.156926 kill(27774, SIGRTMIN)   = 0
11:30:01.157094 kill(27774, SIGRTMIN)   = 0
11:30:01.158469 read(14, 0x9b7c1ff, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:01.158635 kill(27774, SIGRTMIN)   = 0
11:30:01.158873 sched_yield()           = 0
11:30:01.159020 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:03.265131 time(NULL)              = 1035624603
11:30:03.265300 read(14, "", 9)         = 0
11:30:03.265469 write(5, "0", 1)        = 1
11:30:03.265628 write(5, "0", 1)        = 1
11:30:03.265794 unlink("
2")      = -1 ENOENT (No such file or directory)
11:30:03.266031 shutdown(14, 2 /* send and receive */) = 0
11:30:03.266169 close(14)               = 0
11:30:03.266335 sched_yield()           = 0
11:30:03.266482 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [4])
11:30:03.266910 read(4, "00", 8192)     = 2
11:30:03.267071 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [7])
11:30:04.874863 accept(7, {sin_family=AF_UNIX, path="
2"}, [2]) = 14
11:30:04.875652 time(NULL)              = 1035624604
11:30:04.876089 fcntl64(14, F_GETFL)    = 0x2 (flags O_RDWR)
11:30:04.876526 fcntl64(14, F_SETFL, O_RDWR|O_NONBLOCK) = 0
11:30:04.877032 sched_yield()           = 0
11:30:04.877459 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:04.878540 time(NULL)              = 1035624604
11:30:04.878969 read(14, "0;\2\1\1`6\2\1", 9) = 9
11:30:04.879434 read(14, "\3\4\32cn=ldap2nss,dc=domdv,dc=de\200\25e"..., 52) =
52
11:30:04.879923 time(NULL)              = 1035624604
11:30:04.880353 kill(27775, SIGRTMIN)   = 0
11:30:04.880808 kill(27775, SIGRTMIN)   = 0
11:30:04.881263 read(14, 0x9b7c58f, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:04.881700 kill(27775, SIGRTMIN)   = 0
11:30:04.882976 sched_yield()           = 0
11:30:04.883397 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:04.884922 time(NULL)              = 1035624604
11:30:04.885343 read(14, "0\201\305\2\1\2c\201\277", 9) = 9
11:30:04.885816 read(14, "\4\30ou=People,dc=domdv,dc=de\n\1\1\n\1\0"..., 191) =
191
11:30:04.886307 time(NULL)              = 1035624604
11:30:04.886734 kill(27776, SIGRTMIN)   = 0
11:30:04.887179 kill(27776, SIGRTMIN)   = 0
11:30:04.896869 read(14, 0x9b84f0f, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:04.897326 kill(27776, SIGRTMIN)   = 0
11:30:04.897942 sched_yield()           = 0
11:30:04.898393 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:04.945310 time(NULL)              = 1035624604
11:30:04.946728 read(14, "", 9)         = 0
11:30:04.947184 write(5, "0", 1)        = 1
11:30:04.947619 write(5, "0", 1)        = 1
11:30:04.948061 unlink("
2")      = -1 ENOENT (No such file or directory)
11:30:04.948588 shutdown(14, 2 /* send and receive */) = 0
11:30:04.949011 close(14)               = 0
11:30:04.949452 sched_yield()           = 0
11:30:04.949871 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [4])
11:30:04.950807 read(4, "00", 8192)     = 2
11:30:04.951246 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [7])
11:30:05.053515 accept(7, {sin_family=AF_UNIX, path="
2"}, [2]) = 14
11:30:05.053879 time(NULL)              = 1035624605
11:30:05.054029 fcntl64(14, F_GETFL)    = 0x2 (flags O_RDWR)
11:30:05.054186 fcntl64(14, F_SETFL, O_RDWR|O_NONBLOCK) = 0
11:30:05.054424 sched_yield()           = 0
11:30:05.054578 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:05.055651 time(NULL)              = 1035624605
11:30:05.055804 read(14, "0;\2\1\1`6\2\1", 9) = 9
11:30:05.055998 read(14, "\3\4\32cn=ldap2nss,dc=domdv,dc=de\200\25e"..., 52) =
52
11:30:05.056209 time(NULL)              = 1035624605
11:30:05.056362 kill(27103, SIGRTMIN)   = 0
11:30:05.056542 kill(27103, SIGRTMIN)   = 0
11:30:05.056717 read(14, 0x9b85727, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:05.056872 kill(27103, SIGRTMIN)   = 0
11:30:05.057865 sched_yield()           = 0
11:30:05.058017 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:05.059473 time(NULL)              = 1035624605
11:30:05.059617 read(14, "0\201\305\2\1\2c\201\277", 9) = 9
11:30:05.059813 read(14, "\4\30ou=People,dc=domdv,dc=de\n\1\1\n\1\0"..., 191) =
191
11:30:05.060025 time(NULL)              = 1035624605
11:30:05.060176 kill(27774, SIGRTMIN)   = 0
11:30:05.060345 kill(27774, SIGRTMIN)   = 0
11:30:05.069728 read(14, 0x9b7c1ff, 9)  = -1 EAGAIN (Resource temporarily
unavailable)
11:30:05.069907 kill(27774, SIGRTMIN)   = 0
11:30:05.070257 sched_yield()           = 0
11:30:05.070434 select(24, [4 6 7 13 14 20 21], [], NULL, NULL) = 1 (in [14])
11:30:05.115331 time(NULL)              = 1035624605
11:30:05.115796 read(14, "", 9)         = 0
11:30:05.116242 write(5, "0", 1)        = 1
11:30:05.116677 write(5, "0", 1)        = 1
11:30:05.117118 unlink("
2")      = -1 ENOENT (No such file or directory)
11:30:05.117641 shutdown(14, 2 /* send and receive */) = 0
11:30:05.118056 close(14)               = 0
11:30:05.118497 sched_yield()           = 0
11:30:05.118915 select(24, [4 6 7 13 20 21], [], NULL, NULL) = 1 (in [4])
11:30:05.119618 read(4, "00", 8192)     = 2
11:30:05.120052 select(24, [4 6 7 13 20 21], [], NULL, NULL <unfinished ...>