⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 264283 in webkit


Ignore:
Timestamp:
Jul 12, 2020, 11:53:53 AM (6 years ago)
Author:
Darin Adler
Message:

REGRESSION (r261152): 9 blocks of critical sandboxing code disabled because they are guarded with HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
​https://bugs.webkit.org/show_bug.cgi?id=214233

Reviewed by Per Arne Vollan.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const): Remove #if HAVE.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Ditto.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): Ditto.
(WebKit::WebPageProxy::loadRequestWithNavigationShared): Ditto.
(WebKit::WebPageProxy::loadFile): Ditto.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shouldSendPendingMessage): Ditto.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): Ditto.

Location:
trunk/Source/WebKit
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r264271 r264283  
     12020-07-12  Darin Adler  <darin@apple.com>
     2
     3        REGRESSION (r261152): 9 blocks of critical sandboxing code disabled because they are guarded with HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
     4        https://bugs.webkit.org/show_bug.cgi?id=214233
     5
     6        Reviewed by Per Arne Vollan.
     7
     8        * NetworkProcess/NetworkResourceLoadParameters.cpp:
     9        (WebKit::NetworkResourceLoadParameters::encode const): Remove #if HAVE.
     10        * UIProcess/Cocoa/WebPageProxyCocoa.mm:
     11        (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Ditto.
     12        * UIProcess/WebPageProxy.cpp:
     13        (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): Ditto.
     14        (WebKit::WebPageProxy::loadRequestWithNavigationShared): Ditto.
     15        (WebKit::WebPageProxy::loadFile): Ditto.
     16        * UIProcess/WebProcessProxy.cpp:
     17        (WebKit::WebProcessProxy::shouldSendPendingMessage): Ditto.
     18        * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
     19        (WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): Ditto.
     20
    1212020-07-11  Darin Adler  <darin@apple.com>
    222
  • trunk/Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp

    r262994 r264283  
    6767    if (request.url().isLocalFile()) {
    6868        SandboxExtension::Handle requestSandboxExtension;
    69 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
     69#if ENABLE(SANDBOX_EXTENSIONS)
    7070        if (networkProcessAuditToken)
    7171            SandboxExtension::createHandleForReadByAuditToken(request.url().fileSystemPath(), *networkProcessAuditToken, requestSandboxExtension);
    7272        else
    7373            SandboxExtension::createHandle(request.url().fileSystemPath(), SandboxExtension::Type::ReadOnly, requestSandboxExtension);
    74 #else
    75         SandboxExtension::createHandle(request.url().fileSystemPath(), SandboxExtension::Type::ReadOnly, requestSandboxExtension);
    7674#endif
    7775        encoder << requestSandboxExtension;
  • trunk/Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm

    r263774 r264283  
    185185        BOOL isDirectory;
    186186        if ([[NSFileManager defaultManager] fileExistsAtPath:files[0] isDirectory:&isDirectory] && !isDirectory) {
    187 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    188187            ASSERT(process().connection() && process().connection()->getAuditToken());
    189188            if (process().connection() && process().connection()->getAuditToken())
    … …  
    191190            else
    192191                SandboxExtension::createHandle("/", SandboxExtension::Type::ReadOnly, fileReadHandle);
    193 #else
    194             SandboxExtension::createHandle("/", SandboxExtension::Type::ReadOnly, fileReadHandle);
    195 #endif
    196192            willAcquireUniversalFileReadSandboxExtension(m_process);
    197193        }
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r264224 r264283  
    11811181}
    11821182
     1183#if !ENABLE(SANDBOX_EXTENSIONS)
     1184
     1185void WebPageProxy::maybeInitializeSandboxExtensionHandle(WebProcessProxy&, const URL&, const URL&, SandboxExtension::Handle&, bool)
     1186{
     1187}
     1188
     1189#else
     1190
    11831191void WebPageProxy::maybeInitializeSandboxExtensionHandle(WebProcessProxy& process, const URL& url, const URL& resourceDirectoryURL, SandboxExtension::Handle& sandboxExtensionHandle, bool checkAssumedReadAccessToResourceURL)
    11841192{
    … …  
    11861194        return;
    11871195
    1188 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    11891196    // If the process is still launching then it does not have a PID yet. We will take care of creating the sandbox extension
    11901197    // once the process has finished launching.
    11911198    if (process.isLaunching() || process.wasTerminated())
    11921199        return;
    1193 #endif
    11941200
    11951201    if (!resourceDirectoryURL.isEmpty()) {
    … …  
    11971203            return;
    11981204
    1199 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    12001205        ASSERT(process.connection() && process.connection()->getAuditToken());
    12011206        bool createdExtension = false;
    … …  
    12091214            return;
    12101215        }
    1211 #else
    1212         if (SandboxExtension::createHandle(resourceDirectoryURL.fileSystemPath(), SandboxExtension::Type::ReadOnly, sandboxExtensionHandle)) {
    1213             process.assumeReadAccessToBaseURL(*this, resourceDirectoryURL.string());
    1214             return;
    1215         }
    1216 #endif
    12171216    }
    12181217
    … …  
    12231222    RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!WebKit::isInspectorPage(*this));
    12241223
    1225 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    12261224    ASSERT(process.connection() && process.connection()->getAuditToken());
    12271225    bool createdExtension = false;
    … …  
    12351233        return;
    12361234    }
    1237 #else
    1238     if (SandboxExtension::createHandle("/", SandboxExtension::Type::ReadOnly, sandboxExtensionHandle)) {
    1239         willAcquireUniversalFileReadSandboxExtension(process);
    1240         return;
    1241     }
    1242 #endif
    12431235
    12441236#if PLATFORM(COCOA)
    … …  
    12521244    if (basePath.isNull())
    12531245        return;
    1254 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    12551246    if (process.connection() && process.connection()->getAuditToken())
    12561247        createdExtension = SandboxExtension::createHandleForReadByAuditToken(basePath, *(process.connection()->getAuditToken()), sandboxExtensionHandle);
    … …  
    12601251    if (createdExtension)
    12611252        process.assumeReadAccessToBaseURL(*this, baseURL.string());
    1262 #else
    1263     if (SandboxExtension::createHandle(basePath, SandboxExtension::Type::ReadOnly, sandboxExtensionHandle))
    1264         process.assumeReadAccessToBaseURL(*this, baseURL.string());
    1265 #endif
    1266 }
     1253}
     1254
     1255#endif
    12671256
    12681257#if !PLATFORM(COCOA)
     1258
    12691259void WebPageProxy::addPlatformLoadParameters(WebProcessProxy&, LoadParameters&)
    12701260{
    12711261}
     1262
    12721263#endif
    12731264
    … …  
    13301321    navigation.setIsLoadedWithNavigationShared(true);
    13311322
    1332 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    13331323    if (!process->isLaunching() || !url.isLocalFile())
    13341324        process->send(Messages::WebPage::LoadRequest(loadParameters), webPageID);
    13351325    else
    13361326        process->send(Messages::WebPage::LoadRequestWaitingForProcessLaunch(loadParameters, m_pageLoadState.resourceDirectoryURL(), m_identifier, true), webPageID);
    1337 #else
    1338     process->send(Messages::WebPage::LoadRequest(loadParameters), webPageID);
    1339 #endif
    13401327    process->startResponsivenessTimer();
    13411328}
    … …  
    13881375    addPlatformLoadParameters(m_process, loadParameters);
    13891376
    1390 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    13911377    if (m_process->isLaunching())
    13921378        send(Messages::WebPage::LoadRequestWaitingForProcessLaunch(loadParameters, resourceDirectoryURL, m_identifier, checkAssumedReadAccessToResourceURL));
    13931379    else
    13941380        send(Messages::WebPage::LoadRequest(loadParameters));
    1395 #else
    1396     send(Messages::WebPage::LoadRequest(loadParameters));
    1397 #endif
    13981381    m_process->startResponsivenessTimer();
    13991382
  • trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp

    r264178 r264283  
    359359bool WebProcessProxy::shouldSendPendingMessage(const PendingMessage& message)
    360360{
    361 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    362361    if (message.encoder->messageName() == IPC::MessageName::WebPage_LoadRequestWaitingForProcessLaunch) {
    363362        auto buffer = message.encoder->buffer();
    … …  
    377376        return false;
    378377    }
    379 #endif
    380378    return true;
    381379}
  • trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp

    r264021 r264283  
    140140{
    141141    Optional<SandboxExtension::Handle> sandboxExtensionHandle;
     142
     143#if ENABLE(SANDBOX_EXTENSIONS)
    142144    if (url.isLocalFile()) {
    143145        SandboxExtension::Handle handle;
    … …  
    145147
    146148        auto createExtension = [&] {
    147 #if HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
    148149            if (auto auditToken = m_manager.gpuProcessConnection().auditToken())
    149150                return SandboxExtension::createHandleForReadByAuditToken(fileSystemPath, auditToken.value(), handle);
    150 #endif
    151 
    152151            return SandboxExtension::createHandle(fileSystemPath, SandboxExtension::Type::ReadOnly, handle);
    153152        };
    … …  
    162161        sandboxExtensionHandle = WTFMove(handle);
    163162    }
     163#endif
    164164
    165165    connection().sendWithAsyncReply(Messages::RemoteMediaPlayerProxy::Load(url, sandboxExtensionHandle, contentType, keySystem), [weakThis = makeWeakPtr(*this)](auto&& configuration) {
Note: See TracChangeset for help on using the changeset viewer.