Bug 537794 - Dropbox doesn't start because of selinux policy restricts.
Summary: Dropbox doesn't start because of selinux policy restricts.
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Fedora
Classification: Fedora
Component: selinux-policy
Version: 12
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Daniel Walsh
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-11-16 11:46 UTC by caius.chance
Modified: 2010-10-28 14:27 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-12-23 16:58:12 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description caius.chance 2009-11-16 11:46:10 UTC
Description of problem:

Dropbox doesn't start because of selinux policy restricts. The selinux policy restricted the permission.

Version-Release number of selected component (if applicable):

$ rpm -qa |grep dropbox
nautilus-dropbox-0.6.1-1.fc10.x86_64

$ uname -a
Linux strauss 2.6.31.5-127.fc12.x86_64 #1 SMP Sat Nov 7 21:11:14 EST 2009 x86_64 x86_64 x86_64 GNU/Linux

How reproducible:
Always

Steps to Reproduce:
1. install dropbox from https://www.dropbox.com/ :

https://www.dropbox.com/download?dl=packages/nautilus-dropbox-0.6.1-1.fc10.x86_64.rpm

2. install dropbox pty part from terminal: dropbox start -i

3. start dropbox from terminal: dropbox start
  
Actual results:

dropbox doesn't start with errors:

$ dropbox start
Starting Dropbox...Traceback (most recent call last):
  File "__main__dropbox__.py", line 18, in <module>
  File "arch/__init__.py", line 19, in <module>
  File "arch/linux/util.py", line 7, in <module>
  File "ctypes/__init__.py", line 10, in <module>
ImportError: /home/cchance/.dropbox-dist/_ctypes.so: cannot enable executable stack as shared object requires: Permission denied

Expected results:

dropbox starts with tray icon. And start start page for login setup.

Additional info:

This had been seen since previous two releases at least.

Disable of selinux, dropbox is able to start.

Comment 1 Daniel Walsh 2009-11-16 16:02:54 UTC
What AVC are you seeing in /var/log/audit/audit.log

I beleive dropbox has badly built libaries that are causing the problem.

There are some configuration settings that you can change to make it work but I need to see the AVC messages or an setroubleshoot message.

Comment 2 Juhamatti Niemelä 2010-10-28 14:24:11 UTC
I am currently having these same issues with F14 beta.

$ rpm -qa |grep dropbox
nautilus-dropbox-0.6.4-1.fc10.x86_64


$  uname -a
Linux rivendell 2.6.35.6-46.fc14.x86_64 #1 SMP Tue Oct 19 02:58:56 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

Policy version 3.9.7-4.fc14

Here's the information from SELinux and audit entry.


Summary:

SELinux is preventing /home/iiska/.dropbox-dist/dropbox from making the program
stack executable.

Detailed Description:

The dropbox application attempted to make its stack executable. This is a
potential security problem. This should never ever be necessary. Stack memory is
not executable on most OSes these days and this will not change. Executable
stack memory is one of the biggest security problems. An execstack error might
in fact be most likely raised by malicious code. Applications are sometimes
coded incorrectly and request this permission. The SELinux Memory Protection
Tests (http://www.akkadia.org/drepper/selinux-mem.html) web page explains how to
remove this requirement. If dropbox does not work and you need it to work, you
can configure SELinux temporarily to allow this access until the application is
fixed. Please file a bug report.

Allowing Access:

Sometimes a library is accidentally marked with the execstack flag, if you find
a library with this flag you can clear it with the execstack -c LIBRARY_PATH.
Then retry your application. If the app continues to not work, you can turn the
flag back on with execstack -s LIBRARY_PATH. Otherwise, if you trust dropbox to
run correctly, you can change the context of the executable to execmem_exec_t.
"chcon -t execmem_exec_t '/home/iiska/.dropbox-dist/dropbox'" You must also
change the default file context files on the system in order to preserve them
even on a full relabel. "semanage fcontext -a -t execmem_exec_t
'/home/iiska/.dropbox-dist/dropbox'"

Fix Command:

chcon -t execmem_exec_t '/home/iiska/.dropbox-dist/dropbox'

Additional Information:

Source Context                unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1
                              023
Target Context                unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1
                              023
Target Objects                None [ process ]
Source                        dropbox
Source Path                   /home/iiska/.dropbox-dist/dropbox
Port                          <Unknown>
Host                          rivendell
Source RPM Packages           
Target RPM Packages           
Policy RPM                    selinux-policy-3.9.7-4.fc14
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Plugin Name                   allow_execstack
Host Name                     rivendell
Platform                      Linux rivendell 2.6.35.6-46.fc14.x86_64 #1 SMP Tue
                              Oct 19 02:58:56 UTC 2010 x86_64 x86_64
Alert Count                   9
First Seen                    Thu 28 Oct 2010 05:05:20 PM EEST
Last Seen                     Thu 28 Oct 2010 05:11:49 PM EEST
Local ID                      eb0fd460-acc8-4511-862c-8835341d4ec3
Line Numbers                  

Raw Audit Messages            

node=rivendell type=AVC msg=audit(1288275109.59:77): avc:  denied  { execstack } for  pid=2662 comm="dropbox" scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=process

node=rivendell type=SYSCALL msg=audit(1288275109.59:77): arch=c000003e syscall=10 success=no exit=-13 a0=7fffc68c8000 a1=1000 a2=1000007 a3=7f3897d19000 items=0 ppid=2661 pid=2662 auid=500 uid=500 gid=500 euid=500 suid=500 fsuid=500 egid=500 sgid=500 fsgid=500 tty=(none) ses=1 comm="dropbox" exe="/home/iiska/.dropbox-dist/dropbox" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)

Comment 3 Juhamatti Niemelä 2010-10-28 14:27:40 UTC
Sorry, for spamming. Fix command provided by the SELinux seems to work...

$ chcon -t execmem_exec_t '/home/iiska/.dropbox-dist/dropbox'


Note You need to log in before you can comment on or make changes to this bug.