Re: Windows error SEC_E_ILLEGAL_MESSAGE (0x80090326)

Ray Satiro via curl-users <[email protected]>
Newsgroups gmane.comp.web.curl.general
Message-ID <[email protected]>
On 12/4/2023 4:12 PM, Gerald Wiltse via curl-users wrote:
> Environment:
> Windows 11 (5 out of 500 machines affected)
> Curl 8.0.1 and 8.0.4 both affected
> See details below about windows updates
>
> Error:
> curl: (35) schannel: next InitializeSecurityContext failed: 
> SEC_E_ILLEGAL_MESSAGE (0x80090326) .
>
> Affected websites:
> https://www.python.org/ftp/python
> Several internal services
>
> I have to admit in advance that I know this might not be 
> CURLteam/community's problem to solve, but raising here because:
> - I think people will keep reporting this issue to CURL project over 
> time (albeit incorrectly)
> - I think a simple set of registry keys can be found to resolve this 
> issue
> - I think the Windows CURL experts here are in a unique position to 
> identify those keys
>
> I support some scripts which use Windows native 
> C:\Windows\System32\curl.exe
>
> In the past 6 months,  ~5 out of ~500 user machines have hit this 
> error when connecting to python.org <http://python.org> and several 
> internal websites.  The error only starts after they install Windows 
> updates, it seems to be the ones in March/April 2023 which trigger it. 
> I've identified that powershell's "invoke-webrequest" is also broken 
> on these systems. So, the problem is very clearly the schannel backend.
>
> After several debug sessions on these 5 machines the only fix has been 
> to re-installwindows 11.  We tried removing all the updates which got 
> applied and the problem remained.  We also tried applying a bunch of 
> other TLS related hotfixes, but the problem remained.
>
> Here are the following interesting facts I'm hoping someone here will 
> be willing to consider and potentially look into:
>
> - We think it's only machines that went through Windows 10 to 11 
> Upgrade process
> - From-scratch Windows 10 / Windows 11 machines have never exhibited
>
> I believe that some Windows 10 service packs added some registry keys 
> which changes some default TLS. behaviors with schannel, and those 
> keys are getting lost/overwritten in the Windows 11 upgrade process.  
> Meanwhile, clean Windows 11 machines get the correct settings. I saw 
> one article which explained how this happened with Windows 7 to 
> Windows 8 upgrade in the past (specifically a Default TLS setting), 
> but can't find that article now.
>
> So, if anyone here is expert-enough with Windows SChannel/TLS and CURL 
> to identify the list of registry keys which can affect CURL, and then 
> also identify which values are required to make CURL work properly 
> with SChannel, then I think publishing that information on the Windows 
> troubleshooting page for CURL, AND sharing it with CURL's contacts at 
> microsoft, COULD prevent many future discussions about this super 
> annoying topic. Microsoft might even recognize the issue when 
> presented with the data and create an update pack which ensures the 
> SChannel registry keys are in a valid state for the future.


For some time we've had an error message for SEC_E_ILLEGAL_MESSAGE that 
explains it's usually caused by a fatal TLS alert from the server. I 
notice that the full error message is omitted, did you do that or did 
curl? Here's what the error message should say:

curl: (35) schannel: next InitializeSecurityContext failed: 
SEC_E_ILLEGAL_MESSAGE (0x80090326) - This error usually occurs when a 
fatal SSL/TLS alert is received (e.g. handshake failed). More detail may 
be available in the Windows System event log.

Sometimes Schannel errors are in the system event log but often not. I 
just tried a site that sends a handshake failure alert (which causes 
SEC_E_ILLEGAL_MESSAGE) and there's nothing in the event log. I suggest 
see what is being sent in the handshake. Use Wireshark to record the 
client hello and the server hello or alert. Compare known good and bad 
client hello.

-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-users
Etiquette:   https://curl.se/mail/etiquette.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.