"scp-dbus-service" creates 100s of thousands symlinks to the ppd-file in "/tmp" untill the root filesystem runs out of inodes everytime I print something
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
system-config-printer (Debian) |
Fix Released
|
Unknown
|
|||
system-config-printer (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Utopic |
Fix Released
|
High
|
Unassigned |
Bug Description
When I print e.g. a webpage in Firefox, shortly after the printing finished, the root filesystem is running out of available inodes.
"/tmp/" is populated with hundreds of thousands of symlinks to "/etc/cups/
During this time the process "/usr/bin/python /usr/share/
As soon as I kill this process, no more symlinks are created.
When I wait for the inodes to run out, this process's CPU usage drops to ~7% for a few seconds before the process suddenly disapears from the process list. This indicates that all the symlinks are created by this one process.
If I delete the symlinks now and print another document, things start over again.
---+ Furher notes
This does not happen when printing with
lpr
gv
It does happen when printing with
Firefox
Chromium
LibreOffice
An unpriviledged user could break down the system by filling up all free inodes on the root fs, so this might be security relevant.
[Impact]
On an attempt to print out of an application like for example Firefox a process runs crazy and does nothing than creating links in /tmp until the file system runs out of inodes. If the /tmp directory is on the root partition (and not a RAM disk) the system cannot create files any more and on the next boot it can take hours for the system to clean up, making the impression that the system is not able to boot any more.
[Test Case]
WARNING: To get your system easily back into a usable state by a siumple reboot, at first configure /tmp to be on a RAM disk.
Modify the permissions of the PPD file of your print queue to remove the world-readable bit:
sudo chmod o-r /etc/cups/ppd/*.ppd
Then try to print from Firefox (or another desktop application). Run the "top" command and observe, scp-dbus-service will pick up 100% CPU. /tmp will fill up with links quickly.
Kill the scp-dbus-service process to stop this. A quick workaround is removing the executable bit of scp-dbus-service.py but this will disable functionality of system-
With the proposed package this will not happen any more. No mass creation of symlinks in /tmp and no CPU hogging by scp-dbus-service.
[Regression Potential]
Lo, the patch is rather simple, erroring out correctly when the PPD file is not readable to avoid an infinite loop.
ProblemType: Bug
DistroRelease: Ubuntu 12.10
Package: system-
ProcVersionSign
Uname: Linux 3.5.0-25-generic x86_64
NonfreeKernelMo
ApportVersion: 2.6.1-0ubuntu10
Architecture: amd64
Date: Mon Mar 18 00:45:56 2013
Lpstat: Error: command ['lpstat', '-v'] failed with exit code 1: lpstat: Transport endpoint is not connected
MachineType: Gigabyte Technology Co., Ltd. GA-A75M-UD2H
MarkForUpload: True
PackageArchitec
Papersize: letter
PpdFiles: Hewlett-
ProcKernelCmdLine: BOOT_IMAGE=
SourcePackage: system-
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 11/03/2011
dmi.bios.vendor: Award Software International, Inc.
dmi.bios.version: F5
dmi.board.name: GA-A75M-UD2H
dmi.board.vendor: Gigabyte Technology Co., Ltd.
dmi.chassis.type: 3
dmi.chassis.vendor: Gigabyte Technology Co., Ltd.
dmi.modalias: dmi:bvnAwardSof
dmi.product.name: GA-A75M-UD2H
dmi.sys.vendor: Gigabyte Technology Co., Ltd.
summary: |
- "scp-debus-service" creates 100s of thousands symlinks to the ppd-file - in "/tmp" untill the root filesystem runs out of inodes everytime I - print something + "scp-dbus-service" creates 100s of thousands symlinks to the ppd-file in + "/tmp" untill the root filesystem runs out of inodes everytime I print + something |
information type: | Public Security → Public |
Changed in system-config-printer (Debian): | |
status: | Unknown → New |
Changed in system-config-printer (Debian): | |
status: | New → Fix Released |
Changed in system-config-printer (Ubuntu): | |
importance: | Undecided → High |
Changed in system-config-printer (Ubuntu Utopic): | |
importance: | Undecided → High |
status: | New → Triaged |
description: | updated |
tags: | removed: verification-failed verification-needed |
Status changed to 'Confirmed' because the bug affects multiple users.