← Back to team overview

kernel-packages team mailing list archive

[Bug 1507463] Re: OverlayFS: Wrong mnt_id and path reported in /proc in linux-3.13

 

apport information

** Tags added: apparmor apport-collected third-party-packages uec-images

** Description changed:

  I am running Ubuntu Trusty (3.13.0-65-generic #106-Ubuntu SMP Fri Oct 2
  22:08:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux).
  
  There are two issues in OverlayFS as follows:
  
   1. /proc/<pid>/fdinfo/<fd> reports wrong mnt_id (non-existent in
  /proc/<pid>/mountinfo)
  
   2. /proc/<pid>/fd/<fd> shows incorrect path for the symlink target
  
  These issues were previously reported and patched for the Ubuntu Vivid
  kernel (3.19) in bug #1479468, but the patch was not applied to the 3.13
  kernel, possibly because it contains an older version of overlayfs.
  
  These issues are now adversely affecting some versions of lxc when used
  in conjunction with the 3.13 kernel, because lxc has recently been
  patched to pass /proc/<pid>/fd/<fd> to the mount syscall.  This change
  to lxc was made in response to cve-2015-1335; see bug #1476662.
  
  The kernel issues cause some overlayfs-backed containers to fail to
  start, with error message,
  
  strace: mount("/home/ubuntu/test.txt", "/proc/self/fd/16",
  0x7ffd4c3f7fdb, MS_BIND, NULL) = -1 EACCES (Permission denied)
  
  The mount fails because /proc/self/fd/16, which should point to a file
  in overlayfs, has an invalid value.
  
  The version of lxc in the trusty-updates repository, lxc-1.0.7-0ubuntu0.7,
  is not affected.  The following versions of lxc are affected:
  
  repository                         lxc version
  ----------------------------------------------------------------------------
  ppa:ubuntu-lxc/lxc-git-stable-1.0  1.0.7+stable~20151014-2143-0ubuntu1~trusty
  ppa:ubuntu-lxc/lxc-git-stable-1.1  1.1.3+stable~20151007-2301-0ubuntu1~trusty
  ppa:ubuntu-lxc/lxc-git-master      1.1.3+master~20151012-0541-0ubuntu1~trusty
  
  To reproduce the lxc failure-to-start issue:
  
  # Install the 3.13 kernel and also an affected version of lxc.
  lxc-create -t download -n trusty -- -d ubuntu -r trusty -a amd64;
  touch $HOME/test.txt;
  echo "lxc.mount.entry = $HOME/test.txt home/ubuntu/test.txt none bind,create=file 0 0" >> $HOME/.local/share/lxc/trusty/config;
  lxc-clone -s -B overlayfs trusty trusty_overlay;
  lxc-start -n trusty_overlay; # fails to start
+ --- 
+ AlsaDevices:
+  total 0
+  crw-rw---- 1 root audio 116,  1 Oct 19 07:31 seq
+  crw-rw---- 1 root audio 116, 33 Oct 19 07:31 timer
+ AplayDevices: Error: [Errno 2] No such file or directory
+ ApportVersion: 2.14.1-0ubuntu3.15
+ Architecture: amd64
+ ArecordDevices: Error: [Errno 2] No such file or directory
+ AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
+ CRDA: Error: [Errno 2] No such file or directory
+ DistroRelease: Ubuntu 14.04
+ IwConfig: Error: [Errno 2] No such file or directory
+ Lsusb: Error: command ['lsusb'] failed with exit code 1: unable to initialize libusb: -99
+ MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
+ Package: lxc 1.1.3+master~20151012-0541-0ubuntu1~trusty [origin: LP-PPA-ubuntu-lxc-daily]
+ PackageArchitecture: amd64
+ PciMultimedia:
+  
+ ProcCmdline: BOOT_IMAGE=/boot/vmlinuz-3.13.0-65-generic root=UUID=0ddfd60f-0567-41c7-a1a0-9b562f0b4cf9 ro console=tty1 console=ttyS0
+ ProcEnviron:
+  TERM=vt102
+  PATH=(custom, no user)
+  XDG_RUNTIME_DIR=<set>
+  LANG=en_US.UTF-8
+  SHELL=/bin/bash
+ ProcFB:
+  
+ ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.13.0-65-generic root=UUID=0ddfd60f-0567-41c7-a1a0-9b562f0b4cf9 ro console=tty1 console=ttyS0
+ ProcVersionSignature: Ubuntu 3.13.0-65.106-generic 3.13.11-ckt26
+ RfKill: Error: [Errno 2] No such file or directory
+ Tags: trusty uec-images third-party-packages trusty uec-images apparmor
+ Uname: Linux 3.13.0-65-generic x86_64
+ UnreportableReason: This is not an official Ubuntu package. Please remove any third party package and try again.
+ UpgradeStatus: No upgrade log present (probably fresh install)
+ UserGroups: adm audio cdrom dialout dip floppy netdev plugdev sudo video
+ _MarkForUpload: True
+ defaults.conf:
+  lxc.network.type = empty
+  #lxc.network.link = lxcbr0
+  #lxc.network.flags = up
+  #lxc.network.hwaddr = 00:16:3e:xx:xx:xx
+ dmi.bios.date: 01/01/2011
+ dmi.bios.vendor: Bochs
+ dmi.bios.version: Bochs
+ dmi.chassis.type: 1
+ dmi.chassis.vendor: Bochs
+ dmi.modalias: dmi:bvnBochs:bvrBochs:bd01/01/2011:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-trusty:cvnBochs:ct1:cvr:
+ dmi.product.name: Standard PC (i440FX + PIIX, 1996)
+ dmi.product.version: pc-i440fx-trusty
+ dmi.sys.vendor: QEMU
+ modified.conffile..etc.default.lxc: [modified]
+ modified.conffile..etc.lxc.default.conf: [modified]
+ mtime.conffile..etc.default.lxc: 2015-10-14T06:30:28.860979
+ mtime.conffile..etc.lxc.default.conf: 2015-10-14T06:42:05.568979

** Attachment added: "BootDmesg.txt"
   https://bugs.launchpad.net/bugs/1507463/+attachment/4499885/+files/BootDmesg.txt

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1507463

Title:
  OverlayFS: Wrong mnt_id and path reported in /proc in linux-3.13

Status in linux package in Ubuntu:
  Incomplete
Status in lxc package in Ubuntu:
  New

Bug description:
  I am running Ubuntu Trusty (3.13.0-65-generic #106-Ubuntu SMP Fri Oct
  2 22:08:27 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux).

  There are two issues in OverlayFS as follows:

   1. /proc/<pid>/fdinfo/<fd> reports wrong mnt_id (non-existent in
  /proc/<pid>/mountinfo)

   2. /proc/<pid>/fd/<fd> shows incorrect path for the symlink target

  These issues were previously reported and patched for the Ubuntu Vivid
  kernel (3.19) in bug #1479468, but the patch was not applied to the
  3.13 kernel, possibly because it contains an older version of
  overlayfs.

  These issues are now adversely affecting some versions of lxc when
  used in conjunction with the 3.13 kernel, because lxc has recently
  been patched to pass /proc/<pid>/fd/<fd> to the mount syscall.  This
  change to lxc was made in response to cve-2015-1335; see bug #1476662.

  The kernel issues cause some overlayfs-backed containers to fail to
  start, with error message,

  strace: mount("/home/ubuntu/test.txt", "/proc/self/fd/16",
  0x7ffd4c3f7fdb, MS_BIND, NULL) = -1 EACCES (Permission denied)

  The mount fails because /proc/self/fd/16, which should point to a file
  in overlayfs, has an invalid value.

  The version of lxc in the trusty-updates repository, lxc-1.0.7-0ubuntu0.7,
  is not affected.  The following versions of lxc are affected:

  repository                         lxc version
  ----------------------------------------------------------------------------
  ppa:ubuntu-lxc/lxc-git-stable-1.0  1.0.7+stable~20151014-2143-0ubuntu1~trusty
  ppa:ubuntu-lxc/lxc-git-stable-1.1  1.1.3+stable~20151007-2301-0ubuntu1~trusty
  ppa:ubuntu-lxc/lxc-git-master      1.1.3+master~20151012-0541-0ubuntu1~trusty

  To reproduce the lxc failure-to-start issue:

  # Install the 3.13 kernel and also an affected version of lxc.
  lxc-create -t download -n trusty -- -d ubuntu -r trusty -a amd64;
  touch $HOME/test.txt;
  echo "lxc.mount.entry = $HOME/test.txt home/ubuntu/test.txt none bind,create=file 0 0" >> $HOME/.local/share/lxc/trusty/config;
  lxc-clone -s -B overlayfs trusty trusty_overlay;
  lxc-start -n trusty_overlay; # fails to start
  --- 
  AlsaDevices:
   total 0
   crw-rw---- 1 root audio 116,  1 Oct 19 07:31 seq
   crw-rw---- 1 root audio 116, 33 Oct 19 07:31 timer
  AplayDevices: Error: [Errno 2] No such file or directory
  ApportVersion: 2.14.1-0ubuntu3.15
  Architecture: amd64
  ArecordDevices: Error: [Errno 2] No such file or directory
  AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
  CRDA: Error: [Errno 2] No such file or directory
  DistroRelease: Ubuntu 14.04
  IwConfig: Error: [Errno 2] No such file or directory
  Lsusb: Error: command ['lsusb'] failed with exit code 1: unable to initialize libusb: -99
  MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
  Package: lxc 1.1.3+master~20151012-0541-0ubuntu1~trusty [origin: LP-PPA-ubuntu-lxc-daily]
  PackageArchitecture: amd64
  PciMultimedia:
   
  ProcCmdline: BOOT_IMAGE=/boot/vmlinuz-3.13.0-65-generic root=UUID=0ddfd60f-0567-41c7-a1a0-9b562f0b4cf9 ro console=tty1 console=ttyS0
  ProcEnviron:
   TERM=vt102
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  ProcFB:
   
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.13.0-65-generic root=UUID=0ddfd60f-0567-41c7-a1a0-9b562f0b4cf9 ro console=tty1 console=ttyS0
  ProcVersionSignature: Ubuntu 3.13.0-65.106-generic 3.13.11-ckt26
  RfKill: Error: [Errno 2] No such file or directory
  Tags: trusty uec-images third-party-packages trusty uec-images apparmor
  Uname: Linux 3.13.0-65-generic x86_64
  UnreportableReason: This is not an official Ubuntu package. Please remove any third party package and try again.
  UpgradeStatus: No upgrade log present (probably fresh install)
  UserGroups: adm audio cdrom dialout dip floppy netdev plugdev sudo video
  _MarkForUpload: True
  defaults.conf:
   lxc.network.type = empty
   #lxc.network.link = lxcbr0
   #lxc.network.flags = up
   #lxc.network.hwaddr = 00:16:3e:xx:xx:xx
  dmi.bios.date: 01/01/2011
  dmi.bios.vendor: Bochs
  dmi.bios.version: Bochs
  dmi.chassis.type: 1
  dmi.chassis.vendor: Bochs
  dmi.modalias: dmi:bvnBochs:bvrBochs:bd01/01/2011:svnQEMU:pnStandardPC(i440FX+PIIX,1996):pvrpc-i440fx-trusty:cvnBochs:ct1:cvr:
  dmi.product.name: Standard PC (i440FX + PIIX, 1996)
  dmi.product.version: pc-i440fx-trusty
  dmi.sys.vendor: QEMU
  modified.conffile..etc.default.lxc: [modified]
  modified.conffile..etc.lxc.default.conf: [modified]
  mtime.conffile..etc.default.lxc: 2015-10-14T06:30:28.860979
  mtime.conffile..etc.lxc.default.conf: 2015-10-14T06:42:05.568979

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1507463/+subscriptions


References