/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to DBUS-API

  • Committer: Teddy Hogeborn
  • Date: 2014-06-08 03:10:08 UTC
  • Revision ID: teddy@recompile.se-20140608031008-mc9bd7b024a3q0y0
Address a very theoretical possible security issue in mandos-client.

If there were to run some sort of "cleaner" process for /run/tmp (or
/tmp), and mandos-client were to run for long enough for that cleaner
process to remove the temporary directory for GPGME, there was a
possibility that another unprivileged process could trick the (also
unprivileged) mandos-client process to remove other files or symlinks
which the unprivileged mandos-client process was allowed to remove.
This is not currently known to have been exploitable, since there are
no known initramfs environments running such cleaner processes.

* plugins.d/mandos-client.c (main): Use O_NOFOLLOW when opening
                                    tempdir for cleaning.

Show diffs side-by-side

added added

removed removed

Lines of Context:
93
93
   | Interval (a)            | t    | Read/Write | interval            |
94
94
   | LastApprovalRequest (g) | s    | Read       | N/A                 |
95
95
   | LastCheckedOK (h)       | s    | Read/Write | N/A                 |
96
 
   | LastEnabled (i)         | s    | Read       | N/A                 |
 
96
   | LastCheckerStatus (i)   | n    | Read       | N/A                 |
 
97
   | LastEnabled (j)         | s    | Read       | N/A                 |
97
98
   | Name                    | s    | Read       | (Section name)      |
98
99
   | ObjectPath              | o    | Read       | N/A                 |
99
 
   | Secret (j)              | ay   | Write      | secret (or secfile) |
 
100
   | Secret (k)              | ay   | Write      | secret (or secfile) |
100
101
   | Timeout (a)             | t    | Read/Write | timeout             |
101
102
   
102
103
   a) Represented as milliseconds.
112
113
      Disable().
113
114
   
114
115
   f) The date and time this client will be disabled, as an RFC 3339
115
 
      string, or an empty string if this has not happened.
 
116
      string, or an empty string if this is not scheduled.
116
117
   
117
118
   g) The date and time of the last approval request, as an RFC 3339
118
119
      string, or an empty string if this has not happened.
124
125
      always use an empty string when setting this property, to allow
125
126
      for possible future expansion.
126
127
   
127
 
   i) The date and time this client was last enabled, as an RFC 3339
 
128
   i) The exit status of the last checker, -1 if it did not exit
 
129
      cleanly, -2 if a checker has not yet returned.
 
130
   
 
131
   j) The date and time this client was last enabled, as an RFC 3339
128
132
      string, or an empty string if this has not happened.
129
133
   
130
 
   j) A raw byte array, not hexadecimal digits.
 
134
   k) A raw byte array, not hexadecimal digits.
131
135
 
132
136
** Signals
133
137
*** CheckerCompleted(n: Exitcode, x: Waitstatus, s: Command)
152
156
*** Rejected(s: Reason)
153
157
    This client was not given its secret for a specified Reason.
154
158
 
155
 
*** NewRequest(s: IP address)
156
 
    A client at IP adress has asked for its password.
157
 
 
158
159
* Copyright
159
160
 
160
 
    Copyright © 2010-2011 Teddy Hogeborn
161
 
    Copyright © 2010-2011 Björn Påhlsson
 
161
    Copyright © 2010-2012 Teddy Hogeborn
 
162
    Copyright © 2010-2012 Björn Påhlsson
162
163
  
163
164
** License:
164
165