Vulnerabilities in pkg:nuget/Umbraco.Cms

PACKAGE
Advisory Identifier: GHSA-wr57-hqmp-fgvh
Advisory Summary

CVE-2026-69197 is a HIGH delivery api leaks protected (public vulnerability (CWE-862: Missing Authorization) affecting Umbraco libraries in the NuGet ecosystem. The issue involves delivery api leaks protected (public access) content through content picker / multi-node tree picker expansion. Remediation is available by upgrading affected packages to version 13.15.1, 17.5.3, 18.0.2.

16 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:nuget/Umbraco.Cms

16 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:nuget/Umbraco.Cms. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-wr57-hqmp-fgvh CVE-2026-69197 HIGH Umbraco: Delivery API leaks protected (Public Access) content through Content Picker / Multi-Node Tree Picker expansion
GHSA-vr9v-27gg-qgx4 CVE-2026-46609 MODERATE Umbraco.Cms: XSS/HTML Injection in Umbraco Backoffice confirmation dialog
GHSA-2qjj-h6wp-c7h7 CVE-2026-46616 MODERATE Umbraco.Cms: Open Redirect Vulnerability in Surface Controllers
GHSA-rhcg-3h8r-v6vp CVE-2026-31834 HIGH Umbraco Affected by Vertical Privilege Escalation via Missing Authorization Checks
GHSA-vrqc-59mw-qqg7 CVE-2026-31833 MODERATE Umbraco has Stored XSS in UFM Rendering Pipeline via Permissive DOMPurify Attribute Filtering
GHSA-fpvf-fvp5-996r CVE-2026-31832 MODERATE Umbraco Backoffice API Allows Unauthorized Modification of Domain Data
GHSA-54mj-vcvj-q3v5 CVE-2025-67288 MODERATE Umbraco CMS has an arbitrary file upload vulnerability
GHSA-hfv2-pf68-m33x CVE-2025-66625 MODERATE Umbraco Vulnerable to Improper File Access and Credential Exposure in Dictionary Import Functionality
GHSA-pgvc-6h2p-q4f6 CVE-2025-49147 MODERATE Umbraco CMS disclosure of configured password requirements
GHSA-fr6r-p8hv-x3c4 CVE-2025-48953 MODERATE Umbraco Vulnerable to By-Pass of Configured Allowed Extensions for File Uploads
GHSA-4g8m-5mj5-c8xg CVE-2025-46736 MODERATE Umbraco Makes User Enumeration Feasible Based on Timing of Login Response
GHSA-hmg4-wwm5-p999 CVE-2025-24011 MODERATE Umbraco Allows User Enumeration Feasible Based On Management API Timing and Response Codes
GHSA-q62r-8ppj-xvf4 CVE-2025-32017 HIGH Umbraco has a Management API Vulnerability to Path Traversal With Authenticated Users
GHSA-69cg-w8vm-h229 CVE-2024-10761 MODERATE XSS/HTML Injection Vulnerability in Umbraco Preview Badge
GHSA-5955-cwv4-h7qh CVE-2024-48927 MODERATE Umbraco has a Potential Code Execution Risk When Viewing SVG Files in Full Screen in Backoffice
GHSA-hrww-x3fq-xcvh CVE-2024-43377 MODERATE Umbraco CMS Improper Access Control vulnerability

CVE-2026-69197 at a Glance

CVE Identifier CVE-2026-69197
GHSA Identifier GHSA-wr57-hqmp-fgvh
Severity HIGH
CVSS v3.1 Base Score N/A
CWE Classification CWE-862: Missing Authorization
Affected Product Umbraco
Package Ecosystem NuGet
Published Date
Last Updated

How to Fix CVE-2026-69197

To remediate this vulnerability, upgrade all affected Umbraco dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

Umbraco.Cms fixed: 13.15.1
Upgrade Umbraco.Cms to 13.15.1
Umbraco.Cms fixed: 17.5.3
Upgrade Umbraco.Cms to 17.5.3
Umbraco.Cms fixed: 18.0.2
Upgrade Umbraco.Cms to 18.0.2
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for Umbraco.Cms

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-69197, inspect your project dependencies for Umbraco:

inspect dependencies for Umbraco.Cms

Analyze the terminal output to locate any version of Umbraco in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 13.15.1), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-862: Missing Authorization, where the product does not perform an authorization check when an actor attempts to access a resource or perform an action. In Umbraco, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

The Content Delivery API enforces member / Public Access protection only at the controller layer, against the node that is directly requested. When a public (unprotected) node references a protected node through a Content Picker or Multi-Node Tree Picker (including those nested inside Block List, Block Grid, or Rich Text Editor blocks), the Delivery API expands and serializes the protected node with no access check applied. Similarly, configuration based restrictions based on aliases of allowed or disallowed content types are by-passed for referenced content items that are retrieved via property expansion. As a result, an anonymous / unauthorized caller can retrieve a protected node's: - Name, route, and id — always, even without expansion, and - Full property values — when the request uses ?expand on the picker property. A direct request for the same protected node correctly returns 401 Unauthorized, which makes the leak easy to miss: the protection appears to work, but is bypassed via reference expansion. ### Impact Confidential, member-gated content (e.g. pricing, internal documents, gated articles) referenced by any publicly readable node is disclosed to unauthenticated clients. No write/integrity or availability impact. Highest impact when the Delivery API is publicly readable (DeliveryApi:PublicAccess: true). Still exploitable, at reduced severity, when the Delivery API is gated by the org-wide API key (the key holder still bypasses per-node Public Access). ### Patches 13.15.1, 17.5.3, 18.0.2 ### References https://docs.umbraco.com/umbraco-cms/develop-with-umbraco/headless-and-apis/content-delivery-api

CVE-2026-69197 Affected Umbraco Versions

3 component(s)
Fixed Versions:
13.15.117.5.318.0.2
Product / Package Ecosystem Affected Versions Fixed Version
Umbraco.Cms
NuGet
≥ 12.0.0
< 13.15.1
13.15.1
Umbraco.Cms
NuGet
≥ 14.0.0-rc1
< 17.5.3
17.5.3
Umbraco.Cms
NuGet
≥ 18.0.0
< 18.0.2
18.0.2

References

Frequently Asked Questions

What is CVE-2026-69197?
CVE-2026-69197 is a security vulnerability in Umbraco involving Delivery API leaks protected (Public Access) content through Content Picker / Multi-Node Tree Picker expansion under CWE-862: Missing Authorization.
Which Umbraco versions are affected?
Affected versions include releases prior to 13.15.1, 17.5.3, 18.0.2 across affected packages: Umbraco.Cms.
What version fixes CVE-2026-69197?
Upgrading to 13.15.1, 17.5.3, 18.0.2 (or the latest patched release for your respective branch) resolves the vulnerability.
Is Umbraco.Cms affected?
Yes, Umbraco.Cms is affected in releases prior to 13.15.1, 17.5.3, 18.0.2. Upgrade your dependency to 13.15.1, 17.5.3, 18.0.2 or later.
What CWE is associated with CVE-2026-69197?
CVE-2026-69197 is classified under CWE-862: Missing Authorization (The product does not perform an authorization check when an actor attempts to access a resource or perform an action.).
How can I check NuGet dependencies for CVE-2026-69197?
Run the dependency tree command: 'inspect dependencies for Umbraco.Cms'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-wr57-hqmp-fgvh",
  "modified" : "2026-09-17T16:29:46Z",
  "published" : "2026-09-17T16:29:46Z",
  "aliases" : [ "CVE-2026-69197" ],
  "summary" : "Umbraco: Delivery API leaks protected (Public Access) content through Content Picker / Multi-Node Tree Picker expansion",
  "details" : "The Content Delivery API enforces member / Public Access protection only at the controller layer, against the node that is directly requested. When a public (unprotected) node references a protected node through a Content Picker or Multi-Node Tree Picker (including those nested inside Block List, Block Grid, or Rich Text Editor blocks), the Delivery API expands and serializes the protected node with no access check applied.\n\nSimilarly, configuration based restrictions based on aliases of allowed or disallowed content types are by-passed for referenced content items that are retrieved via property expansion.\n\nAs a result, an anonymous / unauthorized caller can retrieve a protected node's:\n- Name, route, and id — always, even without expansion, and\n- Full property values — when the request uses ?expand on the picker property.\nA direct request for the same protected node correctly returns 401 Unauthorized, which makes the leak easy to miss: the protection appears to work, but is bypassed via reference expansion.\n\n### Impact\nConfidential, member-gated content (e.g. pricing, internal documents, gated articles) referenced by any publicly readable node is disclosed to unauthenticated clients. No write/integrity or availability impact.\n\nHighest impact when the Delivery API is publicly readable (DeliveryApi:PublicAccess: true).\nStill exploitable, at reduced severity, when the Delivery API is gated by the org-wide API key (the key holder still bypasses per-node Public Access).\n\n### Patches\n13.15.1, 17.5.3, 18.0.2\n\n### References\nhttps://docs.umbraco.com/umbraco-cms/develop-with-umbraco/headless-and-apis/content-delivery-api",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Umbraco.Cms"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "12.0.0"
      }, {
        "fixed" : "13.15.1"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Umbraco.Cms"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "14.0.0-rc1"
      }, {
        "fixed" : "17.5.3"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "NuGet",
      "name" : "Umbraco.Cms"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "18.0.0"
      }, {
        "fixed" : "18.0.2"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/umbraco/Umbraco-CMS/security/advisories/GHSA-wr57-hqmp-fgvh"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/umbraco/Umbraco-CMS/commit/26312a3f717a0f33bb3d7d28b14bef3592bdb0fe"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/umbraco/Umbraco-CMS/commit/5360e2a9681ce2d0024be374e80339260bcc2511"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/umbraco/Umbraco-CMS/commit/a9649da4e5a0786db7688bd6b5036a21df26b015"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/umbraco/Umbraco-CMS"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/umbraco/Umbraco-CMS/releases/tag/release-13.15.1"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/umbraco/Umbraco-CMS/releases/tag/release-17.5.3"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/umbraco/Umbraco-CMS/releases/tag/release-18.0.2"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-200", "CWE-862" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-09-17T16:29:46Z",
    "nvd_published_at" : null
  }
}