Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5d1be2cedef6f18889a7c6bb55899aed91c7f16f
      
https://github.com/WebKit/WebKit/commit/5d1be2cedef6f18889a7c6bb55899aed91c7f16f
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-13 (Thu, 13 Aug 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageCache.h
    M Source/WebKit/NetworkProcess/storage/CacheStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageManager.h
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
    M Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp

  Log Message:
  -----------
  Validate connection access to DOMCache with DOMCacheIdentifier
rdar://176470206

Reviewed by Chris Dumez.

Many CacheStorage-related messages sent to NetworkStorageManager only carries 
DOMCacheIdentifier when asking to operate
on DOMCache storage, and NetworkStorageManager does not check whether the 
sender process actually has access to
requested cache. This lets a compromised process forge DOMCacheIdentifier and 
access data from other origins. To fix it,
this patch stores the origin in CacheStorageManager and adding an origin 
accessor to CacheStorageCache, so that
NetworkStorageManager can run isSiteAllowedForConnection in 
CacheStorage-related message handlers.

* Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp:
(WebKit::CacheStorageCache::origin const):
* Source/WebKit/NetworkProcess/storage/CacheStorageCache.h:
* Source/WebKit/NetworkProcess/storage/CacheStorageManager.cpp:
(WebKit::CacheStorageManager::create):
(WebKit::CacheStorageManager::CacheStorageManager):
* Source/WebKit/NetworkProcess/storage/CacheStorageManager.h:
(WebKit::CacheStorageManager::origin const):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::cacheStorageRemoveCache):
(WebKit::NetworkStorageManager::cacheStorageReference):
(WebKit::NetworkStorageManager::cacheStorageDereference):
(WebKit::NetworkStorageManager::cacheStorageRetrieveRecords):
(WebKit::NetworkStorageManager::cacheStorageRemoveRecords):
(WebKit::NetworkStorageManager::cacheStoragePutRecords):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::cacheStorageManager):

Originally-landed-as: 305413.900@safari-7624-branch (1ab57a04be24). 
rdar://184745108
Canonical link: https://commits.webkit.org/319138@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to