Skip to content
Snippets Groups Projects
  1. Nov 10, 2014
    • Nick Kralevich's avatar
      f19cca3e
    • Stephen Smalley's avatar
      Allow init to chown/chmod character devices. · 1c16abd3
      Stephen Smalley authored
      
      init.rc files can potentially chown/chmod any character device, so
      allow it for everything except for kmem (prohibited by neverallow).
      While we could whitelist each of the device types, doing so would also
      require device-specific changes for the device-specific types and
      may be difficult to maintain.
      
      Resolves (permissive) denials such as:
      avc:  denied  { read } for  pid=1 comm="init" name="ttySAC0" dev="tmpfs" ino=4208 scontext=u:r:init:s0 tcontext=u:object_r:hci_attach_dev:s0 tclass=chr_file permissive=1
      
      avc:  denied  { open } for  pid=1 comm="init" name="ttySAC0" dev="tmpfs" ino=4208 scontext=u:r:init:s0 tcontext=u:object_r:hci_attach_dev:s0 tclass=chr_file permissive=1
      
      avc:  denied  { setattr } for  pid=1 comm="init" name="ttySAC0" dev="tmpfs" ino=4208 scontext=u:r:init:s0 tcontext=u:object_r:hci_attach_dev:s0 tclass=chr_file permissive=1
      
      avc:  denied  { read } for  pid=1 comm="init" name="smd7" dev="tmpfs" ino=6181 scontext=u:r:init:s0 tcontext=u:object_r:radio_device:s0 tclass=chr_file
      
      avc:  denied  { open } for  pid=1 comm="init" name="smd7" dev="tmpfs" ino=6181 scontext=u:r:init:s0 tcontext=u:object_r:radio_device:s0 tclass=chr_file
      
      avc:  denied  { read } for  pid=1 comm="init" name="wcnss_wlan" dev="tmpfs" ino=7475 scontext=u:r:init:s0 tcontext=u:object_r:wlan_device:s0 tclass=chr_file
      
      avc:  denied  { open } for  pid=1 comm="init" name="wcnss_wlan" dev="tmpfs" ino=7475 scontext=u:r:init:s0 tcontext=u:object_r:wlan_device:s0 tclass=chr_file
      
      avc:  denied  { setattr } for  pid=1 comm="init" name="wcnss_wlan" dev="tmpfs" ino=7475 scontext=u:r:init:s0 tcontext=u:object_r:wlan_device:s0 tclass=chr_file
      
      Change-Id: If8d14e9e434fab645d43db12cc1bdbfd3fc5d354
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      1c16abd3
  2. Nov 08, 2014
    • Nick Kralevich's avatar
      allow run-as to access /data/local/tmp · dd8571aa
      Nick Kralevich authored
      Otherwise denials like the following occur:
      
      avc: denied { write } for path="/data/local/tmp/foo" dev="dm-0" ino=325769 scontext=u:r:runas:s0 tcontext=u:object_r:shell_data_file:s0 tclass=file
      avc: denied { read } for path="/data/local/tmp/foo" dev="dm-0" ino=325769 scontext=u:r:runas:s0 tcontext=u:object_r:shell_data_file:s0 tclass=file
      
      Steps to reproduce:
      
      $ run-as com.google.android.talk id > /data/local/tmp/id.out
      $ run-as com.google.android.talk cat < /data/local/tmp/id.out
      
      Change-Id: I68a7b804336a3d5776dcc31622f1279380282030
      dd8571aa
  3. Nov 07, 2014
  4. Nov 06, 2014
  5. Nov 05, 2014
    • Nick Kralevich's avatar
      recovery.te: add /data neverallow rules · a17a266e
      Nick Kralevich authored
      Recovery should never be accessing files from /data.
      In particular, /data may be encrypted, and the files within
      /data will be inaccessible to recovery, because recovery doesn't
      know the decryption key.
      
      Enforce write/execute restrictions on recovery. We can't tighten
      it up further because domain.te contains some /data read-only
      access rules, which shouldn't apply to recovery but do.
      
      Create neverallow_macros, used for storing permission macros
      useful for neverallow rules. Standardize recovery.te and
      property_data_file on the new macros.
      
      Change-Id: I02346ab924fe2fdb2edc7659cb68c4f8dffa1e88
      a17a266e
  6. Nov 04, 2014
  7. Nov 03, 2014
  8. Oct 31, 2014
  9. Oct 30, 2014
  10. Oct 29, 2014
    • Stephen Smalley's avatar
      Switch kernel and init to permissive_or_unconfined(). · a523aaca
      Stephen Smalley authored
      
      Switch the kernel and init domains from unconfined_domain()
      to permissive_or_unconfined() so that we can start collecting
      and addressing denials in -userdebug/-eng builds.
      
      Also begin to address denials for kernel and init seen after
      making this switch.
      
      I intentionally did not allow the following denials on hammerhead:
      avc:  denied  { create } for  pid=1 comm="init" name="memory.move_charge_at_immigrate" scontext=u:r:init:s0 tcontext=u:object_r:init_tmpfs:s0 tclass=file
      avc:  denied  { open } for  pid=1 comm="init" name="memory.move_charge_at_immigrate" dev="tmpfs" ino=6550 scontext=u:r:init:s0 tcontext=u:object_r:init_tmpfs:s0 tclass=file
      
      These occur when init.rc does:
      write /sys/fs/cgroup/memory/memory.move_charge_at_immigrate 1
      because the prior command to mount the cgroup failed:
      mount cgroup none /sys/fs/cgroup/memory memory
      
      I think this is because that cgroup is not enabled in the
      kernel configuration.  If the cgroup mount succeeded,
      then this would have been a write to a cgroup:file and
      would have been allowed already.
      
      Change-Id: I9d7e31bef6ea91435716aa4312c721fbeaeb69c0
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      a523aaca
    • Igor Murashkin's avatar
      am 0ae33a8d: Merge "zygote/dex2oat: Grant additional symlink permissions" · f48951a9
      Igor Murashkin authored
      * commit '0ae33a8d':
        zygote/dex2oat: Grant additional symlink permissions
      f48951a9
  11. Oct 28, 2014
  12. Oct 23, 2014
    • Nick Kralevich's avatar
      am 46f3ce87: Merge "remove init_shell" · c97aba39
      Nick Kralevich authored
      * commit '46f3ce87':
        remove init_shell
      c97aba39
    • Stephen Smalley's avatar
      am d4731ad8: Remove -kernel -recovery from keystore_data_file neverallow. · 86a39dd6
      Stephen Smalley authored
      * commit 'd4731ad8':
        Remove -kernel -recovery from keystore_data_file neverallow.
      86a39dd6
    • Nick Kralevich's avatar
      recovery: allow changing unlabeled symbolic links · 5fad3d98
      Nick Kralevich authored
      Currently, recovery is allowed write access to the following three
      file labels:
      
      * system_file (directories, files, and symbolic links)
      * exec_type (directories, files, and symbolic links)
      * unlabeled (directory and files)
      
      system_file is the default label on all files in /system. exec_type
      is the attribute used to mark executables on /system.
      
      The third file type, "unlabeled", refers to filesystem objects where
      the label hasn't been set, or a label is set but isn't defined by the
      currently loaded policy.
      
      The current policy only allows unlabeled files or directories to
      be modified. Symbolic links were accidentally excluded. This causes
      problems when trying to fix up labels/permissions on unlabeled
      symbolic links.
      
      Allow unlabeled symbolic link modifications.
      
      (cherrypicked from commit 683ac49d)
      
      Bug: 18079773
      Change-Id: I8e5c33602cdc38ec9a95b4e83f9ccbb06fe9da7c
      5fad3d98
    • Nick Kralevich's avatar
      system_server: assert app data files never opened directly · b519949d
      Nick Kralevich authored
      Add a compile time assertion that app data files are never
      directly opened by system_server. Instead, system_server always
      expects files to be passed via file descriptors.
      
      This neverallow rule will help prevent accidental regressions and
      allow us to perform other security tightening, for example
      bug 7208882 - Make an application's home directory 700
      
      Bug: 7208882
      Change-Id: I49c725982c4af0b8c76601b2a5a82a5c96df025d
      b519949d
  13. Oct 22, 2014
  14. Oct 21, 2014
    • Nick Kralevich's avatar
      remove init_shell · f37d6b57
      Nick Kralevich authored
      This domain was originally intended to be a place to hold rules for
      all init.*.rc shell scripts. However, it's now recommended that every
      init service have it's own SELinux domain, and the use of init_shell
      is to be avoided.
      
      Delete init_shell. No policy is using it anymore, and it's causing
      confusion for people implementing device specific SELinux policy.
      
      Bug: 18062250
      Change-Id: I7c90851784b233443642ea69722f3281fd457621
      f37d6b57
    • Stephen Smalley's avatar
      Remove -unconfineddomain from neverallow rules. · 0d08d472
      Stephen Smalley authored
      
      With the sepolicy-analyze neverallow checking, attribute
      expansion is performed against the device policy and therefore
      we do not want our neverallow rules to exempt domains from
      consideration based on an attribute (e.g. -unconfineddomain).
      Otherwise, device policy could pass the neverallow check just
      by adding more domains to unconfineddomain.  We could of course
      add a CTS test to check the list of unconfineddomains against
      a whitelist, but it seems desirable regardless to narrow these
      neverallow rules to only the specific domains required.
      
      There are three such neverallow rules in current policy: one
      on creating unlabeled files, one on accessing /dev/hw_random, and
      one on accessing a character device without a specific type.  The
      only domain in unconfineddomain that appears to have a legitimate
      need for any of these permissions is the init domain.  Replace
      -unconfineddomain with -init in these neverallow rules, exclude these
      permissions from unconfineddomain, and add these permissions to init if
      not already explicitly allowed.  auditallow accesses by init to files
      and character devices left in the generic device type so we can monitor
      what is being left there, although it is not necessarily a problem unless
      the file or device should be accessible to others.
      
      Change-Id: If6ee1b1a337c834971c6eb21dada5810608babcf
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      0d08d472
    • Nick Kralevich's avatar
      Merge "Allow adbd to write to /data/adb" · 06985b1d
      Nick Kralevich authored
      06985b1d
    • Nick Kralevich's avatar
      Allow adbd to write to /data/adb · 973877db
      Nick Kralevich authored
      adbd writes debugging information to /data/adb
      when persist.adb.trace_mask is set. Allow it.
      
      Bug: https://code.google.com/p/android/issues/detail?id=72895
      Change-Id: Ia5af09045e9f72a95325b429c30a5ae78e104bdc
      973877db
    • Stephen Smalley's avatar
      Remove block_device:blk_file access from fsck. · 3da1ffba
      Stephen Smalley authored
      
      Now that we have assigned specific types to userdata and cache
      block devices, we can remove the ability of fsck to run on other
      block devices.
      
      Change-Id: I8cfb3dc0e4ebe6b73346ff291ecb11397bb0c2d0
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      3da1ffba
  15. Oct 20, 2014
Loading