Title: [224821] trunk/Source/WebKit
Revision
224821
Author
[email protected]
Date
2017-11-14 10:36:27 -0800 (Tue, 14 Nov 2017)

Log Message

Consolidate mach-lookup calls in WebProcess sandbox
https://bugs.webkit.org/show_bug.cgi?id=179650
<rdar://problem/35367154>

Reviewed by Dean Jackson.

Consolidate the various calls to 'allow mach-lookup' imported during Bug 179548 into the main
function in the sandbox profile. Remove some entries that are not needed by WebKit.

Remove the statement to grant global permission to perform mach-lookup for any xpc
service name that was copied into this sandbox profile in Bug 179548. We started blocking
this in macOS 10.13 and want to continue to do so.
        
The earlier "grant global permission" in 'system.sb' apparently allowed some xpc lookups to occur
before we hit the block declaration in the WebContent sandbox. Now that we are consistently blocking
mach lookups we need to add whitelist entries for a few more services to avoid creating new
sandbox violations.

* WebProcess/com.apple.WebProcess.sb.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (224820 => 224821)


--- trunk/Source/WebKit/ChangeLog	2017-11-14 18:02:41 UTC (rev 224820)
+++ trunk/Source/WebKit/ChangeLog	2017-11-14 18:36:27 UTC (rev 224821)
@@ -1,3 +1,25 @@
+2017-11-10  Brent Fulgham  <[email protected]>
+
+        Consolidate mach-lookup calls in WebProcess sandbox
+        https://bugs.webkit.org/show_bug.cgi?id=179650
+        <rdar://problem/35367154>
+
+        Reviewed by Dean Jackson.
+
+        Consolidate the various calls to 'allow mach-lookup' imported during Bug 179548 into the main
+        function in the sandbox profile. Remove some entries that are not needed by WebKit.
+
+        Remove the statement to grant global permission to perform mach-lookup for any xpc
+        service name that was copied into this sandbox profile in Bug 179548. We started blocking
+        this in macOS 10.13 and want to continue to do so.
+        
+        The earlier "grant global permission" in 'system.sb' apparently allowed some xpc lookups to occur
+        before we hit the block declaration in the WebContent sandbox. Now that we are consistently blocking
+        mach lookups we need to add whitelist entries for a few more services to avoid creating new
+        sandbox violations.
+
+        * WebProcess/com.apple.WebProcess.sb.in:
+
 2017-11-14  Tim Horton  <[email protected]>
 
         Long pressing a phone number with spaces in it results in a link sheet instead of a data detectors sheet

Modified: trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in (224820 => 224821)


--- trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in	2017-11-14 18:02:41 UTC (rev 224820)
+++ trunk/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in	2017-11-14 18:36:27 UTC (rev 224821)
@@ -36,9 +36,6 @@
 ;;; Allow registration of per-pid services.
 (allow mach-register (local-name-prefix ""))
 
-;;; Allow lookup of XPC services for backward-compatibility.
-(allow mach-lookup (xpc-service-name-prefix ""))
-
 ;;; Allow read access to standard system paths.
 (allow file-read*
     (require-all (file-mode #o0004)
@@ -97,29 +94,6 @@
     (ipc-posix-name "apple.shm.notification_center")
     (ipc-posix-name-prefix "apple.cfprefs."))
 
-(allow mach-lookup
-    (global-name "com.apple.appsleep")
-    (global-name "com.apple.bsd.dirhelper")
-    (global-name "com.apple.cfprefsd.agent")
-    (global-name "com.apple.cfprefsd.daemon")
-    (global-name "com.apple.diagnosticd")
-    (global-name "com.apple.dyld.closured")
-    (global-name "com.apple.espd")
-    (global-name "com.apple.logd")
-    (global-name "com.apple.logd.events")
-    (global-name "com.apple.secinitd")
-    (global-name "com.apple.system.DirectoryService.libinfo_v1")
-    (global-name "com.apple.system.logger")
-    (global-name "com.apple.system.notification_center")
-    (global-name "com.apple.system.opendirectoryd.libinfo")
-    (global-name "com.apple.system.opendirectoryd.membership")
-    (global-name "com.apple.trustd")
-    (global-name "com.apple.trustd.agent")
-    (global-name "com.apple.xpc.activity.unmanaged")
-    (global-name "com.apple.xpcd")
-    (local-name "com.apple.cfprefsd.agent"))
-
-
 ;;; Allow mostly harmless operations.
 (allow sysctl-read)
 
@@ -357,6 +331,7 @@
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300
 (deny mach-lookup (xpc-service-name-prefix ""))
 (allow mach-lookup
+    (xpc-service-name "com.apple.PerformanceAnalysis.animationperfd")
     (xpc-service-name "com.apple.accessibility.mediaaccessibilityd")
     (xpc-service-name "com.apple.audio.SandboxHelper")
     (xpc-service-name "com.apple.coremedia.videodecoder")
@@ -363,7 +338,10 @@
     (xpc-service-name "com.apple.coremedia.videoencoder")
     (xpc-service-name-regex #"\.apple-extension-service$")
     (xpc-service-name "com.apple.hiservices-xpcservice")
+    (xpc-service-name "com.apple.ist.ds.appleconnect2.HelperService")
     (xpc-service-name "com.apple.print.normalizerd")
+    (xpc-service-name "com.apple.securityd.xpc")
+    (xpc-service-name "com.apple.signpost.signpost-notificationd")
 )
 #endif
 
@@ -561,14 +539,19 @@
        (global-name "com.apple.audio.SystemSoundServer-OSX")
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300
        (global-name "com.apple.analyticsd")
+       (global-name "com.apple.audio.AudioComponentRegistrar")
 #endif
        (global-name "com.apple.audio.audiohald")
        (global-name "com.apple.audio.coreaudiod")
        (global-name "com.apple.awdd")
        (global-name "com.apple.cfnetwork.AuthBrokerAgent")
+       (global-name "com.apple.cfprefsd.agent")
+       (global-name "com.apple.cfprefsd.daemon")
        (global-name "com.apple.cookied")
        (global-name "com.apple.coreservices.launchservicesd")
+       (global-name "com.apple.diagnosticd")
        (global-name "com.apple.dock.server")
+       (global-name "com.apple.dyld.closured")
        (global-name "com.apple.fonts")
        (global-name "com.apple.iconservices")
        (global-name "com.apple.iconservices.store")
@@ -575,18 +558,25 @@
 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
        (global-name "com.apple.mediaremoted.xpc")
 #endif
+       (global-name "com.apple.logd")
+       (global-name "com.apple.logd.events")
        (global-name "com.apple.lsd.mapdb")
+       (global-name "com.apple.mobileassetd")
        (global-name "com.apple.nesessionmanager.flow-divert-token")
        (global-name "com.apple.speech.speechsynthesisd")
        (global-name "com.apple.speech.synthesis.console")
+       (global-name "com.apple.system.DirectoryService.libinfo_v1")
+       (global-name "com.apple.system.logger")
        (global-name "com.apple.system.opendirectoryd.api")
+       (global-name "com.apple.systemstats.analysis")
        (global-name "com.apple.tccd")
        (global-name "com.apple.tccd.system")
+       (global-name "com.apple.trustd")
+       (global-name "com.apple.trustd.agent")
        (global-name "com.apple.window_proxies")
        (global-name "com.apple.windowserver.active")
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300
-       (global-name "com.apple.audio.AudioComponentRegistrar")
-#endif
+       (global-name "com.apple.xpc.activity.unmanaged")
+       (global-name "com.apple.xpcd")
 )
 
 ;; Security framework
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to