Firefox · Networking
CVE-2026-92036
Logic Error in Networking
Overview
High
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Changed Functions
| Function | Change | Notes |
|---|---|---|
ifnetwerk/protocol/http/nsHttpChannel.cpp |
modified |
Files Changed
netwerk/protocol/http/nsHttpChannel.cpp
Patch
diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp
index b366a7dfd9d..4e5a40c5127 100644
--- a/netwerk/protocol/http/nsHttpChannel.cpp
+++ b/netwerk/protocol/http/nsHttpChannel.cpp
@@ -5249,6 +5249,12 @@ nsHttpChannel::OnCacheEntryCheck(nsICacheEntry* entry, uint32_t* aResult) {
LOG(("nsHttpChannel::OnCacheEntryCheck enter [channel=%p entry=%p]", this,
entry));
+ if (mCacheWaitTimedOut) {
+ LOG((" cache entry check arrived after backstop timeout, declining"));
+ *aResult = ENTRY_NOT_WANTED;
+ return NS_OK;
+ }
+
NoteCacheEntryKeyMatch(entry);
nsAutoCString cacheControlRequestHeader;
@@ -12290,10 +12296,16 @@ nsresult nsHttpChannel::OnCacheWaitTimeout() {
LOG((" cache entry wait timed out, forcing network [this=%p]", this));
mCacheWaitTimedOut = true;
- // Stop treating the outstanding cache open as blocking. A late
- // OnCacheEntryAvailable will be ignored (see mCacheWaitTimedOut).
+ // Stop treating the outstanding cache open as blocking. We stay registered
+ // as a callback on the entry, but a late OnCacheEntryCheck or
+ // OnCacheEntryAvailable will be declined/ignored (see mCacheWaitTimedOut).
StoreWaitForCacheEntry(LoadWaitForCacheEntry() & ~WAIT_FOR_CACHE_ENTRY);
+ mCacheInputStream.CloseAndRelease();
+ mAvailableCachedAltDataType.Truncate();
+ StoreDeliveringAltData(false);
+ mAltDataLength = -1;
+
nsresult rv = TriggerNetwork();
if (NS_FAILED(rv)) {
CloseCacheEntry(false);
Loading diff…
References
On This Page