From d44b30996636c92a3d4634111f029f703e133743 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 9 Aug 2024 15:56:21 +0200 Subject: [PATCH 1/5] Issue #2554 - Block access to 0.0.0.0 on non-Windows OSes. Resolves #2554. --- modules/libpref/init/all.js | 10 ++++++++++ netwerk/dns/nsDNSService2.cpp | 11 +++++++++++ netwerk/dns/nsDNSService2.h | 1 + 3 files changed, 22 insertions(+) diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 502ef3f71a..ab47fed8b7 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1885,6 +1885,16 @@ pref("network.dns.disablePrefetch", false); // rejected before being given to DNS. RFC 7686 pref("network.dns.blockDotOnion", true); +// This preference controls whether to block access to 0.0.0.0 +// to mitigate local access issues in *NIX network stacks. +#if defined(XP_WIN) +// Windows is not affected, so don't block it there. +// XXX: any other OSes not having this issue? +pref("network.dns.blockQuad0", false); +#else +pref("network.dns.blockQuad0", true); +#endif + // These domains are treated as localhost equivalent pref("network.dns.localDomains", ""); diff --git a/netwerk/dns/nsDNSService2.cpp b/netwerk/dns/nsDNSService2.cpp index 29597b9b98..f236e3b097 100644 --- a/netwerk/dns/nsDNSService2.cpp +++ b/netwerk/dns/nsDNSService2.cpp @@ -48,6 +48,7 @@ static const char kPrefIPv4OnlyDomains[] = "network.dns.ipv4OnlyDomains"; static const char kPrefDisableIPv6[] = "network.dns.disableIPv6"; static const char kPrefDisablePrefetch[] = "network.dns.disablePrefetch"; static const char kPrefBlockDotOnion[] = "network.dns.blockDotOnion"; +static const char kPrefBlockQuad0[] = "network.dns.blockQuad0"; static const char kPrefDnsLocalDomains[] = "network.dns.localDomains"; static const char kPrefDnsOfflineLocalhost[] = "network.dns.offline-localhost"; static const char kPrefDnsNotifyResolution[] = "network.dns.notifyResolution"; @@ -537,6 +538,7 @@ nsDNSService::Init() bool offlineLocalhost = true; bool disablePrefetch = false; bool blockDotOnion = true; + bool blockQuad0 = false; int proxyType = nsIProtocolProxyService::PROXYCONFIG_DIRECT; bool notifyResolution = false; @@ -561,6 +563,7 @@ nsDNSService::Init() prefs->GetBoolPref(kPrefDnsOfflineLocalhost, &offlineLocalhost); prefs->GetBoolPref(kPrefDisablePrefetch, &disablePrefetch); prefs->GetBoolPref(kPrefBlockDotOnion, &blockDotOnion); + prefs->GetBoolPref(kPrefBlockQuad0, &blockQuad0); // If a manual proxy is in use, disable prefetch implicitly prefs->GetIntPref("network.proxy.type", &proxyType); @@ -579,6 +582,7 @@ nsDNSService::Init() prefs->AddObserver(kPrefDnsOfflineLocalhost, this, false); prefs->AddObserver(kPrefDisablePrefetch, this, false); prefs->AddObserver(kPrefBlockDotOnion, this, false); + prefs->AddObserver(kPrefBlockQuad0, this, false); prefs->AddObserver(kPrefDnsNotifyResolution, this, false); // Monitor these to see if there is a change in proxy configuration @@ -612,6 +616,7 @@ nsDNSService::Init() mOfflineLocalhost = offlineLocalhost; mDisableIPv6 = disableIPv6; mBlockDotOnion = blockDotOnion; + mBlockQuad0 = blockQuad0; // Disable prefetching either by explicit preference or if a manual proxy is configured mDisablePrefetch = disablePrefetch || (proxyType == nsIProtocolProxyService::PROXYCONFIG_MANUAL); @@ -697,6 +702,12 @@ nsDNSService::PreprocessHostname(bool aLocalDomain, return NS_ERROR_UNKNOWN_HOST; } + // Enforce RFC 7686 + if (mBlockQuad0 && + aInput.EqualsASCII("0.0.0.0")) { + return NS_ERROR_UNKNOWN_HOST; + } + if (aLocalDomain) { aACE.AssignLiteral("localhost"); return NS_OK; diff --git a/netwerk/dns/nsDNSService2.h b/netwerk/dns/nsDNSService2.h index 9912099012..68c91b2316 100644 --- a/netwerk/dns/nsDNSService2.h +++ b/netwerk/dns/nsDNSService2.h @@ -62,6 +62,7 @@ private: bool mDisableIPv6; bool mDisablePrefetch; bool mBlockDotOnion; + bool mBlockQuad0; bool mFirstTime; bool mNotifyResolution; bool mOfflineLocalhost; From fad481b61207d12815ee52ccce7f2b8ec909cbce Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 9 Aug 2024 16:18:37 +0200 Subject: [PATCH 2/5] Issue #2554 - Follow-up: Correct code comment (no functional changes) --- netwerk/dns/nsDNSService2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netwerk/dns/nsDNSService2.cpp b/netwerk/dns/nsDNSService2.cpp index f236e3b097..eb53d4829a 100644 --- a/netwerk/dns/nsDNSService2.cpp +++ b/netwerk/dns/nsDNSService2.cpp @@ -702,7 +702,7 @@ nsDNSService::PreprocessHostname(bool aLocalDomain, return NS_ERROR_UNKNOWN_HOST; } - // Enforce RFC 7686 + // Block access to the "this machine" address. if (mBlockQuad0 && aInput.EqualsASCII("0.0.0.0")) { return NS_ERROR_UNKNOWN_HOST; From dd4e0601358b952d377e795f13aa60086b6026ae Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 9 Aug 2024 19:17:49 +0200 Subject: [PATCH 3/5] Issue #2554 - Follow-up: Also block [::] and [::0.0.0.0] IPv6 addresses. --- netwerk/dns/nsDNSService2.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/netwerk/dns/nsDNSService2.cpp b/netwerk/dns/nsDNSService2.cpp index eb53d4829a..e8e257d0f9 100644 --- a/netwerk/dns/nsDNSService2.cpp +++ b/netwerk/dns/nsDNSService2.cpp @@ -704,7 +704,9 @@ nsDNSService::PreprocessHostname(bool aLocalDomain, // Block access to the "this machine" address. if (mBlockQuad0 && - aInput.EqualsASCII("0.0.0.0")) { + (aInput.EqualsLiteral("0.0.0.0") || + aInput.EqualsLiteral("::") || + aInput.EqualsLiteral("::0.0.0.0"))) { return NS_ERROR_UNKNOWN_HOST; } From 8e3c07960d1333e17214443fdbfccfff02d1e012 Mon Sep 17 00:00:00 2001 From: Moonchild Date: Fri, 9 Aug 2024 19:35:21 +0200 Subject: [PATCH 4/5] No issue - Update TwemojiMozilla to 15.1.2 Fixes out-of-bounds watermelon emoji size. --- toolkit/fonts/TwemojiMozilla.ttf | Bin 1619304 -> 1619236 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/toolkit/fonts/TwemojiMozilla.ttf b/toolkit/fonts/TwemojiMozilla.ttf index 016fc4f05a4fe0fef1325797eac09760cc4d9c1d..c10c52e926e510dce7d01b4c49d48f5421e5c3b4 100644 GIT binary patch delta 49597 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 delta 49660 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 From 5bd7896c05050ce6e36fbdc989c57990e817738b Mon Sep 17 00:00:00 2001 From: Moonchild Date: Mon, 12 Aug 2024 11:23:35 +0200 Subject: [PATCH 5/5] Issue #1925 - Follow-up: Fix debug builds (namespace) --- layout/style/nsStyleStruct.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h index b7711f75a7..b29adafcbe 100644 --- a/layout/style/nsStyleStruct.h +++ b/layout/style/nsStyleStruct.h @@ -1259,13 +1259,13 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleBorder uint8_t GetBorderStyle(mozilla::Side aSide) const { - NS_ASSERTION(aSide <= eSideLeft, "bad side"); + NS_ASSERTION(aSide <= mozilla::eSideLeft, "bad side"); return mBorderStyle[aSide]; } void SetBorderStyle(mozilla::Side aSide, uint8_t aStyle) { - NS_ASSERTION(aSide <= eSideLeft, "bad side"); + NS_ASSERTION(aSide <= mozilla::eSideLeft, "bad side"); mBorderStyle[aSide] = aStyle; mComputedBorder.Side(aSide) = (HasVisibleStyle(aSide) ? mBorder.Side(aSide) : 0);