<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Fri, 02 Oct 2026 12:25:58 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-15599 — DOMPurify XSS via Textarea Rawtext Bypass in SAFE_FOR_XML</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2025-15599</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; cure53 DOMPurify&lt;/p&gt;
&lt;p&gt;DOMPurify 3.1.3 through 3.2.6 and 2.5.3 through 2.5.8 contain a cross-site scripting vulnerability that allows attackers to bypass attribute sanitization by exploiting missing textarea rawtext element validation in the SAFE_FOR_XML regex. Attackers can include closing rawtext tags like &amp;lt;/textarea&amp;gt; in attribute values to break out of rawtext contexts and execute JavaScript when sanitized output is placed inside rawtext elements. The 3.x branch was fixed in 3.2.7; the 2.x branch was never patched.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; cure53 DOMPurify&lt;/p&gt;
&lt;p&gt;DOMPurify 3.1.3 through 3.2.6 and 2.5.3 through 2.5.8 contain a cross-site scripting vulnerability that allows attackers to bypass attribute sanitization by exploiting missing textarea rawtext element validation in the SAFE_FOR_XML regex. Attackers can include closing rawtext tags like &amp;lt;/textarea&amp;gt; in attribute values to break out of rawtext contexts and execute JavaScript when sanitized output is placed inside rawtext elements. The 3.x branch was fixed in 3.2.7; the 2.x branch was never patched.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2025-15599</guid>
    </item>
    <item>
      <title>GHSA-2328-f5f3-gj25 — Forge has a basicConstraints bypass in its certificate chain verification (RFC 5280 violation)</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-2328-f5f3-gj25</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: node-forge&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`pki.verifyCertificateChain()` does not enforce RFC 5280 basicConstraints requirements when an intermediate certificate lacks both the `basicConstraints` and `keyUsage` extensions. This allows any leaf certificate (without these extensions) to act as a CA and sign other certificates, which node-forge will accept as valid.&lt;/p&gt;
&lt;p&gt;## Technical Details&lt;/p&gt;
&lt;p&gt;In `lib/x509.js`, the `verifyCertificateChain()` function (around lines 3147-3199) has two conditional checks for CA authorization:&lt;/p&gt;
&lt;p&gt;1. The `keyUsage` check (which includes a sub-check requiring `basicConstraints` to be present) is gated on `keyUsageExt !== null`
2. The `basicConstraints.cA` check is gated on `bcExt !== null`&lt;/p&gt;
&lt;p&gt;When a certificate has **neither** extension, both checks are skipped entirely. The certificate passes all CA validation and is accepted as a valid intermediate CA.&lt;/p&gt;
&lt;p&gt;**RFC 5280 Section 6.1.4 step (k) requires:**
&amp;gt; &amp;#34;If certificate i is a version 3 certificate, verify that the basicConstraints extension is present and that cA is set to TRUE.&amp;#34;&lt;/p&gt;
&lt;p&gt;The absence of `basicConstraints` should result in rejection, not acceptance.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;```javascript
const forge = require(&amp;#39;node-forge&amp;#39;);
const pki = forge.pki;&lt;/p&gt;
&lt;p&gt;function generateKeyPair() {
  return pki.rsa.generateKeyPair({ bits: 2048, e: 0x10001 });
}&lt;/p&gt;
&lt;p&gt;console.log(&amp;#39;=== node-forge basicConstraints Bypass PoC ===\n&amp;#39;);&lt;/p&gt;
&lt;p&gt;// 1. Create a legitimate Root CA (self-signed, with basicConstraints cA=true)
const rootKeys = generateKeyPair();
const rootCert =…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: node-forge&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`pki.verifyCertificateChain()` does not enforce RFC 5280 basicConstraints requirements when an intermediate certificate lacks both the `basicConstraints` and `keyUsage` extensions. This allows any leaf certificate (without these extensions) to act as a CA and sign other certificates, which node-forge will accept as valid.&lt;/p&gt;
&lt;p&gt;## Technical Details&lt;/p&gt;
&lt;p&gt;In `lib/x509.js`, the `verifyCertificateChain()` function (around lines 3147-3199) has two conditional checks for CA authorization:&lt;/p&gt;
&lt;p&gt;1. The `keyUsage` check (which includes a sub-check requiring `basicConstraints` to be present) is gated on `keyUsageExt !== null`
2. The `basicConstraints.cA` check is gated on `bcExt !== null`&lt;/p&gt;
&lt;p&gt;When a certificate has **neither** extension, both checks are skipped entirely. The certificate passes all CA validation and is accepted as a valid intermediate CA.&lt;/p&gt;
&lt;p&gt;**RFC 5280 Section 6.1.4 step (k) requires:**
&amp;gt; &amp;#34;If certificate i is a version 3 certificate, verify that the basicConstraints extension is present and that cA is set to TRUE.&amp;#34;&lt;/p&gt;
&lt;p&gt;The absence of `basicConstraints` should result in rejection, not acceptance.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;```javascript
const forge = require(&amp;#39;node-forge&amp;#39;);
const pki = forge.pki;&lt;/p&gt;
&lt;p&gt;function generateKeyPair() {
  return pki.rsa.generateKeyPair({ bits: 2048, e: 0x10001 });
}&lt;/p&gt;
&lt;p&gt;console.log(&amp;#39;=== node-forge basicConstraints Bypass PoC ===\n&amp;#39;);&lt;/p&gt;
&lt;p&gt;// 1. Create a legitimate Root CA (self-signed, with basicConstraints cA=true)
const rootKeys = generateKeyPair();
const rootCert =…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-2328-f5f3-gj25</guid>
    </item>
  </channel>
</rss>
