Bug 644130 - SELinux is preventing /usr/local/MATLAB/R2010b/bin/glnx86/MATLAB from making the program stack executable.
Summary: SELinux is preventing /usr/local/MATLAB/R2010b/bin/glnx86/MATLAB from making ...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: selinux-policy
Version: 14
Hardware: i386
OS: Linux
low
medium
Target Milestone: ---
Assignee: Daniel Walsh
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: setroubleshoot_trace_hash:8f68500a7f6...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-10-19 00:19 UTC by Kanak Kshetri
Modified: 2010-12-20 09:56 UTC (History)
4 users (show)

Fixed In Version: selinux-policy-3.9.7-7.fc14
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-11-01 20:50:55 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Kanak Kshetri 2010-10-19 00:19:27 UTC
Summary:

SELinux is preventing /usr/local/MATLAB/R2010b/bin/glnx86/MATLAB from making the
program stack executable.

Detailed Description:

The MATLAB 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 MATLAB 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 MATLAB to
run correctly, you can change the context of the executable to execmem_exec_t.
"chcon -t execmem_exec_t '/usr/local/MATLAB/R2010b/bin/glnx86/MATLAB'" 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
'/usr/local/MATLAB/R2010b/bin/glnx86/MATLAB'"

Fix Command:

chcon -t execmem_exec_t '/usr/local/MATLAB/R2010b/bin/glnx86/MATLAB'

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                        expr
Source Path                   /usr/bin/expr
Port                          <Unknown>
Host                          (removed)
Source RPM Packages           
Target RPM Packages           
Policy RPM                    selinux-policy-3.9.7-3.fc14
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Plugin Name                   allow_execstack
Host Name                     (removed)
Platform                      Linux (removed) 2.6.35.6-39.fc14.i686 #1 SMP Fri Oct 8
                              16:20:30 UTC 2010 i686 i686
Alert Count                   2
First Seen                    Mon 18 Oct 2010 08:18:40 PM EDT
Last Seen                     Mon 18 Oct 2010 08:18:40 PM EDT
Local ID                      a6f22f14-e776-4c81-bb88-0fc1bd257e54
Line Numbers                  

Raw Audit Messages            

node=(removed) type=AVC msg=audit(1287447520.607:22007): avc:  denied  { execstack } for  pid=28143 comm="MATLAB" 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=(removed) type=SYSCALL msg=audit(1287447520.607:22007): arch=40000003 syscall=125 success=no exit=-13 a0=bf8fd000 a1=1000 a2=1000007 a3=bf8fce34 items=0 ppid=27701 pid=28143 auid=500 uid=500 gid=500 euid=500 suid=500 fsuid=500 egid=500 sgid=500 fsgid=500 tty=pts1 ses=1 comm="MATLAB" exe="/usr/local/MATLAB/R2010b/bin/glnx86/MATLAB" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)



Hash String generated from  allow_execstack,expr,unconfined_t,unconfined_t,process,execstack
audit2allow suggests:

#============= unconfined_t ==============
#!!!! This avc can be allowed using the boolean 'allow_execstack'

allow unconfined_t self:process execstack;

Comment 1 Daniel Walsh 2010-10-19 13:21:19 UTC
chcon -t java_exec_t /usr/local/MATLAB/R2010b/bin/glnx86/MATLAB

Fixed in selinux-policy-3.9.7-5.fc14

Comment 2 Fedora Update System 2010-10-28 20:12:42 UTC
selinux-policy-3.9.7-7.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/selinux-policy-3.9.7-7.fc14

Comment 3 Fedora Update System 2010-10-29 20:38:57 UTC
selinux-policy-3.9.7-7.fc14 has been pushed to the Fedora 14 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update selinux-policy'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/selinux-policy-3.9.7-7.fc14

Comment 4 Kanak Kshetri 2010-10-30 13:57:14 UTC
Daniel,

Thank you for your tip. However, I get the following error when I try the command:

$ sudo chcon -t java_exec /usr/local/MATLAB/R2010b/bin/glnx86/MATLAB 
chcon: failed to change context of `/usr/local/MATLAB/R2010b/bin/glnx86/MATLAB' to `unconfined_u:object_r:java_exec:s0': Invalid argument

Comment 5 Kanak Kshetri 2010-10-30 13:59:17 UTC
Updating to selinux-policy-3.90.7-7 doesn't fix the problem. I get the following error:

expr: error while loading shared libraries: libgmp.so.3: cannot enable executable stack as shared object requires: Permission denied
/usr/local/MATLAB/R2010b/bin/util/oscheck.sh: line 138: [: -eq: unary operator expected
/usr/local/MATLAB/R2010b/bin/glnx86/MATLAB: error while loading shared libraries: libXp.so.6: cannot open shared object file: No such file or directory


-- Here is the SELinux Troubleshooter's error output:

Summary:

SELinux is preventing /usr/bin/expr from making the program stack executable.

Detailed Description:

The expr 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 expr 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 expr to run
correctly, you can change the context of the executable to execmem_exec_t.
"chcon -t execmem_exec_t '/usr/bin/expr'" 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 '/usr/bin/expr'"

Fix Command:

chcon -t execmem_exec_t '/usr/bin/expr'

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                        firefox
Source Path                   /usr/lib/firefox-3.6/firefox
Port                          <Unknown>
Host                          chompy
Source RPM Packages           coreutils-8.5-6.fc14
Target RPM Packages           
Policy RPM                    selinux-policy-3.9.7-7.fc14
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Plugin Name                   allow_execstack
Host Name                     chompy
Platform                      Linux chompy 2.6.35.6-48.fc14.i686 #1 SMP Fri Oct
                              22 15:34:36 UTC 2010 i686 i686
Alert Count                   20
First Seen                    Thu 21 Oct 2010 08:37:44 AM EDT
Last Seen                     Sat 30 Oct 2010 09:58:52 AM EDT
Local ID                      96858212-2167-48dc-84c1-0113bfcdb79a
Line Numbers                  

Raw Audit Messages            

node=chompy type=AVC msg=audit(1288447132.341:22980): avc:  denied  { execstack } for  pid=30838 comm="expr" 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=chompy type=SYSCALL msg=audit(1288447132.341:22980): arch=40000003 syscall=125 success=no exit=-13 a0=bfd0a000 a1=1000 a2=1000007 a3=bfd0a94c items=0 ppid=30835 pid=30838 auid=500 uid=500 gid=500 euid=500 suid=500 fsuid=500 egid=500 sgid=500 fsgid=500 tty=pts3 ses=1 comm="expr" exe="/usr/bin/expr" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)

Comment 6 Daniel Walsh 2010-11-01 13:09:20 UTC
java_exec_t not java_exec

Looks like you are installing lots of apps that are going to need execstack.

Just turn off the check

# setsebool -P allow_execstack 1

Comment 7 Fedora Update System 2010-11-01 20:50:13 UTC
selinux-policy-3.9.7-7.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.


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