CVE-2026-44990
Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html`
ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Under the default configuration, versions of sanitize-html prior to 2.17.4 can turn attacker-controlled content inside a disallowed xmp element into live HTML or JavaScript. This is a sanitizer bypass in the default disallowedTagsMode: 'discard' path and can lead to stored XSS in applications that render sanitized output back to users. Version 2.17.4 patches the issue.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
9.3
Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html`
ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Under the default configuration, versions of sanitize-html prior to 2.17.4 can turn attacker-controlled content inside a disallowed xmp element into live HTML or JavaScript. This is a sanitizer bypass in the default disallowedTagsMode: 'discard' path and can lead to stored XSS in applications that render sanitized output back to users. Version 2.17.4 patches the issue.
- Record
CVE-2026-44990- CVSS 3.1
- 9.3 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N - CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-79, CWE-79
- Updated
- 2026-11-02
EUVDEUVD-2026-36566
9.3
ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Under the default configuration, versions of sanitize-html prior to 2.17.4 can turn attacker-controlled content inside a disallowed xmp element into live HTML or JavaScript. This is a sanitizer bypass in the default disallowedTagsMode: 'discard' path and can lead to stored XSS in applications that render sanitized output back to users. Version 2.17.4 patches the issue.
- Record
EUVD-2026-36566- CVSS 3.1
- 9.3 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-rpr9-rxv7-x643
9.3
Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html`
Summary
Under the default configuration, sanitize-html can turn attacker-controlled content inside a disallowed xmp element into live HTML or JavaScript. This is a sanitizer bypass in the default disallowedTagsMode: 'discard' path and can lead to stored XSS in applications that render sanitized output back to users.
Details
In [email protected], the default nonTextTags list includes only script, style, textarea, and option in index.js lines 138-142. That means disallowed xmp tags are not treated as "drop the entire contents" tags.
Later, in the ontext handler at index.js lines 569-577, the code special-cases textarea and xmp and appends their text content directly to the output without escaping:
} else if ((options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') && (tag === 'textarea' || tag === 'xmp')) {
result += text;
}
Because htmlparser2 treats xmp as a raw-text element, markup inside xmp is parsed as text on input but becomes live markup again once it is appended unescaped to the sanitized output.
This creates a default sanitizer bypass. For example, a disallowed <xmp> wrapper can be used to smuggle <script> or event-handler payloads through sanitization.
The README also appears to contradict the implementation. In the "Discarding the entire contents of a disallowed tag" section, the documented exception list names only style, script, textarea, and option, and does not mention xmp.
PoC
Tested locally against [email protected] on Node.js v25.2.1.
- Install the package:
npm install sanitize-html
- Run the following script:
const sanitizeHtml = require('sanitize-html');
console.log(sanitizeHtml('<xmp><script>alert(1)</script></xmp>'));
console.log(sanitizeHtml('<xmp><img src=x onerror=alert(1)></xmp>'));
console.log(sanitizeHtml('<xmp><svg><script>alert(1)</script></svg></xmp>'));
- Observed output:
<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg><script>alert(1)</script></svg>
- Render any of the returned strings in a browser context that trusts
sanitize-htmloutput, for example:
const dirty = '<xmp><script>alert(1)</script></xmp>';
const clean = sanitizeHtml(dirty);
If clean is inserted into the DOM or stored and later rendered as trusted HTML, the attacker-controlled script executes.
Impact
This is a cross-site scripting vulnerability in the default sanitizer behavior. Any application that uses sanitize-html defaults and then renders the returned HTML as trusted output is impacted. A remote attacker who can submit HTML content can trigger execution of arbitrary JavaScript in another user's browser when that content is viewed.
- Record
GHSA-rpr9-rxv7-x643- CVSS 3.1
- 9.3 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
NVD
9.3
ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Under the default configuration, versions of sanitize-html prior to 2.17.4 can turn attacker-controlled content inside a disallowed xmp element into live HTML or JavaScript. This is a sanitizer bypass in the default disallowedTagsMode: 'discard' path and can lead to stored XSS in applications that render sanitized output back to users. Version 2.17.4 patches the issue.
- Record
CVE-2026-44990- CVSS 3.1
- 9.3 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N - CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSV
9.3
Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html`
ApostropheCMS is an open-source Node.js content management system, and sanitize-html provides a simple HTML sanitizer with a clear API. Under the default configuration, versions of sanitize-html prior to 2.17.4 can turn attacker-controlled content inside a disallowed xmp element into live HTML or JavaScript. This is a sanitizer bypass in the default disallowedTagsMode: 'discard' path and can lead to stored XSS in applications that render sanitized output back to users. Version 2.17.4 patches the issue.
- Record
CVE-2026-44990- CVSS 3.1
- 9.3 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVGHSA-rpr9-rxv7-x643
9.3
Apostrophe has default XSS via `xmp` raw-text passthrough in `sanitize-html`
Summary
Under the default configuration, sanitize-html can turn attacker-controlled content inside a disallowed xmp element into live HTML or JavaScript. This is a sanitizer bypass in the default disallowedTagsMode: 'discard' path and can lead to stored XSS in applications that render sanitized output back to users.
Details
In [email protected], the default nonTextTags list includes only script, style, textarea, and option in index.js lines 138-142. That means disallowed xmp tags are not treated as "drop the entire contents" tags.
Later, in the ontext handler at index.js lines 569-577, the code special-cases textarea and xmp and appends their text content directly to the output without escaping:
} else if ((options.disallowedTagsMode === 'discard' || options.disallowedTagsMode === 'completelyDiscard') && (tag === 'textarea' || tag === 'xmp')) {
result += text;
}
Because htmlparser2 treats xmp as a raw-text element, markup inside xmp is parsed as text on input but becomes live markup again once it is appended unescaped to the sanitized output.
This creates a default sanitizer bypass. For example, a disallowed <xmp> wrapper can be used to smuggle <script> or event-handler payloads through sanitization.
The README also appears to contradict the implementation. In the "Discarding the entire contents of a disallowed tag" section, the documented exception list names only style, script, textarea, and option, and does not mention xmp.
PoC
Tested locally against [email protected] on Node.js v25.2.1.
- Install the package:
npm install sanitize-html
- Run the following script:
const sanitizeHtml = require('sanitize-html');
console.log(sanitizeHtml('<xmp><script>alert(1)</script></xmp>'));
console.log(sanitizeHtml('<xmp><img src=x onerror=alert(1)></xmp>'));
console.log(sanitizeHtml('<xmp><svg><script>alert(1)</script></svg></xmp>'));
- Observed output:
<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg><script>alert(1)</script></svg>
- Render any of the returned strings in a browser context that trusts
sanitize-htmloutput, for example:
const dirty = '<xmp><script>alert(1)</script></xmp>';
const clean = sanitizeHtml(dirty);
If clean is inserted into the DOM or stored and later rendered as trusted HTML, the attacker-controlled script executes.
Impact
This is a cross-site scripting vulnerability in the default sanitizer behavior. Any application that uses sanitize-html defaults and then renders the returned HTML as trusted output is impacted. A remote attacker who can submit HTML content can trigger execution of arbitrary JavaScript in another user's browser when that content is viewed.
- Record
GHSA-rpr9-rxv7-x643- CVSS 3.1
- 9.3 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
Show 4 moreShow less
OSVROOT-APP-NPM-CVE-2026-44990
9.3
CVE-2026-44990 in @rootio/sanitize-html - Patched by Root
Root has patched CVE-2026-44990 in the @rootio/sanitize-html package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-44990- CVSS 3.1
- 9.3 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11436-1 No score
golang-github-prometheus-prometheus-3.13.2-1.1 on GA media
These are all security issues fixed in the golang-github-prometheus-prometheus-3.13.2-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11436-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4585-1 No score
Security update 5.2.1 for Multi-Linux Manager Client Tools
This update fixes the following issues:
golang-github-prometheus-prometheus was updated to version 3.13.2:
-
Security issues:
- CVE-2026-39821: Fixed validation bypass and privilege escalation in Punycode label handling (bsc#1266608)
- CVE-2026-56852: Fixed infinite loop on truncated or invalid UTF-8 input in unicode/norm handling (bsc#1272102)
- CVE-2026-44990: Fixed stored XSS in the new React UI by sanitizing disallowed xmp elements (bsc#1275205)
- CVE-2026-53606: Fixed incomplete URI scheme validation in sanitize-html that could enable XSS (bsc#1269966)
- CVE-2026-2303: Fixed heap out-of-bounds read in GSSAPI error handling in mongo-driver (bsc#1269856)
- CVE-2025-4673: Fixed credential leaks by stopping HTTP client header forwarding on redirects (bsc#1275206)
- CVE-2023-45289: Fixed credential leaks by stopping header and cookie forwarding on HTTP redirects (bsc#1275207)
- CVE-2025-61686: Fixed unauthorized file access and path traversal in react-router storage (bsc#1270711)
- CVE-2026-40181: Fixed open redirect risks to external domains via relative paths in react-router (bsc#1267528)
- CVE-2026-42342: Fixed DoS risks via unbounded path expansion in the manifest endpoint (bsc#1267538)
- CVE-2026-42211: Fixed remote code execution risks from prototype pollution in react-router (bsc#1267534)
- CVE-2026-39882: Fixed memory exhaustion via uncapped HTTP response reading in OpenTelemetry (bsc#1274221)
- Fixed potential denial-of-service vulnerabilities by updating the gRPC dependency
- Fixed memory exhaustion and DoS by rejecting snappy-compressed requests exceeding 32MB limit
-
Bug fixes and changes:
- Fixed scrape manager failing to reload properly when SD configuration changes rapidly.
- Prevent memory leak in remote-write path when the receiving endpoint is unavailable.
- Native Histograms are no longer experimental. They are fully supported for production workloads.
- Added support for OpenTelemetry traces within the Prometheus UI to correlate metrics and traces.
- TSDB compaction speed optimized by improving the block merging algorithm.
- Allow scraping of multiple targets using a single HTTP/2 connection to reduce overhead.
- Added new metrics to monitor the health of the rule evaluation engine.
- Incompatible: This affects scraping, remote read and write, alerting, and SD. Network paths might need adjustments to avoid redirects.
- Incompatible: Rule group pagination tokens now use SHA-256 instead of MD5. Custom API consumers must adapt to the new longer token format.
- Added 'group_limit' parameter to PromQL aggregations to restrict the number of results.
- Incompatible: promtool relative paths in config files now resolve relative to the config directory itself, instead of the current working directory.
- Support exporting TSDB blocks directly to cloud storage via the admin API.
- Incompatible: Deprecated remote-write metrics like prometheus_remote_storage_samples_total are removed in favor of prometheus_wal_watcher_records_read_total.
- Significant query performance boost for high-cardinality regex matchers.
- Introduce a new UI interface for safely deleting specific time series data directly.
- Added dynamic relabeling actions to extract substrings using regex capture groups.
- Fixed UI displaying incorrect time ranges after a timezone change.
- Bumped firewalld-prometheus-config to version 0.2 bumping OpenTelemetry to 1.43.0
grafana was updated to version 12.4.10:
-
Security issues:
- CVE-2026-17183: Fixed exposing data accessible through Grafana's configured datasource credentials (bsc#1275934)
- CVE-2026-2303: Fixed heap out-of-bounds read in GSSAPI error handling in mongo-driver (bsc#1269841)
- CVE-2026-17033: Fixed stored cross-site scripting risks via malicious Alertmanager generator URLs (bsc#1276426)
- CVE-2026-73501: Fixed fail-open authentication bypass in kin-openapi default handlers (bsc#1276973) *…
- Record
SUSE-SU-2026:4585-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4606-1 No score
Security update for golang-github-prometheus-prometheus
This update for golang-github-prometheus-prometheus fixes the following issues:
golang-github-prometheus-prometheus was updated to version 3.13.2:
-
Security issues:
- CVE-2026-39821: Fixed validation bypass and privilege escalation in Punycode label handling (bsc#1266608)
- CVE-2026-56852: Fixed infinite loop on truncated or invalid UTF-8 input in unicode/norm handling (bsc#1272102)
- CVE-2026-44990: Fixed stored XSS in the new React UI by sanitizing disallowed xmp elements (bsc#1275205)
- CVE-2026-53606: Fixed incomplete URI scheme validation in sanitize-html that could enable XSS (bsc#1269966)
- CVE-2026-2303: Fixed heap out-of-bounds read in GSSAPI error handling in mongo-driver (bsc#1269856)
- CVE-2025-4673: Fixed credential leaks by stopping HTTP client header forwarding on redirects (bsc#1275206)
- CVE-2023-45289: Fixed credential leaks by stopping header and cookie forwarding on HTTP redirects (bsc#1275207)
- CVE-2025-61686: Fixed unauthorized file access and path traversal in react-router storage (bsc#1270711)
- CVE-2026-40181: Fixed open redirect risks to external domains via relative paths in react-router (bsc#1267528)
- CVE-2026-42342: Fixed DoS risks via unbounded path expansion in the manifest endpoint (bsc#1267538)
- CVE-2026-42211: Fixed remote code execution risks from prototype pollution in react-router (bsc#1267534)
- CVE-2026-39882: Fixed memory exhaustion via uncapped HTTP response reading in OpenTelemetry (bsc#1274221)
- Fixed potential denial-of-service vulnerabilities by updating the gRPC dependency
- Fixed memory exhaustion and DoS by rejecting snappy-compressed requests exceeding 32MB limit
-
Bug fixes and changes:
- Fixed scrape manager failing to reload properly when SD configuration changes rapidly.
- Prevent memory leak in remote-write path when the receiving endpoint is unavailable.
- Native Histograms are no longer experimental. They are fully supported for production workloads.
- Added support for OpenTelemetry traces within the Prometheus UI to correlate metrics and traces.
- TSDB compaction speed optimized by improving the block merging algorithm.
- Allow scraping of multiple targets using a single HTTP/2 connection to reduce overhead.
- Added new metrics to monitor the health of the rule evaluation engine.
- Incompatible: This affects scraping, remote read and write, alerting, and SD. Network paths might need adjustments to avoid redirects.
- Incompatible: Rule group pagination tokens now use SHA-256 instead of MD5. Custom API consumers must adapt to the new longer token format.
- Added 'group_limit' parameter to PromQL aggregations to restrict the number of results.
- Incompatible: promtool relative paths in config files now resolve relative to the config directory itself, instead of the current working directory.
- Support exporting TSDB blocks directly to cloud storage via the admin API.
- Incompatible: Deprecated remote-write metrics like prometheus_remote_storage_samples_total are removed in favor of prometheus_wal_watcher_records_read_total.
- Significant query performance boost for high-cardinality regex matchers.
- Introduce a new UI interface for safely deleting specific time series data directly.
- Added dynamic relabeling actions to extract substrings using regex capture groups.
- Fixed UI displaying incorrect time ranges after a timezone change.
- Bumped firewalld-prometheus-config to version 0.2 bumping OpenTelemetry to 1.43.0
- Record
SUSE-SU-2026:4606-1- Updated
- 2026-11-02
Affected products
- apostrophecms sanitize-html
- red hat multicluster engine for kubernetes 2.1
- red hat multicluster engine for kubernetes 2.11
- red hat multicluster engine for kubernetes 2.17
- red hat multicluster engine for kubernetes 2.6
- red hat multicluster engine for kubernetes 2.8
- red hat multicluster engine for kubernetes 2.9
- red hat advanced cluster management for kubernetes 2.11
- red hat advanced cluster management for kubernetes 2.13
- red hat advanced cluster management for kubernetes 2.14
- red hat advanced cluster management for kubernetes 2.15
- red hat advanced cluster management for kubernetes 2.16
Show 18 moreShow less
- red hat advanced cluster management for kubernetes 2.17
- red hat container native virtualization 4.19
- red hat container native virtualization 4.20
- red hat hardened images
- red hat openshift ai (rhoai)
- red hat openshift container platform 4
- red hat openshift container platform 4.20
- red hat openshift container platform 4.21
- red hat openshift container platform 4.22
- red hat openshift dev spaces 3.29
- red hat quay 3.10
- red hat quay 3.12
- red hat quay 3.15
- red hat quay 3.16
- red hat quay 3.9
- red hat satellite 6
- red hat satellite 6.18
- red hat satellite 6.19
Affected packages
| Package | Affected | Fixed |
|---|---|---|
sanitize-htmlnpm |
2.17.3 to 2.17.3 | 2.17.4 |
sanitize-htmlnpm |
2.17.3 up to 2.17.4 | 2.17.4 |
@rootio/sanitize-htmlRoot:npm |
before 2.17.2-root.io.1 | 2.17.2-root.io.12.12.1-root.io.12.12.1-root.io.22.17.2-root.io.2 |
sanitize-htmlRoot:npm |
before 2.12.1-aikido.2 | 2.12.1-aikido.22.17.2-aikido.2 |
golang-github-prometheus-prometheusSUSE:Multi Linux Manager Tools SLE-15 From an advisory covering 58 CVEs |
before 3.13.2-150002.3.19.1 | 3.13.2-150002.3.19.1 |
grafanaSUSE:Multi Linux Manager Tools SLE-15 From an advisory covering 58 CVEs |
before 12.4.10-150002.4.27.1 | 12.4.10-150002.4.27.1 |
mgr-pushSUSE:Multi Linux Manager Tools SLE-15 From an advisory covering 58 CVEs |
before 5.2.5-150002.3.12.1 | 5.2.5-150002.3.12.1 |
spacecmdSUSE:Multi Linux Manager Tools SLE-15 From an advisory covering 58 CVEs |
before 5.2.10-150002.3.15.1 | 5.2.10-150002.3.15.1 |
spacewalk-client-toolsSUSE:Multi Linux Manager Tools SLE-15 From an advisory covering 58 CVEs |
before 5.2.7-150002.3.12.1 | 5.2.7-150002.3.12.1 |
uyuni-toolsSUSE:Multi Linux Manager Tools SLE-15 From an advisory covering 58 CVEs |
before 5.2.17-150002.3.20.1 | 5.2.17-150002.3.20.1 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
venv-salt-minionSUSE:Multi Linux Manager Tools SLE-15 From an advisory covering 58 CVEs |
before 3006.0-150002.5.22.1 | 3006.0-150002.5.22.1 |
uyuni-toolsSUSE:Multi Linux Manager Tools SLE-Micro-5 From an advisory covering 58 CVEs |
before 5.2.17-150002.3.20.1 | 5.2.17-150002.3.20.1 |
venv-salt-minionSUSE:Multi Linux Manager Tools SLE-Micro-5 From an advisory covering 58 CVEs |
before 3006.0-150002.5.22.1 | 3006.0-150002.5.22.1 |
golang-github-prometheus-prometheusSUSE:Linux Enterprise Module for Package Hub 15 SP7 From an advisory covering 11 CVEs |
before 3.13.2-150100.4.40.2 | 3.13.2-150100.4.40.2 |
golang-github-prometheus-prometheusopenSUSE:Tumbleweed From an advisory covering 4 CVEs |
before 3.13.2-1.1 | 3.13.2-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-44990 is a critical vulnerability (CVSS 9.3) in Apostrophecms Sanitize-html, published May 14, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.68%, the 52nd percentile. Fixed in sanitize-html 2.17.4.
References
github.com/apostrophecms/apostrophe/security/advisories/GHSA-rpr9-rxv7-x643
access.redhat.com/security/cve/CVE-2026-44990
bugzilla.redhat.com/show_bug.cgi?id=2488565
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-44990.json
access.redhat.com/errata/RHSA-2026:41064
access.redhat.com/errata/RHSA-2026:47737
Show 170 moreShow less
access.redhat.com/errata/RHSA-2026:36882
access.redhat.com/errata/RHSA-2026:46903
access.redhat.com/errata/RHSA-2026:57191
access.redhat.com/errata/RHSA-2026:60386
access.redhat.com/errata/RHSA-2026:46685
access.redhat.com/errata/RHSA-2026:46598
access.redhat.com/errata/RHSA-2026:63103
access.redhat.com/errata/RHSA-2026:63046
access.redhat.com/errata/RHSA-2026:60441
access.redhat.com/errata/RHSA-2026:48124
access.redhat.com/errata/RHSA-2026:41031
access.redhat.com/errata/RHSA-2026:42146
access.redhat.com/errata/RHSA-2026:43052
access.redhat.com/errata/RHSA-2026:42796
access.redhat.com/errata/RHSA-2026:41066
access.redhat.com/errata/RHSA-2026:40262
access.redhat.com/errata/RHSA-2026:51349
access.redhat.com/errata/RHSA-2026:51196
access.redhat.com/errata/RHSA-2026:51197
access.redhat.com/errata/RHSA-2026:57194
access.redhat.com/errata/RHSA-2026:59593
access.redhat.com/errata/RHSA-2026:46885
access.redhat.com/errata/RHSA-2026:41055
access.redhat.com/errata/RHSA-2026:47735
access.redhat.com/errata/RHSA-2026:36883
github.com/apostrophecms/apostrophe/issues/5418
github.com/apostrophecms/apostrophe/commit/8d4c882b4ed3a7ce802cd87f89f0c1cb7482b8c2
nvd.nist.gov/vuln/detail/CVE-2026-44990
github.com/advisories/GHSA-rpr9-rxv7-x643
github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44990.json
github.com/apostrophecms/apostrophe
suse.com/support/update/announcement/2026/suse-su-20264585-1
bugzilla.suse.com/1218722
bugzilla.suse.com/1230949
bugzilla.suse.com/1252286
bugzilla.suse.com/1254400
bugzilla.suse.com/1257151
bugzilla.suse.com/1257599
bugzilla.suse.com/1259989
bugzilla.suse.com/1261969
bugzilla.suse.com/1261970
bugzilla.suse.com/1262098
bugzilla.suse.com/1262187
bugzilla.suse.com/1262319
bugzilla.suse.com/1262429
bugzilla.suse.com/1262492
bugzilla.suse.com/1262654
bugzilla.suse.com/1262803
bugzilla.suse.com/1263254
bugzilla.suse.com/1263330
bugzilla.suse.com/1263442
bugzilla.suse.com/1263822
bugzilla.suse.com/1263823
bugzilla.suse.com/1264962
bugzilla.suse.com/1265267
bugzilla.suse.com/1265268
bugzilla.suse.com/1265413
bugzilla.suse.com/1265525
bugzilla.suse.com/1265763
bugzilla.suse.com/1266481
bugzilla.suse.com/1266608
bugzilla.suse.com/1266669
bugzilla.suse.com/1267261
bugzilla.suse.com/1267528
bugzilla.suse.com/1267534
bugzilla.suse.com/1267538
bugzilla.suse.com/1267581
bugzilla.suse.com/1267821
bugzilla.suse.com/1267980
bugzilla.suse.com/1268325
bugzilla.suse.com/1268395
bugzilla.suse.com/1268396
bugzilla.suse.com/1268397
bugzilla.suse.com/1268649
bugzilla.suse.com/1268755
bugzilla.suse.com/1268868
bugzilla.suse.com/1268977
bugzilla.suse.com/1269066
bugzilla.suse.com/1269788
bugzilla.suse.com/1269841
bugzilla.suse.com/1269856
bugzilla.suse.com/1269959
bugzilla.suse.com/1269966
bugzilla.suse.com/1270033
bugzilla.suse.com/1270285
bugzilla.suse.com/1270398
bugzilla.suse.com/1270399
bugzilla.suse.com/1270711
bugzilla.suse.com/1271192
bugzilla.suse.com/1271330
bugzilla.suse.com/1271428
bugzilla.suse.com/1271557
bugzilla.suse.com/1271613
bugzilla.suse.com/1272008
bugzilla.suse.com/1272102
bugzilla.suse.com/1272328
bugzilla.suse.com/1272427
bugzilla.suse.com/1273094
bugzilla.suse.com/1273144
bugzilla.suse.com/1274217
bugzilla.suse.com/1274221
bugzilla.suse.com/1275205
bugzilla.suse.com/1275206
bugzilla.suse.com/1275207
bugzilla.suse.com/1275934
bugzilla.suse.com/1276426
bugzilla.suse.com/1276658
bugzilla.suse.com/1276973
bugzilla.suse.com/1277025
bugzilla.suse.com/1278307
bugzilla.suse.com/1278322
suse.com/security/cve/CVE-2023-45289
suse.com/security/cve/CVE-2024-22195
suse.com/security/cve/CVE-2025-13836
suse.com/security/cve/CVE-2025-4673
suse.com/security/cve/CVE-2025-61686
suse.com/security/cve/CVE-2026-0864
suse.com/security/cve/CVE-2026-11940
suse.com/security/cve/CVE-2026-11972
suse.com/security/cve/CVE-2026-1229
suse.com/security/cve/CVE-2026-13346
suse.com/security/cve/CVE-2026-14199
suse.com/security/cve/CVE-2026-1502
suse.com/security/cve/CVE-2026-15308
suse.com/security/cve/CVE-2026-1703
suse.com/security/cve/CVE-2026-17033
suse.com/security/cve/CVE-2026-17183
suse.com/security/cve/CVE-2026-19197
suse.com/security/cve/CVE-2026-19475
suse.com/security/cve/CVE-2026-21723
suse.com/security/cve/CVE-2026-2303
suse.com/security/cve/CVE-2026-27459
suse.com/security/cve/CVE-2026-3219
suse.com/security/cve/CVE-2026-3276
suse.com/security/cve/CVE-2026-33814
suse.com/security/cve/CVE-2026-3446
suse.com/security/cve/CVE-2026-3479
suse.com/security/cve/CVE-2026-39821
suse.com/security/cve/CVE-2026-39882
suse.com/security/cve/CVE-2026-40181
suse.com/security/cve/CVE-2026-40475
suse.com/security/cve/CVE-2026-41066
suse.com/security/cve/CVE-2026-41178
suse.com/security/cve/CVE-2026-41606
suse.com/security/cve/CVE-2026-42127
suse.com/security/cve/CVE-2026-42211
suse.com/security/cve/CVE-2026-42342
suse.com/security/cve/CVE-2026-4360
suse.com/security/cve/CVE-2026-44431
suse.com/security/cve/CVE-2026-44990
suse.com/security/cve/CVE-2026-45409
suse.com/security/cve/CVE-2026-4786
suse.com/security/cve/CVE-2026-49825
suse.com/security/cve/CVE-2026-49853
suse.com/security/cve/CVE-2026-49854
suse.com/security/cve/CVE-2026-49855
suse.com/security/cve/CVE-2026-53606
suse.com/security/cve/CVE-2026-56852
suse.com/security/cve/CVE-2026-6019
suse.com/security/cve/CVE-2026-6100
suse.com/security/cve/CVE-2026-6357
suse.com/security/cve/CVE-2026-7210
suse.com/security/cve/CVE-2026-73501
suse.com/security/cve/CVE-2026-7774
suse.com/security/cve/CVE-2026-8328
suse.com/security/cve/CVE-2026-8595
suse.com/security/cve/CVE-2026-8609
suse.com/security/cve/CVE-2026-8643
suse.com/security/cve/CVE-2026-9029
suse.com/support/update/announcement/2026/suse-su-20264606-1
Left out here: the rest of 1 source description. The JSON record has them.