ssl_error_rx_malformed_server_hello
Moderator: trava90
Forum rules
This board is for technical/general usage questions and troubleshooting for the Pale Moon browser only.
Technical issues and questions not related to the Pale Moon browser should be posted in other boards!
Please keep off-topic and general discussion out of this board, thank you!
This board is for technical/general usage questions and troubleshooting for the Pale Moon browser only.
Technical issues and questions not related to the Pale Moon browser should be posted in other boards!
Please keep off-topic and general discussion out of this board, thank you!
Re: ssl_error_rx_malformed_server_hello
hi moonchild,
i'm facing same error on another public site. i know this site would give a 404 also (thats expected, not the point here), but its reproducable.
https://kempte.ch/kemp-documentation
i also captured a tcpdump of the tls handshake and have it handy in case you need it?
i can also try to take a same tls handshake on the 32.0.1 version and compare too when i get home.
i'm facing same error on another public site. i know this site would give a 404 also (thats expected, not the point here), but its reproducable.
https://kempte.ch/kemp-documentation
i also captured a tcpdump of the tls handshake and have it handy in case you need it?
i can also try to take a same tls handshake on the 32.0.1 version and compare too when i get home.
Re: ssl_error_rx_malformed_server_hello
I actually get the error myself on that one (another bitly site, actually).
I'll investigate and see what's going on.
Please do send me the tcpdump so I can check.
I'll investigate and see what's going on.
Please do send me the tcpdump so I can check.
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
Re: ssl_error_rx_malformed_server_hello
I've verified this is indeed the TLS 1.3 downgrade sentinel throwing the error.
Flipping the option off in NSS allows for the connection to be established. I'll pref it for users who need this Issue #2180 (UXP). I've also contacted bitly about this issue as it seems at least some of their edge servers are misconfigured.
Flipping the option off in NSS allows for the connection to be established. I'll pref it for users who need this Issue #2180 (UXP). I've also contacted bitly about this issue as it seems at least some of their edge servers are misconfigured.
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
Re: ssl_error_rx_malformed_server_hello
whats the best way to send you the files?
Re: ssl_error_rx_malformed_server_hello
I think I already figured it out but if you still want to send the tcpdump, just zip it up and attach to a PM
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
Re: ssl_error_rx_malformed_server_hello
I will forward this thread to OPNsense so that they may consider if the firewall handshaking is contributing to this problem.
Re: ssl_error_rx_malformed_server_hello
sent, thanks.
Re: ssl_error_rx_malformed_server_hello
Thanks. It indeed shows the server hello was downgraded in the 32.1.0 handshake.
It does seem to be very fickle though, as I can't reproduce the error on the same system on a fresh build but the current release build continues to show the issue. it's totally weird, but a downgraded connection fail definitely happens here so yeah, my update should address that at least.
EDIT: The behaviour is actually as-expected when taking into account permanent redirects and various levels of caching. starting fresh though it does exactly what is expected, i.e.: failure to connect unless the downgrade sentinel is switched off.
EDIT: The behaviour is actually as-expected when taking into account permanent redirects and various levels of caching. starting fresh though it does exactly what is expected, i.e.: failure to connect unless the downgrade sentinel is switched off.
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
- Anon658153
- Moongazer
- Posts: 14
- Joined: 2022-05-04, 05:32
Re: ssl_error_rx_malformed_server_hello
Off-topic:
I've chosen to offtopic-tag all that because I believe the subject of the security of TLS 1.3 vs TLS 1.2 was brought up only because the suggested "fix" is not a fix and is actually a Very Bad Idea.As someone a bit more paranoid and not at all surprised by $security_breach_of_the_week, disabling TLS 1.3 in the browser (by setting security.tls.version.max=3) is a footgun. TLS 1.2 may still be good enough for most use, but I wouldn't trust it to protect something like a connection to a financial institution over public wifi. https://www.cloudflare.com/learning/ssl/why-use-tls-1.3/ It's also possible that changing that setting will affect browser fingerprinting used by things like Cloudflare and Recaptcha, which could lead to loss of access to websites "protected" by them.
I can reproduce the issue with a basic Debian Linux + Apache server VM, which seems to rule out anything interfering with the connection. Based on my testing it seems to, at least partially, be an issue with PM 32.1.0 downgrading TLS 1.3 to 1.2 when it shouldn't. Disabling TLS 1.3 or turning off the downgrade protection are nasty workarounds that don't actually fix the real issue. They might appear to fix it, but I wouldn't do that on my daily-driver browser.
During testing I found that you can work around the issue by setting "security.tls.version.fallback-limit" to "4" in about:config. That will completely disable the ability for the browser to do any TLS fallback, thereby "correcting" the issue of the browser falling back when it shouldn't and then tripping the TLS 1.3 fallback detection.
For reference, the value "4" means "don't perform fallback to any TLS version less than 1.3" and is the same as the default value for that setting in recent versions of Firefox. "Fallback" is where the server advertises a version of TLS but the client can't connect at that version. With fallback-limit set to 4 the browser can still connect to TLS 1.2 servers as it isn't a fallback when the connection starts at a lower version. From a security perspective there's no valid reason for a fallback from TLS 1.3 to TLS 1.2, hence the fallback protection. The default value in PM 32.1.0 is 3, which means by default fallback from TLS 1.3 to TLS 1.2 is "allowed," but fallback from TLS 1.2 to anything lower is not.
I think there are multiple issues at play here. Moonchild's Wireshark screenshot shows the DOWNGRD tag coming from PM, but in my test the tag was sent by Apache. That screenshot also only shows a single TLS connection at TLS 1.2, whereas my test showed an initial connection at TLS 1.3, then a second connection at TLS 1.2. I've attached Wireshark screenshots and packet captures to this post.
Steps to reliably reproduce the issue and my test environment:
For what it's worth, if it were me I'd revert the commit that adds the toggle to disable the fallback detection. I can understand the need for that option five years ago when TLS 1.3 had just been standardized and common support was lacking at best, but it's a major footgun now. IMO the fact that a Google search for the error message returns a bunch of now obsolete and arguably dangerous information only increases the caliber of said footgun.
Let me know if there's any additional testing you'd like me to perform.
- Attachments
-
- pcaps.zip
- (10.98 KiB) Downloaded 1 time
Re: ssl_error_rx_malformed_server_hello
Like I said before, it depends on who you ask.
TLS fallback existing isn't a bad thing. it actually allows you to connect with secure renegotiation to an earlier protocol version. Preventing fallback from TLS 1.3 altogether (even in a secure way) will cause issues elsewhere. The problem here is that a fallback is triggered in a way that is not secure, and that is a problem with server-side configurations. NSS has a sentinel for this which, with our update of the library, got enabled by default with no way for Pale Moon to control this (which will be addressed in the next point release).
Restricting the max TLS version to 1.2 is not a fix; it's a workaround in the interim. Your suggestion to prevent any fallback from TLS 1.3 is an alternative and more risky workaround that retains TLS 1.3 capabilities but may cause breakage on some sites, but also not a fix but a workaround. Even being able to switch off the sentinel as one can do in the next point release onwards is still a workaround, but with even smaller sec impact (will not cause breakage and will also preserve being able to fully use TLS 1.3). The only real solution and fix will have to be addressed server-side preventing this kind of fallback.
All of the workarounds offered though are valid and will not unnecessarily "break" connection security as TLS 1.2, the protocol falling back to, is perfectly fine to use from a practical security perspective. It contains all the features and controls for secure communication accepted by critical services like financial institutions and high-sec environments. Calling the workarounds a footgun is severely overstating things.
TLS fallback existing isn't a bad thing. it actually allows you to connect with secure renegotiation to an earlier protocol version. Preventing fallback from TLS 1.3 altogether (even in a secure way) will cause issues elsewhere. The problem here is that a fallback is triggered in a way that is not secure, and that is a problem with server-side configurations. NSS has a sentinel for this which, with our update of the library, got enabled by default with no way for Pale Moon to control this (which will be addressed in the next point release).
Restricting the max TLS version to 1.2 is not a fix; it's a workaround in the interim. Your suggestion to prevent any fallback from TLS 1.3 is an alternative and more risky workaround that retains TLS 1.3 capabilities but may cause breakage on some sites, but also not a fix but a workaround. Even being able to switch off the sentinel as one can do in the next point release onwards is still a workaround, but with even smaller sec impact (will not cause breakage and will also preserve being able to fully use TLS 1.3). The only real solution and fix will have to be addressed server-side preventing this kind of fallback.
All of the workarounds offered though are valid and will not unnecessarily "break" connection security as TLS 1.2, the protocol falling back to, is perfectly fine to use from a practical security perspective. It contains all the features and controls for secure communication accepted by critical services like financial institutions and high-sec environments. Calling the workarounds a footgun is severely overstating things.
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
- Anon658153
- Moongazer
- Posts: 14
- Joined: 2022-05-04, 05:32
Re: ssl_error_rx_malformed_server_hello
My explanation of fallback may not have been clear and I failed to site any authoritative sources with it. This post has authoritative citations.
I stand by my claim that changing the setting "security.tls.version.fallback-limit" to "4" will have no impact whatsoever on security and will not cause any interoperability issues. This is because there is no fallback from TLS 1.3 to TLS 1.2. Versions of TLS below 1.2 are deprecated. Therefore, there should no longer be fallback in TLS, at least by default, and the default for the fallback-limit setting should have been changed to "4" prior to this discussion. My authoritative sources for those statements are RFC 8446 and RFC 8996, along with RFC 2119 and RFC 8174 for clarity.
First off, please review RFC 2119 https://www.rfc-editor.org/rfc/rfc2119 and the short update to it RFC 8174 https://www.rfc-editor.org/rfc/rfc8174 to clear up any misunderstandings related to common key terms used in RFCs. I've copy/pasted them into the hide tags below:
RFC 2119
RFC 8174
I'll start with the easy one. TLS versions below 1.2 are deprecated. RFC 8996 is titled "Deprecating TLS 1.0 and TLS 1.1." https://www.rfc-editor.org/rfc/rfc8996 If the title is insufficient, the names for sections four and five, titled "Do Not Use TLS 1.0" and "Do Not Use TLS 1.1" respectively, should be sufficient.
This next part is longer as I need to clear up your misunderstandings regarding TLS 1.3. According to RFC 8446, titled "The Transport Layer Security (TLS) Protocol Version 1.3," https://www.rfc-editor.org/rfc/rfc8446 there is no renegotiation and no fallback with TLS 1.3. Page 27 contains the following:
Next, your code commit https://repo.palemoon.org/MoonchildProd ... 33bcb1519c violates RFC 8446 when the new toggle is changed. Page 31 of RFC 8446 states the following:
Giving that code commit some thought, I can think of some EXTREMELY limited use cases for that toggle, all related to misconfigured or poorly-implemented TLS on local devices. It should not used to "regain access" to public websites such as the proposed use here.
I have no authoritative source for my claim that changing the preference value of "security.tls.version.downgrade-limit" to "4" will function as a short-term fix to the current TLS 1.3 downgrade bug in Pale Moon. It is easy enough to test yourself that it shouldn't need an authoritative source. The authoritative sources above are proof that it will not cause any harm, so changing that will, at worst, have no practical effect.
Finally, I'd like to challenge your claim that the issue is server-side and there's nothing to fix in Pale Moon. As I obviously have no authoritative sources for this, I'll ask some questions which rely on information that can be easily and independently verified:
If the problem is server-side, why is it that, out of Chromium 111, Firefox 111, Edge 111, Firefox 102.8, Opera 97, Pale Moon 3.1.0, and Pale Moon 3.0.1, all at new profile default settings, only Pale Moon 3.1.0 has the issue connecting to servers capable of both TLS 1.3 and TLS 1.2?
If the problem is server-side, why is it that, out of Chromium 111, Firefox 111, Edge 111, Firefox 102.8, Opera 97, Pale Moon 3.1.0, and Pale Moon 3.0.1, all at new profile default settings, only Pale Moon 3.1.0 and Pale Moon 3.0.1 are unable to connect at all to servers which are only capable of TLS 1.3?
If the problem is server-side, why is it that, out of Chromium 111, Firefox 111, Edge 111, Firefox 102.8, Opera 97, Pale Moon 3.1.0, and Pale Moon 3.0.1, all at new profile default settings, only Pale Moon 3.1.0 and Pale Moon 3.0.1 show both TLS 1.3 and TLS 1.2 in packet captures of connection attempts to TLS 1.3 capable servers?
If the problem is server-side, why is it that changing the fallback-limit setting from "3" to "4" verifiably fixes, across multiple servers, Pale Moon's issues connecting to TLS 1.3 serves using TLS 1.3?
I'm not here to assign blame. I couldn't care less who wrote the offending code or why. It doesn't matter. I would just like to see this fixed, and see workarounds pushed that don't involve disabling or crippling an important protocol. I would also like it made clear that any site which is triggering this bug is a site that Pale Moon could, at least since version 28.14.2, never establish a TLS 1.3 connection to and was always silently degrading down to TLS 1.2. Your proposed workaround will continue this behavior. A simple Wireshark capture will verify as much. This behavior is bad not only because it violates accepted interoperability standards, but also because TLS 1.2 is very much NOT "perfectly secure." My authoritative citations for that are the following Google searches: TLS FREAK, TLS LogJam, TLS BREACH, TLS CRIME, TLS TicketBleed, TLS LUCKY13, and TLS RC4.
For what it's worth, my offer to assist with testing still stands. One of my servers will already work as a test:
(I've added a spaces to try to cut down on web scraper bots and the like)
This link triggers the Pale Moon TLS fallback bug for me: https: //168.235.109.239/
This link does not trigger the bug: https: //www. watnet.org/
The first link, if you change a setting to get past the TLS handshake issue, will give you a cert error. If you add an exception it should give you a 403 page.
The second link should load a plain "website placeholder" page and should not present any errors.
Those are running on the same Apache service and, as far as I can tell, have identical TLS settings. I don't yet know why one works and the other doesn't, but I suspect it might have something to do with SNI as that seems to be the only difference.
I stand by my claim that changing the setting "security.tls.version.fallback-limit" to "4" will have no impact whatsoever on security and will not cause any interoperability issues. This is because there is no fallback from TLS 1.3 to TLS 1.2. Versions of TLS below 1.2 are deprecated. Therefore, there should no longer be fallback in TLS, at least by default, and the default for the fallback-limit setting should have been changed to "4" prior to this discussion. My authoritative sources for those statements are RFC 8446 and RFC 8996, along with RFC 2119 and RFC 8174 for clarity.
First off, please review RFC 2119 https://www.rfc-editor.org/rfc/rfc2119 and the short update to it RFC 8174 https://www.rfc-editor.org/rfc/rfc8174 to clear up any misunderstandings related to common key terms used in RFCs. I've copy/pasted them into the hide tags below:
RFC 2119
This next part is longer as I need to clear up your misunderstandings regarding TLS 1.3. According to RFC 8446, titled "The Transport Layer Security (TLS) Protocol Version 1.3," https://www.rfc-editor.org/rfc/rfc8446 there is no renegotiation and no fallback with TLS 1.3. Page 27 contains the following:
That should be sufficient to clear up the safety of my proposed preference change and proposed change to its default value. According to RFC 8446 there is no fallback from TLS 1.3 to a previous version. According to RFC 8996 TLS versions prior to 1.2 are deprecated, therefore there should not be a default ability for fallback from TLS 1.2 to a previous version. That means, logically, there should not be fallback at all at default settings. A connection is either TLS 1.2 or TLS 1.3. Once it starts at a certain level, it will stay at that level.Because TLS 1.3 forbids renegotiation, if a server has negotiated TLS 1.3 and receives a ClientHello at any other time, it MUST terminate the connection with an "unexpected_message" alert.
If a server established a TLS connection with a previous version of TLS and receives a TLS 1.3 ClientHello in a renegotiation, it MUST retain the previous protocol version. In particular, it MUST NOT negotiate TLS 1.3.
Next, your code commit https://repo.palemoon.org/MoonchildProd ... 33bcb1519c violates RFC 8446 when the new toggle is changed. Page 31 of RFC 8446 states the following:
I've added bold tags to the important sections. To be clear, all versions of Pale Moon prior to 32.1.0, going back at least to 28.14.2, are in violation of that section of the RFC. (28.14.2 is the oldest version for which I still have the Linux tarball.) PM 32.1.0 is the first version not in violation as far as I know.TLS 1.3 has a downgrade protection mechanism embedded in the server's random value. TLS 1.3 servers which negotiate TLS 1.2 or below in response to a ClientHello MUST set the last 8 bytes of their Random
value specially in their ServerHello.
If negotiating TLS 1.2, TLS 1.3 servers MUST set the last 8 bytes of their Random value to the bytes:
44 4F 57 4E 47 52 44 01
If negotiating TLS 1.1 or below, TLS 1.3 servers MUST, and TLS 1.2 servers SHOULD, set the last 8 bytes of their ServerHello.Random value to the bytes:
44 4F 57 4E 47 52 44 00
TLS 1.3 clients receiving a ServerHello indicating TLS 1.2 or below MUST check that the last 8 bytes are not equal to either of these values. TLS 1.2 clients SHOULD also check that the last 8 bytes are not equal to the second value if the ServerHello indicates TLS 1.1 or below. If a match is found, the client MUST abort the handshake with an "illegal_parameter" alert.
Giving that code commit some thought, I can think of some EXTREMELY limited use cases for that toggle, all related to misconfigured or poorly-implemented TLS on local devices. It should not used to "regain access" to public websites such as the proposed use here.
I have no authoritative source for my claim that changing the preference value of "security.tls.version.downgrade-limit" to "4" will function as a short-term fix to the current TLS 1.3 downgrade bug in Pale Moon. It is easy enough to test yourself that it shouldn't need an authoritative source. The authoritative sources above are proof that it will not cause any harm, so changing that will, at worst, have no practical effect.
Finally, I'd like to challenge your claim that the issue is server-side and there's nothing to fix in Pale Moon. As I obviously have no authoritative sources for this, I'll ask some questions which rely on information that can be easily and independently verified:
If the problem is server-side, why is it that, out of Chromium 111, Firefox 111, Edge 111, Firefox 102.8, Opera 97, Pale Moon 3.1.0, and Pale Moon 3.0.1, all at new profile default settings, only Pale Moon 3.1.0 has the issue connecting to servers capable of both TLS 1.3 and TLS 1.2?
If the problem is server-side, why is it that, out of Chromium 111, Firefox 111, Edge 111, Firefox 102.8, Opera 97, Pale Moon 3.1.0, and Pale Moon 3.0.1, all at new profile default settings, only Pale Moon 3.1.0 and Pale Moon 3.0.1 are unable to connect at all to servers which are only capable of TLS 1.3?
If the problem is server-side, why is it that, out of Chromium 111, Firefox 111, Edge 111, Firefox 102.8, Opera 97, Pale Moon 3.1.0, and Pale Moon 3.0.1, all at new profile default settings, only Pale Moon 3.1.0 and Pale Moon 3.0.1 show both TLS 1.3 and TLS 1.2 in packet captures of connection attempts to TLS 1.3 capable servers?
If the problem is server-side, why is it that changing the fallback-limit setting from "3" to "4" verifiably fixes, across multiple servers, Pale Moon's issues connecting to TLS 1.3 serves using TLS 1.3?

I'm not here to assign blame. I couldn't care less who wrote the offending code or why. It doesn't matter. I would just like to see this fixed, and see workarounds pushed that don't involve disabling or crippling an important protocol. I would also like it made clear that any site which is triggering this bug is a site that Pale Moon could, at least since version 28.14.2, never establish a TLS 1.3 connection to and was always silently degrading down to TLS 1.2. Your proposed workaround will continue this behavior. A simple Wireshark capture will verify as much. This behavior is bad not only because it violates accepted interoperability standards, but also because TLS 1.2 is very much NOT "perfectly secure." My authoritative citations for that are the following Google searches: TLS FREAK, TLS LogJam, TLS BREACH, TLS CRIME, TLS TicketBleed, TLS LUCKY13, and TLS RC4.
For what it's worth, my offer to assist with testing still stands. One of my servers will already work as a test:
(I've added a spaces to try to cut down on web scraper bots and the like)
This link triggers the Pale Moon TLS fallback bug for me: https: //168.235.109.239/
This link does not trigger the bug: https: //www. watnet.org/
The first link, if you change a setting to get past the TLS handshake issue, will give you a cert error. If you add an exception it should give you a 403 page.
The second link should load a plain "website placeholder" page and should not present any errors.
Those are running on the same Apache service and, as far as I can tell, have identical TLS settings. I don't yet know why one works and the other doesn't, but I suspect it might have something to do with SNI as that seems to be the only difference.
Re: ssl_error_rx_malformed_server_hello
only once established
the toggle is a workaround, as I already explained multiple times. it is only there to provide users with an option to connect to misconfigured servers or middleware. This is no different than the option added for negotiation of the TLS 1.3 draft spec (which strictly speaking also violates the TLS 1.3 spec).
Pale Moon is a web client. The reality is that servers are misconfigured and devices can have flaws. It is definitely within scope to provide users with the options to still connect.
This is also why by default we still accept TLS 1.0 and 1.1 if that is what the server offers.
Because fallback is disabled in Chromium and Firefox, period. With the exception of whitelists that aren't user-exposed, IIUC.Anon658153 wrote: ↑2023-04-03, 23:28why is it that, out of Chromium 111, Firefox 111, Edge 111, Firefox 102.8, Opera 97, Pale Moon 3.1.0, and Pale Moon 3.0.1, all at new profile default settings, only Pale Moon 3.1.0 and Pale Moon 3.0.1 show both TLS 1.3 and TLS 1.2 in packet captures of connection attempts to TLS 1.3 capable servers?
Because it disables fallback, period.Anon658153 wrote: ↑2023-04-03, 23:28If the problem is server-side, why is it that changing the fallback-limit setting from "3" to "4" verifiably fixes, across multiple servers, Pale Moon's issues connecting to TLS 1.3 serves using TLS 1.3?
None of which are applicable in secure clients like Pale Moon. On top, a lot of those depend on legacy cipher suites which TLS 1.3 simply does not contain, period (it only offers very limited choice of ciphers). i.e.: in a proper implementation of TLS 1.2, it is perfectly secure. In fact, there are also known issues with TLS 1.3, in particular for example with the 0RTT and similar "must go faster" efforts that undermine a proper 3-way handshake for the sake of shaving a few ms off the negotiation.Anon658153 wrote: ↑2023-04-03, 23:28: TLS FREAK, TLS LogJam, TLS BREACH, TLS CRIME, TLS TicketBleed, TLS LUCKY13, and TLS RC4.
See also: https://clienttest.ssllabs.com:8443/ssl ... lient.html with Pale Moon.
Now if you'll excuse me, I have other things that require my attention than discussing misconceptions about TLS in this thread.
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
- Claverhouse
- Hobby Astronomer
- Posts: 27
- Joined: 2020-04-23, 00:30
Re: ssl_error_rx_malformed_server_hello
I get the (Error code: SSL_ERROR_RX_MALFORMED_SERVER_HELLO) bit on my bank ( NatWest in England, using Vodafone's own router/modem [ compulsory ] ); but just refreshing that page clears it.
Pale Moon 32.1.0 64bit
A lot better than 2 months back when --- once past that entry page, NatWest displayed large portions of code gibberish on specific portions of the bank statements...
Pale Moon 32.1.0 64bit
A lot better than 2 months back when --- once past that entry page, NatWest displayed large portions of code gibberish on specific portions of the bank statements...
Re: ssl_error_rx_malformed_server_hello
With Ublock disabled for the page, the error also appears in:
https://transvulcania.es
An error/warning also was shown on FIrefox and Chrome but there after confirming the exception the page loaded with a redirection to
https://transvulcania.utmb.world/es
https://transvulcania.es
An error/warning also was shown on FIrefox and Chrome but there after confirming the exception the page loaded with a redirection to
https://transvulcania.utmb.world/es
Re: ssl_error_rx_malformed_server_hello
Regarding issue "(Error code: SSL_ERROR_RX_MALFORMED_SERVER_HELLO)"* with PM and Zscaler client connector
I realized that some pages were working fine on PM, such as google.com (Google Trust Services LLC), mozilla.org or stackoverflow(let´s encrypt)
whereas most of them were producing the error, including google.es
As firefox was able to load failing pages, I found out that key "security.enterprise_roots.enabled" is true in Firefox but false in PM.
I set to true and all failing pages began to load on PM.
*"Secure Connection Failed
An error occurred during a connection to yandex.com.
SSL received a malformed Server Hello handshake message.
(Error code: SSL_ERROR_RX_MALFORMED_SERVER_HELLO)
I realized that some pages were working fine on PM, such as google.com (Google Trust Services LLC), mozilla.org or stackoverflow(let´s encrypt)
whereas most of them were producing the error, including google.es
As firefox was able to load failing pages, I found out that key "security.enterprise_roots.enabled" is true in Firefox but false in PM.
I set to true and all failing pages began to load on PM.
*"Secure Connection Failed
An error occurred during a connection to yandex.com.
SSL received a malformed Server Hello handshake message.
(Error code: SSL_ERROR_RX_MALFORMED_SERVER_HELLO)
- jobbautista9
- Contributing developer
- Posts: 726
- Joined: 2020-11-03, 06:47
- Location: Philippines
- Contact:
Re: ssl_error_rx_malformed_server_hello
That pref is not enabled by default in my Firefox 112 on Windows, so not sure why yours is different.
I tried enabling it anyway, and it didn't work for https://ircbot.comm-central.org:8080/, which currently has an expired TLS certificate. security.tls.hello_downgrade_check works, and is therefore still the best workaround in this case.

mima-samarto
XUL add-ons developer. You can find a list of add-ons I manage at http://rw.rs/~job/software.html.
My PGP public key (My copy on rw.rs)
Mima avatar by 拝 一樹 of pixiv (Danbooru rehost)
Re: ssl_error_rx_malformed_server_hello
Enabling enterprise roots ( = reading the OS certificate store) comes with potential security drawbacks. More advanced malware will mess with the OS cert store to suppress errors for spoofing domains, something we're by default not vulnerable to because we use our own trust store that isn't that easily manipulated (there is no API to manipulate it outside of the browser, AFAIK)
Just so you are aware of that potential pitfall.
Even so it's strange that that would resolve this error since the error occurs before a TLS connection is established (that is: before any certificate check is performed).
Just so you are aware of that potential pitfall.
Even so it's strange that that would resolve this error since the error occurs before a TLS connection is established (that is: before any certificate check is performed).
"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
- jobbautista9
- Contributing developer
- Posts: 726
- Joined: 2020-11-03, 06:47
- Location: Philippines
- Contact:
Re: ssl_error_rx_malformed_server_hello
Anyway I've been modifying Firefox's about:config to match as closely to Pale Moon's defaults as possible, by setting the following:
"security.tls.enable_0rtt_data" to false
"security.tls.version.fallback-limit" to 3
"security.tls.version.min" to 1
And ensure security.tls.hello_downgrade_check is still set to true.
Strangely enough, Firefox doesn't give a SSL_ERROR_RX_MALFORMED_SERVER_HELLO for https://ircbot.comm-central.org:8080/ as I would've expected and went ahead with the error about the cert being expired. I tried setting "security.ssl.enable_tls13_compat_mode" to true in Pale Moon to see if it bypasses the server hello error, but it doesn't seem it's one of those middlebox sites... I wonder if we're missing something here that Mozilla has?
"security.tls.enable_0rtt_data" to false
"security.tls.version.fallback-limit" to 3
"security.tls.version.min" to 1
And ensure security.tls.hello_downgrade_check is still set to true.
Strangely enough, Firefox doesn't give a SSL_ERROR_RX_MALFORMED_SERVER_HELLO for https://ircbot.comm-central.org:8080/ as I would've expected and went ahead with the error about the cert being expired. I tried setting "security.ssl.enable_tls13_compat_mode" to true in Pale Moon to see if it bypasses the server hello error, but it doesn't seem it's one of those middlebox sites... I wonder if we're missing something here that Mozilla has?

mima-samarto
XUL add-ons developer. You can find a list of add-ons I manage at http://rw.rs/~job/software.html.
My PGP public key (My copy on rw.rs)
Mima avatar by 拝 一樹 of pixiv (Danbooru rehost)
Re: ssl_error_rx_malformed_server_hello
Unlikely. TLS sessions tend to be cached so once you've established a connection once, the hello tends to be different and may bypass the bad box issue. I had some trouble testing the workaround for the same reason on Bitly which was confusing me at first the same way

"The best revenge is to not be like the person who wronged you." -- Marcus Aurelius
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
Re: ssl_error_rx_malformed_server_hello
Thank you for the troubleshooting everyone, and the work-around. I encountered the same gotcha, while attempting to access a DD-WRT router control panel via https://192.168.1.1/
Anon658153 wrote: ↑2023-04-02, 22:50Off-topic:Moonchild wrote: ↑2023-03-23, 17:03Navigator wrote: ↑2023-03-23, 16:51
During testing I found that you can work around the issue by setting "security.tls.version.fallback-limit" to "4" in about:config. That will completely disable the ability for the browser to do any TLS fallback, thereby "correcting" the issue of the browser falling back when it shouldn't and then tripping the TLS 1.3 fallback detection.
For reference, the value "4" means "don't perform fallback to any TLS version less than 1.3" and is the same as the default value for that setting in recent versions of Firefox. "Fallback" is where the server advertises a version of TLS but the client can't connect at that version. With fallback-limit set to 4 the browser can still connect to TLS 1.2 servers as it isn't a fallback when the connection starts at a lower version. From a security perspective there's no valid reason for a fallback from TLS 1.3 to TLS 1.2, hence the fallback protection. The default value in PM 32.1.0 is 3, which means by default fallback from TLS 1.3 to TLS 1.2 is "allowed," but fallback from TLS 1.2 to anything lower is not.