[Secure-testing-team] Bug#526788: schroot allows a user to do a local DoS

Aurelien Jarno aurel32 at debian.org
Sun May 3 15:12:01 UTC 2009


Package: schroot
Version: 1.2.2-1
Severity: important
Tags: security patch

In script mode, schroot mounts a new tmpfs (with a default size of half
the RAM) to act as /dev/shm inside the chroot and for each created
chroot (a user can create more than one), as shown below. Those
directories are world writable, meaning that a user can fill them, and
with them RAM and swap. As soon as the whole RAM and swap have been
filled, the kernel starts OOM killing every task, leading to a crash
of the machine.

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              38G   24G   12G  67% /
tmpfs                 2.0G   12K  2.0G   1% /lib/init/rw
udev                   10M   96K   10M   1% /dev
tmpfs                 2.0G     0  2.0G   0% /dev/shm
/dev/mapper/chome     417G  386G   31G  93% /home
tmpfs                 2.0G     0  2.0G   0% /var/lib/schroot/mount/sid-i386-f04cabdd-7e2d-45fa-9a3c-e7824c41ac0b/dev/shm
tmpfs                 2.0G     0  2.0G   0% /var/lib/schroot/mount/sid-c6852c65-72bc-4389-9501-6577ee035d32/dev/shm
tmpfs                 2.0G     0  2.0G   0% /var/lib/schroot/mount/sid-af2dd3b5-8f12-49a1-b94c-f864159f5ff7/dev/shm

The correct solution here is to bind mount /dev/shm, as it is already
done for /home, /tmp and /dev/pts. The patch below does that:

--- schroot-1.2.2.orig/bin/schroot/mount-defaults
+++ schroot-1.2.2/bin/schroot/mount-defaults
@@ -5,6 +5,6 @@
 # <file system>        <mount point>   <type>  <options>       <dump>  <pass>
 proc           /proc           proc    defaults        0       0
 /dev/pts       /dev/pts        none    rw,bind         0       0
-tmpfs          /dev/shm        tmpfs   defaults        0       0
+/dev/shm       /dev/shm        none    rw,bind         0       0
 /home          /home           none    rw,bind         0       0
 /tmp           /tmp            none    rw,bind         0      


-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.28-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages schroot depends on:
ii  libboost-filesystem1.34.1   1.34.1-15    filesystem operations (portable pa
ii  libboost-program-options1.3 1.34.1-15    program options library for C++
ii  libboost-regex1.34.1        1.34.1-15    regular expression library for C++
ii  libc6                       2.9-6        GNU C Library: Shared libraries
ii  libgcc1                     1:4.4.0-2    GCC support library
ii  liblockdev1                 1.0.3-1.2+b1 Run-time shared library for lockin
ii  libpam0g                    1.0.1-5      Pluggable Authentication Modules l
ii  libstdc++6                  4.4.0-2      The GNU Standard C++ Library v3
ii  libuuid1                    1.41.3-1     universally unique id library
ii  schroot-common              1.2.2-1      common files for schroot

schroot recommends no packages.

Versions of packages schroot suggests:
ii  debootstrap                   1.0.11     Bootstrap a basic Debian system
ii  lvm2                          2.02.39-6  The Linux Logical Volume Manager
ii  unzip                         5.52-12    De-archiver for .zip files

-- no debconf information





More information about the Secure-testing-team mailing list