Title: [213564] trunk/Source/WebKit2
Revision
213564
Author
[email protected]
Date
2017-03-07 20:49:26 -0800 (Tue, 07 Mar 2017)

Log Message

[Mac][WK2] Whitelist iokit-get-properties
https://bugs.webkit.org/show_bug.cgi?id=169331
<rdar://problem/16363632>

Reviewed by Alex Christensen.

Block access to all IOKit properties by default. Turn on only those properties
that are actually needed by our engine.

* DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
* WebProcess/com.apple.WebProcess.sb.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (213563 => 213564)


--- trunk/Source/WebKit2/ChangeLog	2017-03-08 03:54:28 UTC (rev 213563)
+++ trunk/Source/WebKit2/ChangeLog	2017-03-08 04:49:26 UTC (rev 213564)
@@ -1,3 +1,19 @@
+2017-03-07  Brent Fulgham  <[email protected]>
+
+        [Mac][WK2] Whitelist iokit-get-properties
+        https://bugs.webkit.org/show_bug.cgi?id=169331
+        <rdar://problem/16363632>
+
+        Reviewed by Alex Christensen.
+
+        Block access to all IOKit properties by default. Turn on only those properties
+        that are actually needed by our engine.
+
+        * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
+        * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
+        * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
+        * WebProcess/com.apple.WebProcess.sb.in:
+
 2017-03-07  Simon Fraser  <[email protected]>
 
         Enable SubpixelAntialiasedLayerTextEnabled by default on some versions of macOS

Modified: trunk/Source/WebKit2/DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in (213563 => 213564)


--- trunk/Source/WebKit2/DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in	2017-03-08 03:54:28 UTC (rev 213563)
+++ trunk/Source/WebKit2/DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in	2017-03-08 04:49:26 UTC (rev 213564)
@@ -40,6 +40,8 @@
         "hw.ncpu"
         "hw.model"
         "kern.memorystatus_level"))
+
+(deny iokit-get-properties)
 #endif
 
 ;; Utility functions for home directory relative path filters

Modified: trunk/Source/WebKit2/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in (213563 => 213564)


--- trunk/Source/WebKit2/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in	2017-03-08 03:54:28 UTC (rev 213563)
+++ trunk/Source/WebKit2/NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in	2017-03-08 04:49:26 UTC (rev 213564)
@@ -40,6 +40,8 @@
         "hw.ncpu"
         "hw.model"
         "kern.memorystatus_level"))
+
+(deny iokit-get-properties)
 #endif
 
 ;; Utility functions for home directory relative path filters

Modified: trunk/Source/WebKit2/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in (213563 => 213564)


--- trunk/Source/WebKit2/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in	2017-03-08 03:54:28 UTC (rev 213563)
+++ trunk/Source/WebKit2/PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in	2017-03-08 04:49:26 UTC (rev 213564)
@@ -40,6 +40,33 @@
         "hw.ncpu"
         "hw.model"
         "kern.memorystatus_level"))
+
+(deny iokit-get-properties)
+(allow iokit-get-properties
+    (iokit-property "AllowDisplaySleep")
+    (iokit-property "DisplayRouting")
+    (iokit-property-regex #"^IOAudioControl(ChannelID|ID|SubType|Usage)")
+    (iokit-property-regex #"^IOAudioDevice(CanBeDefaults|TransportType)")
+    (iokit-property-regex #"^IOAudioEngine(ChannelNames|ClientDescription|CoreAudioPlugIn|Description|Flavor|GlobalUniqueID|OutputChannelLayout|SampleOffset|State)")
+    (iokit-property-regex #"^IOAudioEngineClock(Domain|IsStable)")
+    (iokit-property "IOAudioEngineDisableClockBoundsCheck")
+    (iokit-property-regex #"^IOAudioEngine(Input|Output)Sample(Latency|Offset)")
+    (iokit-property-regex #"^IOAudioEngineNum(ActiveUserClients|SampleFramesPerBuffer)")
+    (iokit-property "IOAudioSampleRate")
+    (iokit-property "IOAudioStreamSampleFormatByteOrder")
+    (iokit-property "IOClassNameOverride")
+    (iokit-property "IOConsoleUsers")
+    (iokit-property "IOFBCurrentPixelClock")
+    (iokit-property-regex #"^IOFBCurrentPixelCount(Real)")
+    (iokit-property "IOGeneralInterest")
+    (iokit-property "IOGLBundleName")
+    (iokit-property "IOScreenRestoreState")
+    (iokit-property "IOVARendererID")
+    (iokit-property-regex #"^MetalPlugin(Name|ClassName)")
+    (iokit-property "SupportAudioAUUC")
+    (iokit-property "board-id")
+    (iokit-property "idProduct")
+    (iokit-property "idVendor"))
 #endif
 
 ;; Utility functions

Modified: trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb.in (213563 => 213564)


--- trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb.in	2017-03-08 03:54:28 UTC (rev 213563)
+++ trunk/Source/WebKit2/WebProcess/com.apple.WebProcess.sb.in	2017-03-08 04:49:26 UTC (rev 213564)
@@ -43,6 +43,60 @@
         "hw.ncpu"
         "hw.model"
         "kern.memorystatus_level"))
+
+(deny iokit-get-properties)
+(allow iokit-get-properties
+    (iokit-property "AllowDisplaySleep")
+    (iokit-property "AAPL,mux-switch-state")
+    (iokit-property-regex #"^ATY,fb_(linebytes|offset|size)")
+    (iokit-property "CFBundleIdentifier")
+    (iokit-property "DisplayRouting")
+    (iokit-property-regex #"^IOAccel(Index|Types|Revision)")
+    (iokit-property-regex #"^IO(Class|MatchCategory|NameMatch)")
+    (iokit-property-regex #"^IOAudioControl(ChannelID|ID|SubType|Usage)")
+    (iokit-property-regex #"^IOAudioDevice(CanBeDefaults|TransportType)")
+    (iokit-property-regex #"^IOAudioEngine(ChannelNames|ClientDescription|CoreAudioPlugIn|Description|Flavor|GlobalUniqueID|OutputChannelLayout|SampleOffset|State)")
+    (iokit-property-regex #"^IOAudioEngineClock(Domain|IsStable)")
+    (iokit-property "IOAudioEngineDisableClockBoundsCheck")
+    (iokit-property-regex #"^IOAudioEngine(Input|Output)Sample(Latency|Offset)")
+    (iokit-property-regex #"^IOAudioEngineNum(ActiveUserClients|SampleFramesPerBuffer)")
+    (iokit-property "IOAudioSampleRate")
+    (iokit-property "IOAudioStreamSampleFormatByteOrder")
+    (iokit-property "IOCFPlugInTypes")
+    (iokit-property-regex #"^IOClass(|NameOverride)")
+    (iokit-property "IOConsoleUsers")
+    (iokit-property "IODVDBundleName")
+    (iokit-property "IODisplayParameters")
+    (iokit-property-regex #"^IOFB(CLUTDefer|Config|CursorInfo|Dependent(ID|Index))")
+    (iokit-property "IOFBCurrentPixelClock")
+    (iokit-property-regex #"^IOFBCurrentPixelCount(|Real)")
+    (iokit-property-regex #"^IOFB(DetailedTimings|Gamma(Count|HeaderSize|Width))")
+    (iokit-property-regex #"^IOFBI2CInterface(IDs|Info)")
+    (iokit-property-regex #"^IOFB(MemorySize|NeedsRefresh|ProbeOptions|ScalerInfo|TimingRange|Transform|UIScale|WaitCursor(Frames|Period))")
+    (iokit-property "IOFramebufferOpenGLIndex")
+    (iokit-property "IOGeneralInterest")
+    (iokit-property "IOGLBundleName")
+    (iokit-property-regex #"^IOGVA(Codec|EncoderRestricted)")
+    (iokit-property "IOMatchCategory")
+    (iokit-property-regex #"^IONameMatch(|ed)")
+    (iokit-property "IOPMStrictTreeOrder")
+    (iokit-property "IOPowerManagement")
+    (iokit-property "IOProbeScore")
+    (iokit-property "IOProviderClass")
+    (iokit-property "IOScreenRestoreState")
+    (iokit-property "IOVARendererID")
+    (iokit-property-regex #"^MetalPlugin(Name|ClassName)")
+    (iokit-property "Protocol Characteristics")
+    (iokit-property "SupportAudioAUUC")
+    (iokit-property-regex #"^audio-(codec-info|selector)")
+    (iokit-property "av-signal-type")
+    (iokit-property "board-id")
+    (iokit-property "boot-gamma-restored")
+    (iokit-property "graphic-options")
+    (iokit-property "idProduct")
+    (iokit-property "idVendor")
+    (iokit-property "iofb_version")
+    (iokit-property "startup-timing"))
 #endif
 
 ;; Utility functions for home directory relative path filters
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to