- Jan 22, 2016
-
-
dcashman authored
Address the following: 01-21 13:35:41.147 5896 5896 W ndroid.music:ui: type=1400 audit(0.0:22): avc: denied { read } for name="ion" dev="tmpfs" ino=1237 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=0 01-21 13:35:41.152 5896 5896 E qdmemalloc: open_device: Failed to open ion device - Permission denied 01-21 13:35:41.152 5896 5896 E qdgralloc: Could not mmap handle 0x7f827d7260, fd=55 (Permission denied) 01-21 13:35:41.152 5896 5896 E qdgralloc: gralloc_register_buffer: gralloc_map failed and 01-22 08:58:47.667 7572 7572 W Thread-23: type=1400 audit(0.0:186): avc: denied { search } for name="xt_qtaguid" dev="proc" ino=4026535741 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:proc_net:s0 tclass=dir permissive=0 01-22 08:58:47.671 7498 7572 I qtaguid : Untagging socket 68 failed errno=-13 01-22 08:58:47.671 7498 7572 W NetworkManagementSocketTagger: untagSocket(68) failed with errno -13 Change-Id: Id4e253879fe0f6daadd04d148a257a10add68d38
-
- Jan 21, 2016
-
-
dcashman authored
Address the following denials: 01-21 12:44:53.704 4595 4595 W ndroid.calendar: type=1400 audit(0.0:21): avc: denied { getattr } for name="/" dev="dm-0" ino=2 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:labeledfs:s0 tclass=filesystem permissive=0 01-21 12:45:23.177 5544 5544 W roid.music:main: type=1400 audit(0.0:46): avc: denied { getattr } for name="/" dev="rootfs" ino=1 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=filesystem permissive=0 7618 W .android.chrome: type=1400 audit(0.0:413): avc: denied { getattr } for path="/" dev="rootfs" ino=1 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:rootfs:s0 tclass=dir permissive=0 01-21 12:44:53.709 4595 4595 D AndroidRuntime: Shutting down VM 01-21 12:44:53.727 4595 4595 E AndroidRuntime: FATAL EXCEPTION: main 01-21 12:44:53.727 4595 4595 E AndroidRuntime: Process: com.google.android.calendar, PID: 4595 01-21 12:44:53.727 4595 4595 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.google.android.syncadapters.calendar.timely.TimelyProvider: java.lang.IllegalArgumentException: Invalid path: /data 01-21 12:44:53.727 4595 4595 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5550) ... Change-Id: I0e9d65438d031e19c9abc5dca8969ed4356437a0
-
- Jan 07, 2016
-
-
dcashman authored
Address the following denial: avc: denied { read } for name="battery" dev="sysfs" ino=17945 scontext=u:r:shell:s0 tcontext=u:object_r:sysfs:s0 tclass=lnk_file permissive=0 Bug: 26219114 Change-Id: I862b40a6514bffaa455dd7f06368acf9bcdc4782
-
- Jan 04, 2016
-
-
Felipe Leme authored
This permission was created mostly for dumpstate (so it can include recovery files on bugreports when an OTA fails), but it was applied to uncrypt and recovery as well (since it had a wider access before). Grant access to cache_recovery_file where we previously granted access to cache_file. Add auditallow rules to determine if this is really needed. BUG: 25351711 Change-Id: I07745181dbb4f0bde75694ea31b3ab79a4682f18
-
- Dec 24, 2015
-
-
Daichi Hirono authored
The new rules are used to allow to mount FUSE file system for priv-app. Change-Id: I5ce2d261be501e2b3fef09b7666f1e5d1cddbe52
-
- Dec 23, 2015
-
-
Nick Kralevich authored
Access to /proc/cpuinfo was moved to domain_deprecated in commit 6e3506e1. Restore access to everyone. Allow the shell user to stat() /dev, and vfsstat() /proc and other labeled filesystems such as /system and /data. Access to /proc/cpuinfo was explicitly granted to bootanim, but is no longer required after moving it back to domain.te. Delete the redundant entry. Commit 4e2d2245 restored access to /sys/devices/system/cpu for all domains, but forgot to remove the redundant entry from bootanim.te. Cleanup the redundant entry. Addresses the following denials: avc: denied { getattr } for pid=23648 comm="bionic-unit-tes" name="/" dev="proc" ino=1 scontext=u:r:shell:s0 tcontext=u:object_r:proc:s0 tclass=filesystem permissive=0 avc: denied { read } for name="cpuinfo" dev="proc" ino=4026533615 scontext=u:r:shell:s0 tcontext=u:object_r:proc_cpuinfo:s0 tclass=file permissive=0 avc: denied { getattr } for pid=23713 comm="bionic-unit-tes" path="/dev" dev="tmpfs" ino=11405 scontext=u:r:shell:s0 tcontext=u:object_r:device:s0 tclass=dir permissive=0 avc: denied { getattr } for name="/" dev="mmcblk0p30" ino=2 scontext=u:r:shell:s0 tcontext=u:object_r:labeledfs:s0 tclass=filesystem permissive=0 Bug: 26295417 Change-Id: Ia85ac91cbd43235c0f8fe0aebafffb8046cc77ec
-
- Dec 18, 2015
-
-
Nick Kralevich authored
Don't allow access to the generic debugfs label. Instead, force relabeling to a more specific type. system_server and dumpstate are excluded from this until I have time to fix them. Tighten up the neverallow rules for untrusted_app. It should never be reading any file on /sys/kernel/debug, regardless of the label. Change-Id: Ic7feff9ba3aca450f1e0b6f253f0b56c7918d0fa
-
- Dec 14, 2015
-
-
Nick Kralevich authored
Start labeling the directory /sys/kernel/debug/tracing. The files in this directory need to be writable to the shell user. Remove global debugfs:file write access. This was added in the days before we could label individual debugfs files. Change-Id: I79c1fcb63b4b9b903dcabd99b6b25e201fe540a3
-
- Dec 10, 2015
-
-
Nick Kralevich authored
Lots of processes access CPU information. This seems to be triggered by libraries loaded into every Android process. Allow the access. Addresses the following denials: adbd : type=1400 audit(0.0:3): avc: denied { search } for name="cpu" dev="sysfs" ino=32 scontext=u:r:adbd:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0 tclass=dir permissive=1 adbd : type=1400 audit(0.0:4): avc: denied { read } for name="online" dev="sysfs" ino=34 scontext=u:r:adbd:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0 tclass=file permissive=1 adbd : type=1400 audit(0.0:5): avc: denied { open } for path="/sys/devices/system/cpu/online" dev="sysfs" ino=34 scontext=u:r:adbd:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0 tclass=file permissive=1 adbd : type=1400 audit(0.0:6): avc: denied { getattr } for path="/sys/devices/system/cpu/online" dev="sysfs" ino=34 scontext=u:r:adbd:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0 tclass=file permissive=1 Change-Id: Ie7bfae53bdf670028db724d2720447ead42bad35
-
- Dec 08, 2015
-
-
Nick Kralevich authored
Instead of allowing global read access to all properties, only allow read access to the properties which are part of core SELinux policy. Device-specific policies are no longer readable by default and need to be granted in device-specific policy. Grant read-access to any property where the person has write access. In most cases, anyone who wants to write a property needs read access to that property. Change-Id: I2bd24583067b79f31b3bb0940b4c07fc33d09918
-
Nick Kralevich authored
Add initial support for labeling files on /sys/kernel/debug. The kernel support was added in https://android-review.googlesource.com/122130 but the userspace portion of the change was never completed until now. Start labeling the file /sys/kernel/debug/tracing/trace_marker . This is the trace_marker file, which is written to by almost all processes in Android. Allow global write access to this file. This change should be submitted at the same time as the system/core commit with the same Change-Id as this patch. Change-Id: Id1d6a9ad6d0759d6de839458890e8cb24685db6d
-
- Dec 03, 2015
-
-
Tom Cherry authored
Properties are now broken up from a single /dev/__properties__ file into multiple files, one per property label. This commit provides the mechanism to control read access to each of these files and therefore sets of properties. This allows full access for all domains to each of these new property files to match the current permissions of /dev/__properties__. Future commits will restrict the access. Bug: 21852512 Change-Id: Ie9e43968acc7ac3b88e354a0bdfac75b8a710094
-
- Nov 28, 2015
-
-
Nick Kralevich authored
The extra permissions are not needed. Delete them. This change also adds read permission for /data/misc/zoneinfo back to all domains. libc refernces this directory for timezone related files, and it feels dangerous and of little value to try to restrict access. In particular, this causes problems when the shell user attempts to run "ls -la" to show file time stamps in the correct timezone. Bug: 25433265 Change-Id: I666bb460e440515151e3bf46fe2e0ac0e7c99f46
-
- Nov 25, 2015
-
-
Jeff Vander Stoep authored
allow reading symlinks in /data and getattr in /system Change-Id: I8cc9ca056725cf10ebfeef474ebf9c80c5300a73
-
- Nov 19, 2015
-
-
Jeff Vander Stoep authored
libselinux stats selinuxfs, as does every process that links against libselinux such as toolbox. grant: allow domain selinuxfs:filesystem getattr; domain is already granted: allow domain self:dir r_dir_perms; allow domain self:lnk_file r_file_perms; allow domain self:{ fifo_file file } rw_file_perms; To make these possible, also grant: allow domain proc:dir search; Change-Id: Ife6cfa2124c9d61bf908ac89a8444676acdb4259
-
- Nov 16, 2015
-
-
Calin Juravle authored
Bug: 24698874 Bug: 17173268 Change-Id: I8c502ae6aad3cf3c13fae81722c367f45d70fb18
-
- Nov 09, 2015
-
-
Jeff Vander Stoep authored
Move to domain_deprecated Bug: 25433265 Change-Id: Ib21876e450d8146ef9363d6430f6c7f00ab0c7f3
-
- Oct 29, 2015
-
-
Nick Kralevich authored
1) Don't use the generic "system_data_file" for the files in /data/nativetest. Rather, ensure it has it's own special label. This allows us to distinguish these files from other files in SELinux policy. 2) Allow the shell user to execute files from /data/nativetest, on userdebug or eng builds only. 3) Add a neverallow rule (compile time assertion + CTS test) that nobody is allowed to execute these files on user builds, and only the shell user is allowed to execute these files on userdebug/eng builds. Bug: 25340994 Change-Id: I3e292cdd1908f342699d6c52f8bbbe6065359413
-
- Oct 28, 2015
-
-
Nick Kralevich authored
1) Don't allow any SELinux domain to attempt to perform a text relocation on a file from the /system partition. It's not supported and should never be attempted. 2) Completely block any non-app SELinux domains from using text relocations, regardless of the source. Bug: 20013628 Change-Id: I82573398d0d5586264a717a1e400a3dbc7793fe3
-
- Oct 14, 2015
-
-
Jeff Vander Stoep authored
Assign priviliged apps not signed with the platform key to the priv_app domain. Bug: 22033466 Change-Id: Idf7fbe7adbdc326835a179b554f96951b69395bc
-
William Roberts authored
Occasionally, files get labeled with the domain type rather than the executable file type. This can work if the author uses domain_auto_trans() versus init_daemon_domain(). This will cause a lot of issues and is typically not what the author intended. Another case where exec on domain type might occur, is if someone attempts to execute a /proc/pid file, this also does not make sense. To prevent this, we add a neverallow. Change-Id: I39aff58c8f5a2f17bafcd2be33ed387199963b5f Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-
- Oct 10, 2015
-
-
William Roberts authored
To prevent assigning non property types to properties, introduce a neverallow to prevent non property_type types from being set. Change-Id: Iba9b5988fe0b6fca4a79ca1d467ec50539479fd5 Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-
- Oct 07, 2015
-
-
Nick Kralevich authored
Simplify SELinux policy by deleting the procrank SELinux domain. procrank only exists on userdebug/eng builds, and anyone wanting to run procrank can just su to root. Bug: 18342188 Change-Id: I71adc86a137c21f170d983e320ab55be79457c16
-
David Zeuthen authored
The update_engine daemon from Brillo is expected to be used also in Android so move its selinux policy to AOSP. Put update_engine in the whitelist (currently only has the recovery there) allowing it to bypass the notallow for writing to partititions labeled as system_block_device. Also introduce the misc_block_device dev_type as update_engine in some configurations may need to read/write the misc partition. Start migrating uncrypt to use this instead of overly broad block_device:blk_file access. Bug: 23186405 Test: Manually tested with Brillo build. Change-Id: Icf8cdb4133d4bbdf14bacc6c0fa7418810ac307a
-
- Oct 06, 2015
-
-
Nick Kralevich authored
vold hasn't use the generic "block_device" label since commit 273d7ea4 (Sept 2014), and the auditallow statement in vold hasn't triggered since that time. Remove the rule which allows vold access to the generic block_device label, and remove the vold exception. Thanks to jorgelo for reminding me about this. Change-Id: Idd6cdc20f5be9a40c5c8f6d43bbf902a475ba1c9
-
- Sep 22, 2015
-
-
Jeff Vander Stoep authored
For userdebug and eng builds enforce that: - only logd and shell domains may access logd files - logd is only allowed to write to /data/misc/logd Change-Id: Ie909cf701fc57109257aa13bbf05236d1777669a
-
- Aug 25, 2015
-
-
Stephen Smalley authored
When the toolbox domain was introduced, we allowed all domains to exec it to avoid breakage. However, only domains that were previously allowed the ability to exec /system files would have been able to do this prior to the introduction of the toolbox domain. Remove the rule from domain.te and add rules to all domains that are already allowed execute_no_trans to system_file. Requires coordination with device-specific policy changes with the same Change-Id. Change-Id: Ie46209f0412f9914857dc3d7c6b0917b7031aae5 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
- Aug 24, 2015
-
-
Nick Kralevich authored
Revert the neverallow change portion of 356df327, in case others need to do dynamic policy updates. (cherrypicked from commit e827a8ab) Bug: 22885422 Bug: 8949824 Change-Id: If0745e7f83523377fd19082cfc6b33ef47ca0647
-
Nick Kralevich authored
Remove the ability to dynamically update SELinux policy on the device. 1) This functionality has never been used, so we have no idea if it works or not. 2) If system_server is compromised, this functionality allows a complete bypass of the SELinux policy on the device. In particular, an attacker can force a regression of the following patch * https://android-review.googlesource.com/138510 see also https://code.google.com/p/android/issues/detail?id=181826 3) Dynamic policy update can be used to bypass neverallow protections enforced in CTS, by pushing a policy to the device after certification. Such an updated policy could bring the device out of compliance or deliberately introduce security weaknesses. (cherrypicked from commit e827a8ab) Bug: 22885422 Bug: 8949824 Change-Id: I802cb61fd18a452a2bb71c02fe57cfce5b7e9dc8
-
- Aug 22, 2015
-
-
Nick Kralevich authored
Add a neverallow rule (compile time assertion) for /data/local/tmp access. /data/local/tmp is intended entirely for the shell user, and it's dangerous for other SELinux domains to access it. See, for example, this commit from 2012: https://android.googlesource.com/platform/system/core/+/f3ef1271f225d9f00bb4ebb0573eb3e03829f9a8 Change-Id: I5a7928ae2b51a574fad4e572b09e60e05b121cfe
-
- Aug 15, 2015
-
-
Nick Kralevich authored
https://android-review.googlesource.com/166419 changed the handling of non-interactive adb shells to use a socket instead of a PTY. When the stdin/stdout/stderr socket is received by /system/bin/sh, the code runs isatty() (ioctl TCGETS) to determine how to handle the file descriptor. This is denied by SELinux. Allow it for all domains. Addresses the following denial: avc: denied { ioctl } for pid=4394 comm="sh" path="socket:[87326]" dev="sockfs" ino=87326 ioctlcmd=5401 scontext=u:r:shell:s0 tcontext=u:r:adbd:s0 tclass=unix_stream_socket permissive=0 TODO: When kernels are publicly available which support SELinux ioctl filtering, limit this just to ioctl 5401 (TCGETS) instead of all ioctls. Bug: 21215503 Change-Id: I5c9394f27b8f198d96df14eac4b0c46ecb9b0898
-
- Aug 14, 2015
-
-
Nick Kralevich authored
In Android 5.1, mediaserver couldn't execute any file on /system. This slightly regressed due to 8a0c25ef, which granted mediaserver access to execute /system/bin/toolbox and /system/bin/toybox Revoke that unneeded access and add a neverallow rule to prevent regressions. TODO: Remove toolbox_exec:file execute permissions from domain.te and add it back to the specific domains that need it. Change-Id: Ia7bc6028a9ffb723d4623d91cbe15c8c1bbb2eb9
-
- Aug 03, 2015
-
-
Nick Kralevich authored
Revert the neverallow change portion of 356df327, in case others need to do dynamic policy updates. Bug: 22885422 Bug: 8949824 Change-Id: If2c13d112b346db5c011a6a61bc4486b43d46d61
-
- Aug 02, 2015
-
-
Nick Kralevich authored
Remove the ability to dynamically update SELinux policy on the device. 1) This functionality has never been used, so we have no idea if it works or not. 2) If system_server is compromised, this functionality allows a complete bypass of the SELinux policy on the device. In particular, an attacker can force a regression of the following patch * https://android-review.googlesource.com/138510 see also https://code.google.com/p/android/issues/detail?id=181826 3) Dynamic policy update can be used to bypass neverallow protections enforced in CTS, by pushing a policy to the device after certification. Such an updated policy could bring the device out of compliance or deliberately introduce security weaknesses. Bug: 22885422 Bug: 8949824 Change-Id: Id98b5e09d79254816d920b92003efe8dcbe6cd2e
-
- Jul 27, 2015
-
-
Daniel Rosenberg authored
Change-Id: I08aaf89e2ef23f9528d107a1c9d66c1c9979b3ac
-
- Jul 14, 2015
-
-
Nick Kralevich authored
Init never uses / add service manager services. It doesn't make sense to allow these rules to init. Adding a rule of this type is typically caused by a process inappropriately running in init's SELinux domain, and the warning message: Warning! Service %s needs a SELinux domain defined; please fix! is ignored. In addition, add neverallow rules to domain.te which prevent nonsense SELinux service_manager rules from being added. Change-Id: Id04a50d1826fe451a9ed216aa7ab249d0393cc57
-
- Jul 13, 2015
-
-
dcashman authored
Domains have the ability to read normal tmpfs files but not symlinks. Grant this ability. In particular, allow domains to read /mnt/sdcard. Addresses the following denial: type=1400 audit(0.0:19):avc: denied { read } for comm=4173796E635461736B202333 name="sdcard" dev="tmpfs" ino=7475 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:tmpfs:s0 tclass=lnk_file permissive=0 (cherry-pick of commit: 2b0b8299) Bug: 20755029 Change-Id: Iaa5dc278b34faf33473d3e49f92d8766ae5563c0
-
dcashman authored
Domains have the ability to read normal tmpfs files but not symlinks. Grant this ability. In particular, allow domains to read /mnt/sdcard. Addresses the following denial: type=1400 audit(0.0:19):avc: denied { read } for comm=4173796E635461736B202333 name="sdcard" dev="tmpfs" ino=7475 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:tmpfs:s0 tclass=lnk_file permissive=0 Bug: 20755029 Change-Id: I0268eb00e0eb43feb2d5bca1723b87b7a44f31a9
-
- Jul 08, 2015
-
-
William Roberts authored
To help reduce code injection paths, a neverallow is placed to prevent domain, sans untrusted_app and shell, execute on data_file_type. A few data_file_type's are also exempt from this rule as they label files that should be executable. Additional constraints, on top of the above, are placed on domains system_server and zygote. They can only execute data_file_type's of type dalvikcache_data_file. Change-Id: I15dafbce80ba2c85a03c23128eae4725703d5f02 Signed-off-by:
William Roberts <william.c.roberts@intel.com>
-
- Jun 23, 2015
-
-
Stephen Smalley authored
Despite removing these from AOSP policy they seem to still be present in device policies. Prohibit them via neverallow. We would also like to minimize execmem to only app domains and others using ART, but that will first require eliminating it from device-specific service domains (which may only have it due to prior incorrect handling of text relocations). Change-Id: Id1f49566779d9877835497d8ec7537abafadadc4 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-