SELinux avc: denied after upgrading phpBB

Paul Howarth paul at city-fan.org
Fri Aug 4 11:13:32 UTC 2006


Daniel J Walsh wrote:
> Paul Howarth wrote:
>> On Sat, 2006-07-29 at 19:42 -0300, Clodoaldo Pinto wrote:
>>  
>>> 2006/7/29, Paul Howarth <paul at city-fan.org>:
>>>    
>>>> On Sat, 2006-07-29 at 14:56 -0300, Clodoaldo Pinto wrote:
>>>>      
>>>>> FC5. After upgrading phpBB from 2.0.19 to 2.0.21 I get this message:
>>>>>
>>>>> kernel: audit(1154193819.965:244): avc:  denied  { getattr } for
>>>>> pid=10862 comm="httpd" name="index.php" dev=sda1 ino=2553454
>>>>> scontext=user_u:system_r:httpd_t:s0 tcontext=user_u:object_r:tmp_t:s0
>>>>> tclass=file
>>>>>
>>>>> Why didn't I have it with the old version?
>>>>>         
>>>> The old version was probably installed properly...
>>>>
>>>>      
>>>>> I know there are booleans related to httpd:
>>>>>
>>>>> # getsebool -a | grep httpd
>>>>> allow_httpd_anon_write --> off
>>>>> allow_httpd_mod_auth_pam --> off
>>>>> allow_httpd_sys_script_anon_write --> off
>>>>> httpd_builtin_scripting --> on
>>>>> httpd_can_network_connect --> off
>>>>> httpd_can_network_connect_db --> on
>>>>> httpd_can_network_relay --> off
>>>>> httpd_disable_trans --> off
>>>>> httpd_enable_cgi --> on
>>>>> httpd_enable_ftp_server --> off
>>>>> httpd_enable_homedirs --> on
>>>>> httpd_rotatelogs_disable_trans --> off
>>>>> httpd_ssi_exec --> on
>>>>> httpd_suexec_disable_trans --> off
>>>>> httpd_tty_comm --> off
>>>>> httpd_unified --> on
>>>>>
>>>>> Which one, if any, can solve this problem?
>>>>>         
>>>> None of them. The problem is that the file has the wrong context type,
>>>> probably due to having bee unpacked in /tmp and copied into your web
>>>> server area. You need to change the context type of the php files and
>>>> the directory they are in to httpd_sys_content_t.
>>>>       
>>> The patch was unpacked in my home directory and copied to
>>> /var/www/html/domain which is owned by me.
>>>
>>> The upgrade process is:
>>> $ patch -cl -p1 < phpBB-2.0.19_to_2.0.21.patch
>>>
>>> This changes already existing files. And it also changes their
>>> contexts to tmp_t as patch uses the /tmp directory for temporary
>>> files:
>>>
>>> $ ls -aZ
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t .
>>> drwxr-xr-x  root root system_u:object_r:httpd_sys_content_t ..
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t admin
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t cache
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            common.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:httpd_sys_content_t config.php
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t db
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t docs
>>> -rw-r--r--  cpn  cpn  user_u:object_r:httpd_sys_content_t extension.inc
>>> -rw-r--r--  cpn  cpn  user_u:object_r:httpd_sys_content_t faq.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:httpd_sys_content_t groupcp.php
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t images
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t includes
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            index.php
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t language
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            login.php
>>> -rw-rw-r--  cpn  cpn  user_u:object_r:tmp_t            memberlist.php
>>> -rw-rw-r--  cpn  cpn  user_u:object_r:httpd_sys_content_t 
>>> memberlist.php.orig
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            modcp.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:httpd_sys_content_t
>>> phpBB-2.0.19_to_2.0.21.patch
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            posting.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            privmsg.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            profile.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            search.php
>>> drwxr-xr-x  cpn  cpn  user_u:object_r:httpd_sys_content_t templates
>>> -rw-r--r--  cpn  cpn  user_u:object_r:httpd_sys_content_t viewforum.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:httpd_sys_content_t viewonline.php
>>> -rw-r--r--  cpn  cpn  user_u:object_r:tmp_t            viewtopic.php
>>>
>>> I changed the contexts back with chcon:
>>>
>>> $ chcon -R -t httpd_sys_content_t *
>>>
>>> Is it necessary to use chcon whenever a patch is applied or is there a
>>> way to change patch's behavior or some selinux configuration?
>>>     
>>
>> It'll be safest to check contexts after using patch and fix them if
>> necessary. In this particular case you might avoid the problem by
>> persuading patch to use a temporary directory that has the
>> httpd_sys_content_t type, but that approach won't work in all cases.
>>
>> Paul.
>>
>>
>>   
> 
> Can you open a bugzilla on patch.  It should maintain the XATTRs on the 
> file it is patching.

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=165799

CLOSED WONTFIX

Paul.




More information about the fedora-list mailing list