/mandos/release

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

« back to all changes in this revision

Viewing changes to mandos-keygen.xml

  • Committer: Teddy Hogeborn
  • Date: 2014-06-08 03:10:08 UTC
  • mto: (237.7.272 trunk)
  • mto: This revision was merged to the branch mainline in revision 317.
  • 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:
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
4
<!ENTITY COMMANDNAME "mandos-keygen">
5
 
<!ENTITY TIMESTAMP "2019-02-10">
 
5
<!ENTITY TIMESTAMP "2013-10-22">
6
6
<!ENTITY % common SYSTEM "common.ent">
7
7
%common;
8
8
]>
33
33
    <copyright>
34
34
      <year>2008</year>
35
35
      <year>2009</year>
36
 
      <year>2010</year>
37
36
      <year>2011</year>
38
37
      <year>2012</year>
39
 
      <year>2013</year>
40
 
      <year>2014</year>
41
 
      <year>2015</year>
42
 
      <year>2016</year>
43
 
      <year>2017</year>
44
 
      <year>2018</year>
45
38
      <holder>Teddy Hogeborn</holder>
46
39
      <holder>Björn Påhlsson</holder>
47
40
    </copyright>
126
119
        <replaceable>TIME</replaceable></option></arg>
127
120
      </group>
128
121
      <sbr/>
129
 
      <group>
130
 
        <arg choice="plain"><option>--tls-keytype
131
 
        <replaceable>KEYTYPE</replaceable></option></arg>
132
 
        <arg choice="plain"><option>-T
133
 
        <replaceable>KEYTYPE</replaceable></option></arg>
134
 
      </group>
135
 
      <sbr/>
136
 
      <group>
137
 
        <arg choice="plain"><option>--force</option></arg>
138
 
        <arg choice="plain"><option>-f</option></arg>
139
 
      </group>
 
122
      <arg><option>--force</option></arg>
140
123
    </cmdsynopsis>
141
124
    <cmdsynopsis>
142
125
      <command>&COMMANDNAME;</command>
162
145
        <arg choice="plain"><option>-n
163
146
        <replaceable>NAME</replaceable></option></arg>
164
147
      </group>
165
 
      <group>
166
 
        <arg choice="plain"><option>--no-ssh</option></arg>
167
 
        <arg choice="plain"><option>-S</option></arg>
168
 
      </group>
169
148
    </cmdsynopsis>
170
149
    <cmdsynopsis>
171
150
      <command>&COMMANDNAME;</command>
187
166
    <title>DESCRIPTION</title>
188
167
    <para>
189
168
      <command>&COMMANDNAME;</command> is a program to generate the
190
 
      TLS and OpenPGP keys used by
 
169
      OpenPGP key used by
191
170
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
192
 
      <manvolnum>8mandos</manvolnum></citerefentry>.  The keys are
 
171
      <manvolnum>8mandos</manvolnum></citerefentry>.  The key is
193
172
      normally written to /etc/mandos for later installation into the
194
173
      initrd image, but this, and most other things, can be changed
195
174
      with command line options.
248
227
        <replaceable>TYPE</replaceable></option></term>
249
228
        <listitem>
250
229
          <para>
251
 
            OpenPGP key type.  Default is <quote>RSA</quote>.
 
230
            Key type.  Default is <quote>RSA</quote>.
252
231
          </para>
253
232
        </listitem>
254
233
      </varlistentry>
260
239
        <replaceable>BITS</replaceable></option></term>
261
240
        <listitem>
262
241
          <para>
263
 
            OpenPGP key length in bits.  Default is 4096.
 
242
            Key length in bits.  Default is 4096.
264
243
          </para>
265
244
        </listitem>
266
245
      </varlistentry>
272
251
        <replaceable>KEYTYPE</replaceable></option></term>
273
252
        <listitem>
274
253
          <para>
275
 
            OpenPGP subkey type.  Default is <quote>RSA</quote>
 
254
            Subkey type.  Default is <quote>RSA</quote> (Elgamal
 
255
            encryption-only).
276
256
          </para>
277
257
        </listitem>
278
258
      </varlistentry>
284
264
        <replaceable>BITS</replaceable></option></term>
285
265
        <listitem>
286
266
          <para>
287
 
            OpenPGP subkey length in bits.  Default is 4096.
 
267
            Subkey length in bits.  Default is 4096.
288
268
          </para>
289
269
        </listitem>
290
270
      </varlistentry>
328
308
      </varlistentry>
329
309
      
330
310
      <varlistentry>
331
 
        <term><option>--tls-keytype
332
 
        <replaceable>KEYTYPE</replaceable></option></term>
333
 
        <term><option>-T
334
 
        <replaceable>KEYTYPE</replaceable></option></term>
335
 
        <listitem>
336
 
          <para>
337
 
            TLS key type.  Default is <quote>ed25519</quote>
338
 
          </para>
339
 
        </listitem>
340
 
      </varlistentry>
341
 
      
342
 
      <varlistentry>
343
311
        <term><option>--force</option></term>
344
312
        <term><option>-f</option></term>
345
313
        <listitem>
378
346
          </para>
379
347
        </listitem>
380
348
      </varlistentry>
381
 
      <varlistentry>
382
 
        <term><option>--no-ssh</option></term>
383
 
        <term><option>-S</option></term>
384
 
        <listitem>
385
 
          <para>
386
 
            When <option>--password</option> or
387
 
            <option>--passfile</option> is given, this option will
388
 
            prevent <command>&COMMANDNAME;</command> from calling
389
 
            <command>ssh-keyscan</command> to get an SSH fingerprint
390
 
            for this host and, if successful, output suitable config
391
 
            options to use this fingerprint as a
392
 
            <option>checker</option> option in the output.  This is
393
 
            otherwise the default behavior.
394
 
          </para>
395
 
        </listitem>
396
 
      </varlistentry>
397
349
    </variablelist>
398
350
  </refsect1>
399
351
  
401
353
    <title>OVERVIEW</title>
402
354
    <xi:include href="overview.xml"/>
403
355
    <para>
404
 
      This program is a small utility to generate new TLS and OpenPGP
405
 
      keys for new Mandos clients, and to generate sections for
406
 
      inclusion in <filename>clients.conf</filename> on the server.
 
356
      This program is a small utility to generate new OpenPGP keys for
 
357
      new Mandos clients, and to generate sections for inclusion in
 
358
      <filename>clients.conf</filename> on the server.
407
359
    </para>
408
360
  </refsect1>
409
361
  
459
411
        </listitem>
460
412
      </varlistentry>
461
413
      <varlistentry>
462
 
        <term><filename>/etc/keys/mandos/tls-privkey.pem</filename></term>
463
 
        <listitem>
464
 
          <para>
465
 
            Private key file which will be created or overwritten.
466
 
          </para>
467
 
        </listitem>
468
 
      </varlistentry>
469
 
      <varlistentry>
470
 
        <term><filename>/etc/keys/mandos/tls-pubkey.pem</filename></term>
471
 
        <listitem>
472
 
          <para>
473
 
            Public key file which will be created or overwritten.
474
 
          </para>
475
 
        </listitem>
476
 
      </varlistentry>
477
 
      <varlistentry>
478
414
        <term><filename class="directory">/tmp</filename></term>
479
415
        <listitem>
480
416
          <para>
486
422
    </variablelist>
487
423
  </refsect1>
488
424
  
489
 
  <refsect1 id="bugs">
490
 
    <title>BUGS</title>
491
 
    <xi:include href="bugs.xml"/>
492
 
  </refsect1>
 
425
<!--   <refsect1 id="bugs"> -->
 
426
<!--     <title>BUGS</title> -->
 
427
<!--     <para> -->
 
428
<!--     </para> -->
 
429
<!--   </refsect1> -->
493
430
  
494
431
  <refsect1 id="example">
495
432
    <title>EXAMPLE</title>
565
502
      <citerefentry><refentrytitle>mandos</refentrytitle>
566
503
      <manvolnum>8</manvolnum></citerefentry>,
567
504
      <citerefentry><refentrytitle>mandos-client</refentrytitle>
568
 
      <manvolnum>8mandos</manvolnum></citerefentry>,
569
 
      <citerefentry><refentrytitle>ssh-keyscan</refentrytitle>
570
 
      <manvolnum>1</manvolnum></citerefentry>
 
505
      <manvolnum>8mandos</manvolnum></citerefentry>
571
506
    </para>
572
507
  </refsect1>
573
508