Skip to content

Upgrading Umbraco.Cms.Web.Website 16 to 17

Breaking16.5.1 → 17.8.0Breaking35Security29Deprecated8New164Changed210Fixed866Other247

Fetching 48 releases from GitHub…45 / 48
BreakingUpgrade verdict

35 breaking changes and 29 security fixes.

  • The old entityType field is no longer included in document property values.
  • Sites now enforce HTTPS unless you explicitly turn that requirement off.
  • Removes obsoleted code for properties and validators in v17.
  • Adds property level default segment fallback.
Top 5 of 72 that need code or config changes

Target frameworks requirement changed in 17.0.0-beta: net9.0 → net10.0.

Adds asp.versioning.mvc 8.1.1, asp.versioning.mvc.apiexplorer 8.1.1, dazinator.extensions.fileproviders 2.0.0, examine 3.10.0, examine.core 3.10.0, htmlagilitypack 1.13.0, k4os.compression.lz4 1.3.8, mailkit 4.18.1, markdig 0.45.0, markdown 2.2.1, messagepack 3.1.11, microsoft.extensions.caching.abstractions 10.0.12, microsoft.extensions.caching.hybrid 10.10.0, microsoft.extensions.caching.memory 10.0.12, microsoft.extensions.configuration.abstractions 10.0.12, microsoft.extensions.configuration.json 10.0.12, microsoft.extensions.dependencyinjection 10.0.12, microsoft.extensions.fileproviders.embedded 10.0.12, microsoft.extensions.fileproviders.physical 10.0.12, microsoft.extensions.hosting.abstractions 10.0.12, microsoft.extensions.http 10.0.12, microsoft.extensions.identity.core 10.0.12, microsoft.extensions.identity.stores 10.0.12, microsoft.extensions.logging 10.0.12, microsoft.extensions.options 10.0.12, microsoft.extensions.options.configurationextensions 10.0.12, microsoft.extensions.options.dataannotations 10.0.12, miniprofiler.aspnetcore.mvc 4.5.4, miniprofiler.shared 4.5.4, ncrontab 3.4.0, npoco 6.3.0, openiddict.abstractions 7.7.1, serilog 4.4.0, serilog.aspnetcore 9.0.0, serilog.enrichers.process 3.0.0, serilog.enrichers.thread 4.0.0, serilog.expressions 5.0.0, serilog.extensions.hosting 9.0.0, serilog.formatting.compact 3.0.0, serilog.formatting.compact.reader 4.0.0, serilog.settings.configuration 9.0.0, serilog.sinks.async 2.1.0, serilog.sinks.file 7.0.0, serilog.sinks.map 2.0.0, system.linq.async 7.0.1, system.security.cryptography.pkcs 10.0.13, system.security.cryptography.xml 10.0.13.

Breaking35
Removes the deprecated entityType from document property values.
entityType
Requires HTTPS by default, with an opt-out available.
Removes obsoleted code for properties and validators in v17.
Adds property level default segment fallback.
Removes client-side v17 deprecated code.
Removes the SectionSidebarContextMenu element and its interaction methods.
SectionSidebarContextMenu
Refactors backoffice sections with a default element and context API.
Removes obsoleted code from Umbraco.Extension.
Removes obsoleted code from Umbraco.Examine.
Removes obsoleted code from Umbraco.Infrastructure.
Removes obsoleted code from Cms.Api.
Removes obsoleted code from Umbraco.Web.
Removes obsoleted code from Umbraco.Cms.Core.Cache and .Routing.
Removes obsoleted code from Umbraco.Core.
Application URL auto-detection from the Host header becomes opt-in via the new ApplicationUrlDetection setting.
ApplicationUrlDetectionApplicationMainUrlUmbracoApplicationUrl
Updates MailKit to 4.15.1, requiring core changes for nullability constraints; projects using MailKit or MimeKit may be affected.
MailKitMimeKit
Updates MailKit to 4.15.1.
MailKit
Updates Swashbuckle to v10, a breaking dependency change; the CMS still generates OpenAPI 3.0.4 schemas.
Swashbuckle
Completes the renaming of SignProviders to FlagProviders.
SignProvidersFlagProviders
Cleans up extension methods.
Fixes models builder generating different types for color picker value.
Reworks audit entries.
Updates the existing date/time property editor to provide a kind of unspecified.
Uses the audit service instead of the repository directly in services.
Fixes nullability of return types that can be non-null.
Changes methods in ServiceCollectionExtensions to return IServiceCollection instead of void.
ServiceCollectionExtensionsIServiceCollection
Moves current-user related entities from the 'user' package to the 'current-user' package.
Quotes table and column names and uses NPoco extensions over raw SQL in repositories.
NPoco
Relocates the Tiptap external extensions/package.
Tiptap
Adds the ability to set the telemetry level during unattended install.
Segmentation backoffice now uses the enhanced endpoint to fetch segment options for documents based on GUID.
Updates server dependencies.
Changes the member type container in the management API.
Implements distributed background jobs for load balancing.
Changes the property editor data source.
Security29
Updates SixLabors.ImageSharp to 3.2.0 and ImageSharp.Web to 3.3.0 to take Six Labors' security fixes.
SixLabors.ImageSharpSixLabors.ImageSharp.Web
Pins System.Security.Cryptography.Pkcs and .Xml to 10.0.13 to resolve vulnerability warnings.
System.Security.Cryptography.PkcsSystem.Security.Cryptography.Xml
Signs out disabled or locked out users in the Management API instead of issuing new tokens.
Fixes an authorization bypass that let low-privileged users delete media outside their start node.
Fixes backoffice users being able to read content outside their start node via the document version endpoints.
Fixes unauthenticated SignalR hubs disclosing content identifiers and editorial activity.
SignalR
Fixes upload file extension restrictions not being enforced for file names ending in a period.
Fixes incorrect authorization that let Content-only backoffice users modify Templates, enabling remote code execution.
Fixes insufficient authorization on Management API search endpoints.
Updates MessagePack to 3.1.7 to address security advisories.
MessagePack
Pins SQLitePCLRaw.lib.e_sqlite3 to a non-vulnerable version.
SQLitePCLRaw.lib.e_sqlite3
Addresses a vulnerability involving expansion of property values for protected, picked content.
Adds a localize.htmlString() helper to prevent XSS in HTML-rendered translations in the backoffice.
localize.htmlString()
Pins System.Security.Cryptography.Xml to resolve a vulnerability warning.
System.Security.Cryptography.Xml
Removes the token cookie if decryption fails, mitigating issue #16107.
Prevents an XXE opportunity in OEmbedProviderBase.
OEmbedProviderBase
Validates the redirect URL in public surface controllers.
Auto-generates an HMAC secret key for new installs to make Umbraco more secure by default; not forced for upgrades.
Auto-generates an HMAC secret key for new installs in imaging configuration.
Updates MailKit because the previously depended-on version has a security vulnerability raised against it.
MailKit
Fixes a privilege escalation issue relating to user group memberships.
Fixes an XSS vulnerability involving property type descriptions.
Fixes authorization checks on node domain access.
Updates Microsoft packages to 10.0.1 and pins vulnerable transitive dependencies.
Adds protection to restrict access to media in the recycle bin.
Marks the UMB-DEBUG cookie as HttpOnly and Secure in debug mode.
UMB-DEBUG
Moves backoffice login access and refresh tokens to secure cookies.
Redacts backoffice PKCE codes from the server.
Updates the node development dependency to the latest secure version of major 17.
Deprecated8
Retires the legacy tree-item-children collection view.
tree-item-children
Obsoletes ServerVariablesParsingNotification, which is no longer published.
ServerVariablesParsingNotification
Cleans up and deprecates the Block Rich Text Editor implementation.
Marks auth services already removed in V19 as obsolete.
Deprecates the unused HttpClient registered with certificate validation bypass.
HttpClient
Documents that Single Block Mode in the Block List Editor is deprecated.
Deprecates the Management API controller for the defunct our.umbraco.com version checker.
Adds deprecation notices to AllowNonExistingSegmentsCreation.
AllowNonExistingSegmentsCreation