# Why you should wait on upgrading to .Net 4.6

DevFeed: [Why you should wait on upgrading to .Net 4.6](<https://devfeed.tech/articles/why-you-should-wait-on-upgrading-to-net-4-6-21588.md>)

Original publisher: [Read original article](<https://nickcraver.com/blog/2015/07/27/why-you-should-wait-on-dotnet-46/>)

Published: 2015-07-27T00:00:00Z

Content type: article

Language: en

Sources: [Nick Craver](<https://devfeed.tech/sources/nick-craver.md>)

Topics: [.NET Framework](<https://devfeed.tech/topics/net-framework.md>), [bug](<https://devfeed.tech/topics/bug.md>), [JIT](<https://devfeed.tech/topics/jit.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [bug](<https://devfeed.tech/tags/bug.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [jit](<https://devfeed.tech/tags/jit.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [net-framework](<https://devfeed.tech/tags/net-framework.md>)

## AI overview

The article warns against upgrading to .NET Framework 4.6 because a bug in the 64-bit RyuJIT implementation can cause methods to receive parameter values different from those passed. Microsoft later released a patch through Security Bulletin MS15-092 and KB3086251.

## Source excerpt

Update (August 11th): A patch for this bug has been released by Microsoft. Here's their update to the advisory: We released an updated version of RyuJIT today, which resolves this advisory. The update was released as Microsoft Security Bulletin MS15-092 and is available on Windows Update or via direct download as KB3086251. The update resolves: CoreCLR #1296, CoreCLR #1299, and VisualFSharp #536. Major thanks to the developers who reported these issues. Thanks to everyone for their patience. Original Post What follows is the work of several people: Marc Gravell and I have taken lead on this at Stack Overflow and we continue to coordinate with Microsoft on a resolution. They have fixed the bug internally, but not for users. Given the severity, we can't in good conscience let such a subtle yet high-impact bug linger silently. We are not upgrading Stack Overflow to .Net 4.6, and you shouldn't upgrade yet either. You can find the issue we opened on GitHub (for public awareness) here. A fix has been released, see Update 5 below. Update #1 (July 27th): A pull request has been posted by Matt Michell (Microsoft). Update #2 (July 28th): There are several smaller repros now (including a small console app). Microsoft has confirmed they are working on an expedited hotfix release but we don't have details yet. Update #3 (July 28th): Microsoft's Rich Lander has posted an update: RyuJIT Bug Advisory in the .NET Framework 4.6. Update #4 (July 29th): There's another subtle bug found by Andrey Akinshin and the F# Engine Exception is confirmed to be a separate issue. I still recommend disabling RyuJIT in production given the increasing bug count. Update #5 (August 11th): A patch for this bug has been released by Microsoft, see above. This critical bug is specific to .Net 4.6 and RyuJIT (64-bit). I'll make this big and bold so we get to the point quickly: The methods you call can get different parameter values than you passed in. The JIT (Just-in-Time compiler) in .Net (and many platfo