Upgrade Paths for CU’s & .NET

7/7/2025: Added note.

Microsoft keeps track of the currently supported combinations of .NET Framework and Exchange Cumulative Updates at the Exchange Server Supportability Matrix. However, as time progresses, support information on older Cumulative Updates might be removed from the information presented, and you may need to resort to cached versions of this page or other sources to find this information.

This might be problematic for organizations that are not current and need to determine which upgrade path to stay within the boundaries of supported Exchange deployment configurations. For example, you may need to upgrade to a specific Cumulative Update first, supported by a newer release of the .NET Framework, to upgrade to a later Cumulative Update.

For these situations, the following tables contain the supportability matrix, enhanced with information regarding earlier Cumulative Updates and .NET Framework versions. These will provide you with the supported upgrade paths for older versions of Exchange.

Note: In-place upgrades of the operating system on which Exchange Server runs are not supported and will not work. Also, keep in mind that you cannot mix nodes within the same Database Availability Groups concerning the operating system. New operating system = new Exchange Server installation = new Database Availability Group.

Exchange 2019

.NETRTM-CU1CU2-CU3CU4-CU13CU14-CU15
4.7.2XX
4.8XX
4.8.1XX

Exchange 2016

.NETRTM-
CU1
CU2CU3-
CU4
CU5-
CU7
CU8-
CU9
CU10CU11-
CU12
CU13-
CU14
CU15-
CU23
4.5
4.5.1
4.5.2XXX
4.6.11XX
4.6.2XXX
4.72
4.7.1XXX
4.7.2XX
4.8XX

Exchange 2013

.NETRTM-
CU3
CU4(SP1)-
CU12
CU13-
CU14
CU15CU16-
CU18
CU19-
CU20
CU21-
CU22
CU23
4.5XXX
4.5.1XXX
4.5.2XXX
4.6.11XX
4.6.2XXX
4.72
4.7.1XX
4.7.2XX
4.8X

Notes

  1. When possible, bypass .NET Framework 4.6.1, as it not only requires updating the CU level before updating the .NET Framework, but also requires an additional hotfix: kb3146715 (ws2012r2), kb3146714 (ws2012) or kb3146716 (ws2008r2).
  2. .NET Framework 4.7 is not supported for any product level.

Usage
Suppose your organization loves procrastinating, and you are running Exchange 2013 CU6. Luckily, you run it on .NET Framework 4.5.1, which was already a supported configuration back in 2014 – yes, it’s been that long. Looking at the table, to get current with a minimal number of updates in mind, you can derive the following path:

The upgrade path to CU19 would therefor be:

  1. Upgrade to Exchange 2013 Cumulative Update 15
  2. Upgrade .NET Framework to 4.6.2
  3. Upgrade to Exchange 2013 Cumulative Update 19
  4. Upgrade .NET Framework to 4.7.1 (Optional)

Note that in addition to information being refreshed on Microsoft pages, the availability of older Cumulative Updates or .NET Framework updates might also change, so archive those files accordingly, if not for recovery of existing Exchange servers, then for this exact purpose.

Of course, you should stay as current as possible from a support and security perspective, making the above a non-issue. The reality is, some customers have reasons, legitimate or not, to be trailing with updates in their environment, and at some point may need guidance on how to proceed to get current. I hope this information helps in those situations.

Thoughts and feedback are welcome in the comments.

Update: On February 13th, Microsoft updated upgrade guidance on the Exchange Supportability Matrix page, stating:

“When upgrading Exchange from an unsupported CU to the current CU and no intermediate CUs are available, you should upgrade to the latest version of .NET that’s supported by Exchange first and then immediately upgrade to the current CU. This method doesn’t replace the need to keep your Exchange servers up to date and on the latest, supported CU. Microsoft makes no claim that an upgrade failure will not occur using this method, which may result in the need to contact Microsoft Support Services”.

This means you will be supported when upgrading in the revised upgrade path, but the risk is still there. In the example above, when going from Exchange 2013 CU6 with .NET 4.5.1 to CU19, the support statement indicates you can upgrade to .NET Framework 4.7.1, when installing CU19. However, things might break, and you may need to contact support to get back into a supported, working situation. Therefore, I repeat my recommendation to download and archive CU’s and .NET Framework files, even when you are not planning on installing them (yet).

This entry was posted in Exchange Server and tagged , , , by Michel de Rooij. Bookmark the permalink.
Unknown's avatar

About Michel de Rooij

Michel de Rooij, with over 25 years of mixed consulting and automation experience with Exchange and related technologies, is a consultant for Rapid Circle. He assists organizations in their journey to and using Microsoft 365, primarily focusing on Exchange and associated technologies and automating processes using PowerShell or Graph. Michel's authorship of several Exchange books and role in the Office 365 for IT Pros author team are a testament to his knowledge. Besides writing for Practical365.com, he maintains a blog on eightwone.com with supporting scripts on GitHub. Michel has been a Microsoft MVP since 2013.

104 thoughts on “Upgrade Paths for CU’s & .NET

  1. Pingback: Zero Day Vulnerabilities Discovered in all Versions of Microsoft Exchange Server | Jaap Wesselius

  2. Great gudies,thanks.
    I will plan to update Exchange 2013 CU7 to CU23 with .Net 4.8.0 installed at first,then need to update KB5000871 for these CVEs 😦
    CVE-2021-26855,CVE-2021-26857,CVE-2021-26858,CVE-2021-27065

    Like

  3. Pingback: Security Update Exchange 2010-2019 (Mar2021) | EighTwOne (821)

  4. It would be wonderful if Microsoft made available some of the older CU’s instead of having to call support to get them in the midst of a bunch of zero day attacks. I guess the choice is either risk getting compromised or risk blowing up a server and in either case, don’t call Micro$oft for at least a week. What a joke.

    Like

      • Some admins have more to worry about than just exchange. I had assumed installing regular updates meant the exchange server was updated. Stupid probably, but again, exchange is one of many applications in my environment. From what I understand, having the latest CU with all the security updates would have meant being completely vulnerable up until Wednesday of this week anyway.

        Like

        • Vulnerable for HAFNIUM; you’re forgetting all the exploits fixed between CUx and current ones. For this reason I always recommend business to archive those CU’s, whether they install them directly, skip them or not. You also don’t want to encounter unexpected challenges during recovery scenarios.

          Like

  5. Pingback: URGENT: Zero Day Vulnerabilities for Exchange Server – Dine.ga

  6. Michel, we have a client on 2016 RTM running 4.6.2 (unsupported however functional). We need to take them to CU19 urgently. What would you propose? Straight upgrade to CU19 and then install .NET 4.8? Or try to obtain ISOs and move to the supported CU for 4.6.2 first?

    Thanks

    Like

  7. Hi Michel. I run exchange 2013 DAG with two mailbox servers and a CAS. currently on CU5 installed on .net 4.6.1. whats the best upgarde path to CU23?

    Like

    • Tested upgrade path should be through: Ex2013CU5/NET461 -> Ex2013CU15/NET461 -> Ex2013CU15/NET462 -> Ex2013CU20/NET462 -> Ex2013CU20/NET471 -> Ex2013CU22/NET472 -> Ex2013CU23/NET472 -> Ex2013CU23/NET48.
      However, obtaining intermediate CUs would be a challenge as out of support CUs are not available through regular download channels without contacting support.

      Supported upgrade path would therefor be: Ex2013CU5/NET461->Ex2013CU23/NET48, where you upgrade NET first immediately followed by installing the CU, per MS support statement (pls read): “When upgrading Exchange from an unsupported CU to the current CU and no intermediate CUs are available, you should upgrade to the latest version of .NET that’s supported by Exchange first and then immediately upgrade to the current CU. Microsoft makes no claim that an upgrade failure will not occur using this method, which may result in the need to contact Microsoft Support Services”.

      Like

  8. Pingback: EighTwOne (821)

  9. Pingback: Exchange Updates – March 2021 | EighTwOne (821)

  10. Hi Michel, have an exchange 2016 CU5 (.net 4.6.2) that I want to take to CU20 (.Net 4.8). According to your tables I would need to update to CU8 or CU9 then update .Net to 4.7.1 at this point i could update to CU11 or CU12. I would then update >net to 4.7.2 and CU14. At my final stage i would need to update .Net to 4.8 and CU20. Just asking for a confirmation I am following the chart correctly. Thanks.

    Like

  11. Pingback: Exchange Updates – June 2021 | EighTwOne (821)

  12. Pingback: Exchange Updates – September 2021 | EighTwOne (821)

  13. Pingback: Exchange Updates (and more) – H1 2022 | EighTwOne (821)

  14. Pingback: Exchange 2016, CU Updatepath / .NET kompatibilität | Gumpert IT Wiki

  15. Pingback: Exchange Updates (and more) – H1 2023 | EighTwOne (821)

  16. Hello. in this year 2023. Can i install .net framework version 4.6.2 on a windows server 2008 r2 server with exchange 2010 sp3 installed? I can’t find that information. Thanks

    Like

  17. Pingback: Exchange 2019 CU14 (2024 H1) | EighTwOne (821)

  18. Pingback: Change 2019 CU14 (2024 H1) - Techbrusts

  19. Pingback: Exchange 2019 CU15 (2025 H1) | EighTwOne (821)

Leave a reply to Ajc Cancel reply