<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>199119</bug_id>
          
          <creation_ts>2019-06-21 15:09:03 -0700</creation_ts>
          <short_desc>Adjust sandboxes based on seed feedback</short_desc>
          <delta_ts>2019-06-23 17:29:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>Safari 10</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=199140</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>mitz</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1547011</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-21 15:09:03 -0700</bug_when>
    <thetext>Adjust our process sandboxes based on seed user feedback as follows:

(1) Silence spurious warnings about two XPC services we purposefully block:
    (global-name &quot;com.apple.CoreServices.coreservicesd&quot;)
    (global-name &quot;com.apple.DiskArbitration.diskarbitrationd&quot;)

(2) Unblock an IOKit property needed for video playback feature detection:
    (iokit-property &quot;compatible&quot;)

(3) Allow file-read* access to &quot;/Library/Fonts&quot; in the network process to allow proper font serialization:
    (subpath &quot;/Library/Fonts&quot;)

(4) Allow access to the sysctl for &quot;kern.osproductversion&quot;, which is needed by LaunchServices to detect some filesystem features.
    &quot;kern.osproductversion&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547013</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-21 15:09:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/50164879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547014</commentid>
    <comment_count>2</comment_count>
      <attachid>372656</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-21 15:12:07 -0700</bug_when>
    <thetext>Created attachment 372656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547028</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-21 15:52:58 -0700</bug_when>
    <thetext>Committed r246702: &lt;https://trac.webkit.org/changeset/246702&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547029</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-21 15:53:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/52006224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547032</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2019-06-21 16:06:13 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #0)
&gt; Adjust our process sandboxes based on seed user feedback as follows:
&gt; 
&gt; (3) Allow file-read* access to &quot;/Library/Fonts&quot; in the network process to
&gt; allow proper font serialization:
&gt;     (subpath &quot;/Library/Fonts&quot;)

What messages does the network process send or receive that include serialized font objects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547033</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-06-21 16:14:55 -0700</bug_when>
    <thetext>(In reply to mitz from comment #5)
&gt; (In reply to Brent Fulgham from comment #0)
&gt; &gt; Adjust our process sandboxes based on seed user feedback as follows:
&gt; &gt; 
&gt; &gt; (3) Allow file-read* access to &quot;/Library/Fonts&quot; in the network process to
&gt; &gt; allow proper font serialization:
&gt; &gt;     (subpath &quot;/Library/Fonts&quot;)
&gt; 
&gt; What messages does the network process send or receive that include
&gt; serialized font objects?

In this case, it was DidReceiveAuthenticationChallenge which wasn&apos;t actually serializing a font. However, the encoding code we use in all of our processes recognizes the possibility that it might be decoding (or encoding) a Font and instantiates a PlatformFont object that triggers access to the file I granted access to.

That encoding is probably present for UIProcess &lt;--&gt; WebContent process communications, but it lives in NetworkProcess, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1547035</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2019-06-21 16:38:53 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #6)
&gt; (In reply to mitz from comment #5)
&gt; &gt; (In reply to Brent Fulgham from comment #0)
&gt; &gt; &gt; Adjust our process sandboxes based on seed user feedback as follows:
&gt; &gt; &gt; 
&gt; &gt; &gt; (3) Allow file-read* access to &quot;/Library/Fonts&quot; in the network process to
&gt; &gt; &gt; allow proper font serialization:
&gt; &gt; &gt;     (subpath &quot;/Library/Fonts&quot;)
&gt; &gt; 
&gt; &gt; What messages does the network process send or receive that include
&gt; &gt; serialized font objects?
&gt; 
&gt; In this case, it was DidReceiveAuthenticationChallenge which wasn&apos;t actually
&gt; serializing a font. However, the encoding code we use in all of our
&gt; processes recognizes the possibility that it might be decoding (or encoding)
&gt; a Font and instantiates a PlatformFont object that triggers access to the
&gt; file I granted access to.
&gt; 
&gt; That encoding is probably present for UIProcess &lt;--&gt; WebContent process
&gt; communications, but it lives in NetworkProcess, too.

So presumably this is happening when UIFont is initialized as a side effect of
    [object isKindOfClass:[PlatformFont class]]
in typeFromObject(). This is a case where it’s better to use NSClassFromString() and avoid all costs (time, memory, and sandbox holes) of initializing the class. You could  add something like
    static NSString const * PlatformFontClassName = @&quot;NSColor&quot;;
and
    static NSString const * PlatformFontClassName = @&quot;UIColor&quot;;
and so on alongside the declarations the top of the file and use those string constants for the class membership tests like I described.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372656</attachid>
            <date>2019-06-21 15:12:07 -0700</date>
            <delta_ts>2019-06-21 15:45:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199119-20190621151206.patch</filename>
            <type>text/plain</type>
            <size>4527</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRkODUzYTE0NmI3ZGExYWZm
ZmUyM2M0ZjQ5ZmQ4MjM1MjE1YWY3YjEuLjU0Zjc5NmI3NzQ0ODAwYmJkMjllODkyZmRjMmQ1YmU5
MzVjNzRjY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTktMDYtMjEgIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRqdXN0IHNhbmRib3hlcyBi
YXNlZCBvbiBzZWVkIGZlZWRiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTkxMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwMTY0ODc5Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBv
dXIgc2FuZGJveGVzIHRvIGFkZHJlc3MgdGVzdCBmYWlsdXJlcyBhbmQgYnVncyBlbmNvdW50ZXJl
ZCBkdXJpbmcgaW5pdGlhbCBpT1MgMTMgYW5kCisgICAgICAgIG1hY09TIENhdGFsaW5hIHRlc3Rp
bmcuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5OZXR3
b3JrUHJvY2Vzcy5zYi5pbjoKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lv
cy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2I6CisgICAgICAgICogUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2IuaW46CisKIDIwMTktMDYtMjAg
IEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CiAKICAgICAgICAg
W0dUS10gRW5hYmxlIG5hdmlnYXRpb24gc3dpcGUgbGF5b3V0IHRlc3RzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQ
cm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9tYWMvY29tLmFwcGxl
LldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbgppbmRleCA4OGI4ZWQ2YWFiNjNmYTVhNGIzMGQ0
ZTAxOGYwYmNlOTYxZGM5MmJlLi4xNWUwMmZkOGM5NTQ4N2JiOWY2YzlhYzliMDI0Mjg1Y2M4MWNk
ZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL21hYy9jb20uYXBw
bGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IuaW4KQEAgLTky
LDggKzkyLDEwIEBACiAgICAgICAgICJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIKICAgICAgICAg
ImNvbS5hcHBsZS5pc3QuZHMuYXBwbGVjb25uZWN0Mi51YXQiIDs7IFJlbW92ZSBhZnRlciA8cmRh
cjovL3Byb2JsZW0vMzU1NDI4MDM+IHNoaXBzCiAgICAgICAgICJjb20uYXBwbGUubmV0d29ya0Nv
bm5lY3QiKSkKKwogKGFsbG93IGZpbGUtcmVhZCoKICAgICA7OyBCYXNpYyBzeXN0ZW0gcGF0aHMK
KyAgICAoc3VicGF0aCAiL0xpYnJhcnkvRm9udHMiKSA7OyBOZWVkZWQgdG8gc2VyaWFsaXplIGZv
bnQgZGF0YSB0eXBlcyA8cmRhcjovL3Byb2JsZW0vNTAxNjQ4Nzk+CiAgICAgKHN1YnBhdGggIi9M
aWJyYXJ5L0ZyYW1ld29ya3MiKQogICAgIChzdWJwYXRoICIvTGlicmFyeS9NYW5hZ2VkIFByZWZl
cmVuY2VzIikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFBy
b2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IgYi9Tb3VyY2UvV2ViS2l0
L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2lu
Zy5zYgppbmRleCA4MDcxNmVjNjQzNDhiZmI0NDhlZGU2NzYyZDRjMGRkOWMxOWNkZjdmLi41ZTdl
OTA4ZjRlZjhhNjNjYjRmZWY0ZjMwZTVlMmE5MmUxODc1ODgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZy5zYgorKysgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMv
aW9zL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYgpAQCAtNzIsNiArNzIsMTIgQEAKICAg
ICAobGl0ZXJhbCAiL3Vzci9sb2NhbC9saWIvbG9nIikgOyA8cmRhcjovL3Byb2JsZW0vMzY2Mjk0
OTU+CiApCiAKKzs7IFJlYWQtb25seSBwcmVmZXJlbmNlcyBhbmQgZGF0YQorKGFsbG93IGZpbGUt
cmVhZCoKKyAgICA7OyBCYXNpYyBzeXN0ZW0gcGF0aHMKKyAgICAoc3VicGF0aCAiL0xpYnJhcnkv
Rm9udHMiKSA7OyBOZWVkZWQgdG8gc2VyaWFsaXplIGZvbnQgZGF0YSB0eXBlcyA8cmRhcjovL3By
b2JsZW0vNTAxNjQ4Nzk+CispCisKIDs7IFNlY3VyaXR5IGZyYW1ld29yawogKGFsbG93IG1hY2gt
bG9va3VwCiAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUub2NzcGQiKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQuc2IgYi9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmls
ZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgppbmRleCAxOGEzOGEyODQzOTUx
YWE0ODI2MWM3MDAxYjMzNGU3ZDQ0OTA4YWM3Li5hZWM4MWIzNDQwNTAxNzdhYWE1MTRlMGMzNGRi
YTA5NWFjZmE2NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94
UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2Vi
Q29udGVudC5zYgpAQCAtMjg4LDYgKzI4OCw3IEBACiAgICAgKGlva2l0LXByb3BlcnR5LXJlZ2V4
ICMiKGNhbnZhcy1oZWlnaHR8Y2FudmFzLXdpZHRoKSIpCiAgICAgKGlva2l0LXByb3BlcnR5ICJj
bGFzcy1jb2RlIikKICAgICAoaW9raXQtcHJvcGVydHkgImNvbG9yLWFjY3VyYWN5LWluZGV4IikK
KyAgICAoaW9raXQtcHJvcGVydHkgImNvbXBhdGlibGUiKSA7OyA8cmRhcjovL3Byb2JsZW0vNDc1
MjM1MTY+CiAgICAgKGlva2l0LXByb3BlcnR5ICJjb21wYXRpYmxlLWRldmljZS1mYWxsYmFjayIp
IDs7IDxyZGFyOi8vcHJvYmxlbS80OTQ5NzcyMD4KICAgICAoaW9raXQtcHJvcGVydHkgImRldmlj
ZS1jb2xvcnMiKSA7OyA8cmRhcjovL3Byb2JsZW0vNTEzMjIwNzI+CiAgICAgKGlva2l0LXByb3Bl
cnR5ICJkZXZpY2UtaWQiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5h
cHBsZS5XZWJQcm9jZXNzLnNiLmluCmluZGV4IDFhMzFiZTFjNzY1MDNjOTViOGVmMGM2ZWZjOTNk
OWU3MmMzZWJlOTQuLjY4OGFmZWZhZWUxNWE2YzdlYTkyNWQyNDQwYmQ0MjVhYmVkYmY0OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5z
Yi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Mu
c2IuaW4KQEAgLTE2Nyw2ICsxNjcsNyBAQAogICAgICAgICAia2Vybi5ob3N0bmFtZSIKICAgICAg
ICAgImtlcm4ubWF4ZmlsZXNwZXJwcm9jIgogICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2
ZWwiCisgICAgICAgICJrZXJuLm9zcHJvZHVjdHZlcnNpb24iIDs7IDxyZGFyOi8vcHJvYmxlbS81
MTc1NjczOT4KICAgICAgICAgImtlcm4uc2FmZWJvb3QiCiAgICAgICAgICJrZXJuLnZlcnNpb24i
CiAgICAgICAgICJtYWNoZGVwLmNwdS5icmFuZF9zdHJpbmciCkBAIC02MzUsMTEgKzYzNiwxMiBA
QAogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAgfHwgUExB
VEZPUk0oSU9TTUFDKQogKGRlbnkgbWFjaC1sb29rdXAgKHdpdGggbm8tbG9nKQorICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5jb3Jlc2VydmljZXNkIikKKyAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5EaXNrQXJiaXRyYXRpb24uZGlza2FyYml0cmF0aW9uZCIpCiAg
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuVmlld0JyaWRnZUF1eGlsaWFyeSIpCiAgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUud2luZG93c2VydmVyLmFjdGl2ZSIpKQogI2VuZGlmCiAKLQog
OzsgTmVlZGVkIHRvIHN1cHBvcnQgZW5jcnlwdGVkIG1lZGlhIHBsYXliYWNrIDxyZGFyOi8vcHJv
YmxlbS80MDAzODQ3OD4KIChhbGxvdyBtYWNoLWxvb2t1cAogICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLlNlY3VyaXR5U2VydmVyIikK
</data>
<flag name="review"
          id="388463"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>