Firefox · Networking
CVE-2026-16380
Logic Error in Networking
Overview
Medium
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Files Changed
netwerk/protocol/http/nsHttpChannel.cpp
Patch
diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp
index e1fdf672424..b19a9c20d3e 100644
--- a/netwerk/protocol/http/nsHttpChannel.cpp
+++ b/netwerk/protocol/http/nsHttpChannel.cpp
@@ -2073,10 +2073,14 @@ LNAPermission nsHttpChannel::UpdateLocalNetworkAccessPermissions(
mConnectionInfo && !mConnectionInfo->GetRoutedHost().IsEmpty() &&
(!mConnectionInfo->GetRoutedHost().Equals(mConnectionInfo->GetOrigin()) ||
mConnectionInfo->RoutedPort() != mConnectionInfo->OriginPort());
+ // This exemption (same origin) should apply only to secure contexts.
+ const bool triggeringPrincipalIsPotentiallyTrustworthy =
+ mLoadInfo->TriggeringPrincipal()->GetIsOriginPotentiallyTrustworthy();
bool isSameOrigin = false;
nsresult rv =
mLoadInfo->TriggeringPrincipal()->IsSameOrigin(mURI, &isSameOrigin);
- if (NS_SUCCEEDED(rv) && isSameOrigin && !reroutedElsewhere) {
+ if (NS_SUCCEEDED(rv) && isSameOrigin && !reroutedElsewhere &&
+ triggeringPrincipalIsPotentiallyTrustworthy) {
userPerms = LNAPermission::Granted;
return userPerms;
}
@@ -2118,18 +2122,14 @@ LNAPermission nsHttpChannel::UpdateLocalNetworkAccessPermissions(
}
// Check if we should block LNA requests from insecure contexts
- if (StaticPrefs::network_lna_block_insecure_contexts()) {
- nsCOMPtr<nsIPrincipal> triggeringPrincipal =
- mLoadInfo->TriggeringPrincipal();
- if (triggeringPrincipal &&
- !triggeringPrincipal->GetIsOriginPotentiallyTrustworthy()) {
- LOG(
- ("nsHttpChannel::UpdateLocalNetworkAccessPermissions [this=%p] "
- "blocking LNA request from insecure context\n",
- this));
- userPerms = LNAPermission::Denied;
- return userPerms;
- }
+ if (StaticPrefs::network_lna_block_insecure_contexts() &&
+ !triggeringPrincipalIsPotentiallyTrustworthy) {
+ LOG(
+ ("nsHttpChannel::UpdateLocalNetworkAccessPermissions [this=%p] "
+ "blocking LNA request from insecure context\n",
+ this));
+ userPerms = LNAPermission::Denied;
+ return userPerms;
}
// Step 3
Loading diff…
References
On This Page