Title: [182021] trunk/Source/WebKit2
Revision
182021
Author
[email protected]
Date
2015-03-26 12:00:05 -0700 (Thu, 26 Mar 2015)

Log Message

[Linux] SeccompFilters: improve the port-agnostic whitelist
https://bugs.webkit.org/show_bug.cgi?id=140064

Patch by Michael Catanzaro <[email protected]> on 2015-03-26
Reviewed by Žan Doberšek.

Allow the web process to access several files and directories that it
was previously prohibited from accessing. This makes the web process
much less likely to break.

* Shared/linux/SeccompFilters/SyscallPolicy.cpp:
(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (182020 => 182021)


--- trunk/Source/WebKit2/ChangeLog	2015-03-26 18:49:40 UTC (rev 182020)
+++ trunk/Source/WebKit2/ChangeLog	2015-03-26 19:00:05 UTC (rev 182021)
@@ -1,3 +1,17 @@
+2015-03-26  Michael Catanzaro  <[email protected]>
+
+        [Linux] SeccompFilters: improve the port-agnostic whitelist
+        https://bugs.webkit.org/show_bug.cgi?id=140064
+
+        Reviewed by Žan Doberšek.
+
+        Allow the web process to access several files and directories that it
+        was previously prohibited from accessing. This makes the web process
+        much less likely to break.
+
+        * Shared/linux/SeccompFilters/SyscallPolicy.cpp:
+        (WebKit::SyscallPolicy::addDefaultWebProcessPolicy):
+
 2015-03-26  Antti Koivisto  <[email protected]>
 
         Remove unneeded isConditionalRequest check from NetworkResourceLoader

Modified: trunk/Source/WebKit2/Shared/linux/SeccompFilters/SyscallPolicy.cpp (182020 => 182021)


--- trunk/Source/WebKit2/Shared/linux/SeccompFilters/SyscallPolicy.cpp	2015-03-26 18:49:40 UTC (rev 182020)
+++ trunk/Source/WebKit2/Shared/linux/SeccompFilters/SyscallPolicy.cpp	2015-03-26 19:00:05 UTC (rev 182021)
@@ -135,7 +135,11 @@
 
     // Shared libraries, plugins and fonts.
     addDirectoryPermission(ASCIILiteral("/lib"), Read);
+    addDirectoryPermission(ASCIILiteral("/lib32"), Read);
+    addDirectoryPermission(ASCIILiteral("/lib64"), Read);
     addDirectoryPermission(ASCIILiteral("/usr/lib"), Read);
+    addDirectoryPermission(ASCIILiteral("/usr/lib32"), Read);
+    addDirectoryPermission(ASCIILiteral("/usr/lib64"), Read);
     addDirectoryPermission(ASCIILiteral("/usr/share"), Read);
 
     // SSL Certificates.
@@ -186,13 +190,50 @@
     // Needed by D-Bus.
     addFilePermission(ASCIILiteral("/var/lib/dbus/machine-id"), Read);
 
+    // Needed by at-spi2.
+    // FIXME This is too permissive: https://bugs.webkit.org/show_bug.cgi?id=143004
+    addDirectoryPermission("/run/user/" + String::number(getuid()), ReadAndWrite);
+
+    // Needed by WebKit's memory pressure handler
+    addFilePermission(ASCIILiteral("/sys/fs/cgroup/memory/memory.pressure_level"), Read);
+    addFilePermission(ASCIILiteral("/sys/fs/cgroup/memory/cgroup.event_control"), Read);
+
     char* homeDir = getenv("HOME");
     if (homeDir) {
         // X11 connection token.
         addFilePermission(String::fromUTF8(homeDir) + "/.Xauthority", Read);
-        // MIME type resolution.
-        addDirectoryPermission(String::fromUTF8(homeDir) +  "/.local/share/mime", Read);
     }
+
+    // MIME type resolution.
+    char* dataHomeDir = getenv("XDG_DATA_HOME");
+    if (dataHomeDir)
+        addDirectoryPermission(String::fromUTF8(dataHomeDir) + "/mime", Read);
+    else if (homeDir)
+        addDirectoryPermission(String::fromUTF8(homeDir) + "/.local/share/mime", Read);
+
+#if ENABLE(WEBGL) || ENABLE(ACCELERATED_2D_CANVAS)
+    // Needed on most non-Debian distros by libxshmfence <= 1.1, or newer
+    // libxshmfence with older kernels (linux <= 3.16), for DRI3 shared memory.
+    // FIXME Try removing this permission when we can rely on a newer libxshmfence.
+    // See http://code.google.com/p/chromium/issues/detail?id=415681
+    addDirectoryPermission(ASCIILiteral("/var/tmp"), ReadAndWrite);
+
+    // Optional Mesa DRI configuration file
+    addFilePermission(ASCIILiteral("/etc/drirc"), Read);
+    if (homeDir)
+        addFilePermission(String::fromUTF8(homeDir) + "/.drirc", Read);
+
+    // Mesa uses udev.
+    addDirectoryPermission(ASCIILiteral("/etc/udev"), Read);
+    addDirectoryPermission(ASCIILiteral("/run/udev"), Read);
+    addDirectoryPermission(ASCIILiteral("/sys/bus"), Read);
+    addDirectoryPermission(ASCIILiteral("/sys/class"), Read);
+    addDirectoryPermission(ASCIILiteral("/sys/devices"), Read);
+#endif
+
+    // Needed by NVIDIA proprietary graphics driver
+    if (homeDir)
+        addDirectoryPermission(String::fromUTF8(homeDir) + "/.nv", ReadAndWrite);
 }
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to