{"items":[{"id":"NVI-00014047","kind":"vulnerability","title":"Umbraco: Delivery API leaks protected (Public Access) content through Content Picker / Multi-Node Tree Picker expansion","revision":2,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected.","NVD lastModified does not establish freshness of every associated CPE record."],"lifecycle":"active","identifiers":["GHSA-wr57-hqmp-fgvh","CVE-2026-69197"],"plain_summary":"GitHub lists this reviewed advisory for Umbraco.Cms, Umbraco.Cms, Umbraco.Cms. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-0c5bccd10af4520fafbefd8d65383410"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[{"kind":"CVSS","as_of":"2026-09-30T17:51:56.193Z","value":"8.7 HIGH (4.0)","meaning":"security-advisories@github.com severity; no combined Null risk score.","source_id":"sr-0c5bccd10af4520fafbefd8d65383410"}],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-37f397c0153cbcb0a42c982a9e2f0870","url":"https://github.com/advisories/GHSA-wr57-hqmp-fgvh","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-wr57-hqmp-fgvh","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T19:09:30.244Z"},{"id":"sr-0c5bccd10af4520fafbefd8d65383410","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-69197","basis":"official_catalog","notes":"This product uses data from the NVD API but is not endorsed or certified by the NVD.","title":"CVE-2026-69197","publisher":"NIST National Vulnerability Database","observed_at":"2026-11-08T15:07:54.921Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-37f397c0153cbcb0a42c982a9e2f0870"],"technology":"Umbraco.Cms","known_exclusions":[],"conditions_summary":"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 clie","public_affected_ranges":[">= 12.0.0, < 13.15.1"]},{"certainty":"source_listed","source_ids":["sr-37f397c0153cbcb0a42c982a9e2f0870"],"technology":"Umbraco.Cms","known_exclusions":[],"conditions_summary":"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 clie","public_affected_ranges":[">= 14.0.0-rc1, < 17.5.3"]},{"certainty":"source_listed","source_ids":["sr-37f397c0153cbcb0a42c982a9e2f0870"],"technology":"Umbraco.Cms","known_exclusions":[],"conditions_summary":"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 clie","public_affected_ranges":[">= 18.0.0, < 18.0.2"]}],"null_published_at":"2026-11-08T19:53:44.022Z","source_updated_at":"2026-09-17T16:29:48.000Z","source_disclosed_at":"2026-09-17T16:29:46.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"Source facts changed; compare the preserved prior revision.","null_first_observed_at":"2026-11-01T19:09:30.244Z"},{"id":"NVI-00014047","kind":"vulnerability","title":"Umbraco: Delivery API leaks protected (Public Access) content through Content Picker / Multi-Node Tree Picker expansion","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-wr57-hqmp-fgvh","CVE-2026-69197"],"plain_summary":"GitHub lists this reviewed advisory for Umbraco.Cms, Umbraco.Cms, Umbraco.Cms. Published version ranges and source prerequisites are shown below; this is not an inspection of a visitor’s application.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"Identify the exact component and deployed version, examine the linked publisher’s conditions, and retain evidence of any mitigation.","source_ids":["sr-37f397c0153cbcb0a42c982a9e2f0870"],"action_type":"investigate","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-37f397c0153cbcb0a42c982a9e2f0870","url":"https://github.com/advisories/GHSA-wr57-hqmp-fgvh","basis":"vendor_advisory","notes":"GitHub Advisory Database; CC-BY-4.0. Each advisory links its original attribution. Null normalizes fields.","title":"GHSA-wr57-hqmp-fgvh","publisher":"GitHub Advisory Database","observed_at":"2026-11-01T19:09:30.244Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-37f397c0153cbcb0a42c982a9e2f0870"],"technology":"Umbraco.Cms","known_exclusions":[],"conditions_summary":"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 clie","public_affected_ranges":[">= 12.0.0, < 13.15.1"]},{"certainty":"source_listed","source_ids":["sr-37f397c0153cbcb0a42c982a9e2f0870"],"technology":"Umbraco.Cms","known_exclusions":[],"conditions_summary":"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 clie","public_affected_ranges":[">= 14.0.0-rc1, < 17.5.3"]},{"certainty":"source_listed","source_ids":["sr-37f397c0153cbcb0a42c982a9e2f0870"],"technology":"Umbraco.Cms","known_exclusions":[],"conditions_summary":"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 clie","public_affected_ranges":[">= 18.0.0, < 18.0.2"]}],"null_published_at":"2026-11-02T10:00:37.200Z","source_updated_at":"2026-09-17T16:29:48.000Z","source_disclosed_at":"2026-09-17T16:29:46.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-01T19:09:30.244Z"}],"next_cursor":null,"snapshot_revision":"42594"}