<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CVE Reports</title>
    <description>The latest articles on DEV Community by CVE Reports (@cverports).</description>
    <link>https://dev.to/cverports</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1959489%2F6e9f36b9-96a5-441a-a9b5-6993444f71d8.png</url>
      <title>DEV Community: CVE Reports</title>
      <link>https://dev.to/cverports</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cverports"/>
    <language>en</language>
    <item>
      <title>CVE-2026-122006: CVE-2026-122006: Unauthenticated Arbitrary File Read and Write in Ruby on Rails Active Storage via ImageMagick</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Fri, 13 Nov 2026 00:31:20 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-122006-cve-2026-122006-unauthenticated-arbitrary-file-read-and-write-in-ruby-on-rails-2p42</link>
      <guid>https://dev.to/cverports/cve-2026-122006-cve-2026-122006-unauthenticated-arbitrary-file-read-and-write-in-ruby-on-rails-2p42</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-122006: Unauthenticated Arbitrary File Read and Write in Ruby on Rails Active Storage via ImageMagick
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-122006&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 9.8&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-12&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-122006 is a critical vulnerability in the Ruby on Rails Active Storage framework affecting versions prior to 8.0.5.2 and 8.1.4.1. When an application processes uploaded file attachments using the ImageMagick variant processor (:mini_magick), the framework invokes ImageMagick's metadata analyzer without applying a restrictive security policy. An unauthenticated attacker can upload a crafted file containing directives for unrestricted ImageMagick coders, such as Magick Scripting Language (MSL), resulting in arbitrary server-side file read and write operations. In deployments using the Disk storage service, attackers can exfiltrate sensitive application configuration files, including secret_key_base and master encryption keys, which enables remote code execution via signed payload forgery.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Active Storage prior to 8.0.5.2 and 8.1.4.1 invokes ImageMagick via MiniMagick without restricting dangerous coders (such as MSL, TEXT, EPHEMERAL, and Ghostscript delegates). Uploading a malicious attachment triggers automatic metadata analysis, enabling unauthenticated arbitrary file read and write on the server.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Exploit Status: POC
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-122006 (GHSA-f3w6-w445-fwh9)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness Class&lt;/strong&gt;: CWE-1188 (Initialization of a Resource with an Insecure Default)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Unauthenticated File Upload)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 9.8 CRITICAL (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EPSS Score&lt;/strong&gt;: 0.74% (55.14th Percentile)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary Impact&lt;/strong&gt;: Arbitrary File Read &amp;amp; Write / Secret Exfiltration / RCE&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Proof-of-Concept &amp;amp; Detection Tooling Available&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ruby on Rails (activestorage gem &amp;lt; 8.0.5.2)&lt;/li&gt;
&lt;li&gt;Ruby on Rails (activestorage gem &amp;gt;= 8.1.0, &amp;lt; 8.1.4.1)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;activestorage&lt;/strong&gt;: &amp;lt; 8.0.5.2 (Fixed in: &lt;code&gt;8.0.5.2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;activestorage&lt;/strong&gt;: &amp;gt;= 8.1.0, &amp;lt; 8.1.4.1 (Fixed in: &lt;code&gt;8.1.4.1&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/rails/rails/commit/468aa9a93fc98f5476b6821770f4ccfcb7f7d328" rel="noopener noreferrer"&gt;468aa9a&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ship a restrictive ImageMagick policy.xml in Active Storage and enforce mini_magick &amp;gt;= 5.1 via MAGICK_CONFIGURE_PATH.&lt;/p&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/rails/rails/commit/ea8c40121ce53a3d0255cd4eb6d13bfe3bc01776" rel="noopener noreferrer"&gt;ea8c401&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Backport ImageMagick security policy enforcement for Active Storage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploit Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/charlie-goldenowl/cve-2026-122006-check" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;: Audit and detection script checking Gemfile.lock versions, variant_processor settings, and host ImageMagick policy.xml rules for CVE-2026-122006.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://hackerone.com/reports/3904256" rel="noopener noreferrer"&gt;HackerOne&lt;/a&gt;: Original vulnerability disclosure report detailing the Active Storage ImageMagick security policy bypass.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade activestorage and mini_magick gems to patched releases that enforce a built-in ImageMagick security policy.&lt;/li&gt;
&lt;li&gt;Migrate the Active Storage variant processor from :mini_magick to :vips (libvips).&lt;/li&gt;
&lt;li&gt;Configure a system-wide ImageMagick policy.xml in /etc/ImageMagick-6/ or /etc/ImageMagick-7/ to disable dangerous coders (MSL, TEXT, EPHEMERAL, MPC, URL, FILE) and Ghostscript delegates.&lt;/li&gt;
&lt;li&gt;Rotate all application secrets (secret_key_base, master.key, database credentials) if an affected application used the Disk storage service with untrusted uploads.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Update Gemfile to require activestorage &amp;gt;= 8.0.5.2 (for Rails 8.0.x) or &amp;gt;= 8.1.4.1 (for Rails 8.1.x), and ensure gem 'mini_magick', '~&amp;gt; 5.1' is specified.&lt;/li&gt;
&lt;li&gt;Run 'bundle update activestorage mini_magick' and redeploy the application.&lt;/li&gt;
&lt;li&gt;Verify the active ImageMagick policy using: bin/rails runner 'puts MiniMagick.identify { |i| i.list "policy" }'.&lt;/li&gt;
&lt;li&gt;If previously exposed with the Disk storage service, rotate secret_key_base, re-encrypt credentials.yml.enc with a new master key, and invalidate active sessions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-122006" rel="noopener noreferrer"&gt;CVE-2026-122006 Official Record&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-122006" rel="noopener noreferrer"&gt;NVD Vulnerability Detail: CVE-2026-122006&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/security/advisories/GHSA-f3w6-w445-fwh9" rel="noopener noreferrer"&gt;GitHub Security Advisory GHSA-f3w6-w445-fwh9&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/commit/468aa9a93fc98f5476b6821770f4ccfcb7f7d328" rel="noopener noreferrer"&gt;Rails Fix Commit (main): Enforce ImageMagick security policy in Active Storage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/commit/ea8c40121ce53a3d0255cd4eb6d13bfe3bc01776" rel="noopener noreferrer"&gt;Rails Fix Commit (backport): Enforce ImageMagick security policy in Active Storage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/releases/tag/v8.0.5.2" rel="noopener noreferrer"&gt;Ruby on Rails v8.0.5.2 Release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/releases/tag/v8.1.4.1" rel="noopener noreferrer"&gt;Ruby on Rails v8.1.4.1 Release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://hackerone.com/reports/3904256" rel="noopener noreferrer"&gt;HackerOne Report #3904256&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/ruby-advisory-db/pull/1300" rel="noopener noreferrer"&gt;Ruby Advisory Database PR #1300&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/digitalocean/droplet-1-clicks/pull/488" rel="noopener noreferrer"&gt;DigitalOcean Droplet 1-Clicks Update PR #488&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/alan-turing-institute/cyber-threat-observatory/blob/main/reports/2026-11-04/TIER_2_CVE-2026-122006.md" rel="noopener noreferrer"&gt;Alan Turing Institute Cyber Threat Observatory Report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/charlie-goldenowl/cve-2026-122006-check" rel="noopener noreferrer"&gt;Community Detection Script: cve-2026-122006-check&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://threatdefence.com/article/rails-active-storage-cve-2026-122006-patching-hunting" rel="noopener noreferrer"&gt;Threat Defence Analysis: Rails Active Storage CVE-2026-122006 Patching &amp;amp; Hunting&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-122006" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-122006 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-128065: CVE-2026-128065: Authorization Bypass via Unapplied RBAC Overrides in @grpc/grpc-js-xds</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Thu, 12 Nov 2026 23:30:49 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-128065-cve-2026-128065-authorization-bypass-via-unapplied-rbac-overrides-in-ohb</link>
      <guid>https://dev.to/cverports/cve-2026-128065-cve-2026-128065-authorization-bypass-via-unapplied-rbac-overrides-in-ohb</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-128065: Authorization Bypass via Unapplied RBAC Overrides in @grpc/grpc-js-xds
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-128065&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 6.9&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-12&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-128065 (also tracked as GHSA-gg5j-6742-v827) is an authorization bypass vulnerability affecting the @grpc/grpc-js-xds library in the Node.js gRPC ecosystem. In versions 1.14.0 and 1.14.1, XdsServer acknowledges Route and VirtualHost resources from an xDS control plane while failing to parse, store, or apply RBACPerRoute override configurations. When experimental RBAC is enabled and a broad top-level ALLOW policy is paired with restrictive VirtualHost or Route overrides, the server evaluates requests strictly against the top-level policy, permitting unauthorized RPC execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;An incorrect authorization flaw (CWE-863) in @grpc/grpc-js-xds versions 1.14.0 and 1.14.1 causes XdsServer to ignore VirtualHost and Route-level RBAC override configurations. Deployments relying on permissive top-level RBAC filters combined with restrictive route-specific overrides will fail to block unauthorized RPC requests. Upgrading @grpc/grpc-js-xds to version 1.14.2 resolves the issue.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Exploit Status: POC
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-128065 (GHSA-gg5j-6742-v827)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness Class&lt;/strong&gt;: CWE-863 (Incorrect Authorization)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v4.0 Score&lt;/strong&gt;: 6.9 Medium (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: @grpc/grpc-js-xds (&amp;gt;= 1.14.0, &amp;lt; 1.14.2)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Unauthenticated gRPC Request)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Impact&lt;/strong&gt;: Bypass of VirtualHost and Route RBACPerRoute authorization policies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: PoC Available (Official Unit Tests)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patched Version&lt;/strong&gt;: @grpc/grpc-js-xds 1.14.2&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;@grpc/grpc-js-xds&lt;/li&gt;
&lt;li&gt;grpc-node XdsServer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;@grpc/grpc-js-xds&lt;/strong&gt;: &amp;gt;= 1.14.0, &amp;lt; 1.14.2 (Fixed in: &lt;code&gt;1.14.2&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/grpc/grpc-node/commit/b8f3ced4d4699338dd33dc0f7b1d68d689a31d0e" rel="noopener noreferrer"&gt;b8f3ced&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;grpc-js-xds: Fix RBAC override config handling&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;File: packages/grpc-js-xds/src/http-filter/rbac-filter.ts
&lt;span class="gu"&gt;@@ -171,5 +171,10 @@ export function setup() {&lt;/span&gt;
       parseOverrideFilterConfig: parseOverrideRbacConfig,
       createServerFilter: createRbacServerFilter
     });
&lt;span class="gi"&gt;+    registerHttpFilter(RBAC_FILTER_OVERRIDE_URL, {&lt;/span&gt;
&lt;span class="gi"&gt;+      parseTopLevelFilterConfig: parseTopLevelRbacConfig,&lt;/span&gt;
&lt;span class="gi"&gt;+      parseOverrideFilterConfig: parseOverrideRbacConfig,&lt;/span&gt;
&lt;span class="gi"&gt;+      createServerFilter: createRbacServerFilter&lt;/span&gt;
&lt;span class="gi"&gt;+    });&lt;/span&gt;
   }
 }

File: packages/grpc-js-xds/src/server.ts
&lt;span class="gu"&gt;@@ -170,7 +170,7 @@ class FilterChainEntry {&lt;/span&gt;
       const filterConfig = parseTopLevelFilterConfig(filter.typed_config!, false);
       if (filterConfig) {
         const filterOverrideConfigMap = new Map&amp;lt;string, HttpFilterConfig&amp;gt;();
&lt;span class="gd"&gt;-        this.overrideConfigMaps.set(filterConfig.typeUrl, filterOverrideConfigMap);&lt;/span&gt;
&lt;span class="gi"&gt;+        this.overrideConfigMaps.set(filter.name, filterOverrideConfigMap);&lt;/span&gt;
         const filterInterceptor = createServerHttpFilter(filterConfig, filterOverrideConfigMap);
         if (filterInterceptor) {
           httpFilterInterceptors.push(filterInterceptor);
&lt;span class="gu"&gt;@@ -227,6 +227,14 @@ class FilterChainEntry {&lt;/span&gt;
         domains: virtualHost.domains,
         routes: []
       };
&lt;span class="gi"&gt;+      // filter name -&amp;gt; config&lt;/span&gt;
&lt;span class="gi"&gt;+      const virtualHostOverrideConfigs = new Map&amp;lt;string, HttpFilterConfig&amp;gt;()&lt;/span&gt;
&lt;span class="gi"&gt;+      for (const [filterName, overrideConfig] of Object.entries(virtualHost.typed_per_filter_config)) {&lt;/span&gt;
&lt;span class="gi"&gt;+        const parsedConfig = parseOverrideFilterConfig(overrideConfig);&lt;/span&gt;
&lt;span class="gi"&gt;+        if (parsedConfig) {&lt;/span&gt;
&lt;span class="gi"&gt;+          virtualHostOverrideConfigs.set(filterName, parsedConfig);&lt;/span&gt;
&lt;span class="gi"&gt;+        }&lt;/span&gt;
&lt;span class="gi"&gt;+      }&lt;/span&gt;
       for (const [routeIndex, route] of virtualHost.routes.entries()) {
         const routeEntry: RouteEntry = {
           id: `virtualhost=${virtualHostIndex} route=${routeIndex}`,
&lt;span class="gu"&gt;@@ -238,10 +246,19 @@ class FilterChainEntry {&lt;/span&gt;
           this.logConfigurationError('For domains matching [' + virtualHostEntry.domains + '] requests will be rejected for routes matching ' + routeEntry.matcher.toString());
         }
         virtualHostEntry.routes.push(routeEntry);
&lt;span class="gd"&gt;-        for (const [filterName, overrideConfig] of Object.entries(route.typed_per_filter_config)) {&lt;/span&gt;
&lt;span class="gd"&gt;-          const parsedConfig = parseOverrideFilterConfig(overrideConfig);&lt;/span&gt;
&lt;span class="gd"&gt;-          if (parsedConfig) {&lt;/span&gt;
&lt;span class="gd"&gt;-            this.overrideConfigMaps.get(filterName)?.set(routeEntry.id, parsedConfig);&lt;/span&gt;
&lt;span class="gi"&gt;+        for (const filterName of this.overrideConfigMaps.keys()) {&lt;/span&gt;
&lt;span class="gi"&gt;+          // Use the virtual host override by default&lt;/span&gt;
&lt;span class="gi"&gt;+          let routeOverrideConfig = virtualHostOverrideConfigs.get(filterName);&lt;/span&gt;
&lt;span class="gi"&gt;+          if (filterName in route.typed_per_filter_config) {&lt;/span&gt;
&lt;span class="gi"&gt;+            const parsedConfig = parseOverrideFilterConfig(route.typed_per_filter_config[filterName]);&lt;/span&gt;
&lt;span class="gi"&gt;+            if (parsedConfig) {&lt;/span&gt;
&lt;span class="gi"&gt;+              /* If the route has an override config and it parses successfully,&lt;/span&gt;
&lt;span class="gi"&gt;+               * use it instead because it is more specific. */&lt;/span&gt;
&lt;span class="gi"&gt;+              routeOverrideConfig = parsedConfig;&lt;/span&gt;
&lt;span class="gi"&gt;+            }&lt;/span&gt;
&lt;span class="gi"&gt;+          }&lt;/span&gt;
&lt;span class="gi"&gt;+          if (routeOverrideConfig) {&lt;/span&gt;
&lt;span class="gi"&gt;+            this.overrideConfigMaps.get(filterName)!.set(routeEntry.id, routeOverrideConfig);&lt;/span&gt;
           }
         }
       }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Exploit Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/grpc/grpc-node/commit/b8f3ced4d4699338dd33dc0f7b1d68d689a31d0e" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;: Official unit and integration regression tests demonstrating VirtualHost and Route-level RBAC override bypass scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade @grpc/grpc-js-xds to version 1.14.2 or later to ensure RBACPerRoute overrides in VirtualHost and Route resources are properly parsed and enforced.&lt;/li&gt;
&lt;li&gt;Consolidate RBAC policies into the top-level HTTP filter configuration on the Listener resource rather than relying on VirtualHost or Route typed_per_filter_config overrides.&lt;/li&gt;
&lt;li&gt;Implement application-layer authorization checks using native @grpc/grpc-js server interceptors to validate caller identity and permissions per RPC method.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Audit Node.js projects and container images to identify installations of @grpc/grpc-js-xds versions 1.14.0 and 1.14.1.&lt;/li&gt;
&lt;li&gt;Update package.json to require @grpc/grpc-js-xds version ^1.14.2 and run npm install or yarn upgrade.&lt;/li&gt;
&lt;li&gt;Verify that xDS RouteConfiguration resources containing RBACPerRoute entries return status.PERMISSION_DENIED (code 7) for unauthorized test RPCs.&lt;/li&gt;
&lt;li&gt;Redeploy affected Node.js gRPC server workloads.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/grpc/grpc-node/security/advisories/GHSA-gg5j-6742-v827" rel="noopener noreferrer"&gt;GitHub Security Advisory GHSA-gg5j-6742-v827&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grpc/grpc-node/commit/b8f3ced4d4699338dd33dc0f7b1d68d689a31d0e" rel="noopener noreferrer"&gt;Official Fix Commit b8f3ced4d4699338dd33dc0f7b1d68d689a31d0e&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grpc/grpc-node/releases/tag/@grpc/grpc-js-xds@1.14.2" rel="noopener noreferrer"&gt;Release @grpc/grpc-js-xds@1.14.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-128065" rel="noopener noreferrer"&gt;CVE-2026-128065 Record on CVE.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://attack.mitre.org/search/?search=CVE-2026-128065" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK Search for CVE-2026-128065&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-128065" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-128065 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-126188: CVE-2026-126188: Local Media Information Disclosure in Ruby on Rails Active Storage via FFmpeg Demuxer…</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Thu, 12 Nov 2026 22:30:49 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-126188-cve-2026-126188-local-media-information-disclosure-in-ruby-on-rails-active-3p55</link>
      <guid>https://dev.to/cverports/cve-2026-126188-cve-2026-126188-local-media-information-disclosure-in-ruby-on-rails-active-3p55</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-126188: Local Media Information Disclosure in Ruby on Rails Active Storage via FFmpeg Demuxer Selection
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-126188&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 3.7&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-12&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-126188 (GHSA-3f4q-8x5m-76v8) is an information disclosure vulnerability in the Active Storage component of Ruby on Rails prior to versions 8.0.5.2 and 8.1.4.1. When generating previews or extracting metadata from uploaded media files, Active Storage invokes the external command-line tools ffmpeg and ffprobe without specifying a format whitelist. An attacker who can upload a crafted HTTP Live Streaming (HLS) playlist while declaring a standard video or audio MIME type can cause FFmpeg to engage the HLS demuxer, resolve file:// segment URIs, and disclose visual frames or metadata from local media files readable by the Rails application process.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Active Storage prior to Rails 8.0.5.2 and 8.1.4.1 passes uploaded media files to ffmpeg and ffprobe without the -format_whitelist argument. Attackers can upload an HLS (.m3u8) playlist masquerading as a video or audio file to read local media files via the file:// protocol and leak their contents through generated thumbnail previews or metadata records.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Exploit Status: POC
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability ID&lt;/strong&gt;: CVE-2026-126188 / GHSA-3f4q-8x5m-76v8&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness Class&lt;/strong&gt;: CWE-200: Exposure of Sensitive Information to an Unauthorized Actor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: Active Storage (VideoPreviewer, VideoAnalyzer, AudioAnalyzer)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Crafted HLS .m3u8 Direct Upload with file:// Segment URIs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 3.7 Low (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EPSS Score&lt;/strong&gt;: 0.28% (20.62nd Percentile)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact&lt;/strong&gt;: Unauthorized disclosure of local media frames and metadata readable by the Rails process&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patched Versions&lt;/strong&gt;: Rails 8.0.5.2, Rails 8.1.4.1&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ruby on Rails (activestorage gem) &amp;lt; 8.0.5.2&lt;/li&gt;
&lt;li&gt;Ruby on Rails (activestorage gem) &amp;gt;= 8.1.0, &amp;lt; 8.1.4.1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;activestorage (Ruby on Rails)&lt;/strong&gt;: &amp;lt; 8.0.5.2 (Fixed in: &lt;code&gt;8.0.5.2&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;activestorage (Ruby on Rails)&lt;/strong&gt;: &amp;gt;= 8.1.0, &amp;lt; 8.1.4.1 (Fixed in: &lt;code&gt;8.1.4.1&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/rails/rails/commit/3b1f2627538dc597cd973530c08514a26c2b0282" rel="noopener noreferrer"&gt;3b1f262&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enforce -format_whitelist in Active Storage ffmpeg and ffprobe invocations (Rails 8.1 branch)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gu"&gt;@@ -382,6 +382,12 @@ module ActiveStorage&lt;/span&gt;
   mattr_accessor :video_preview_arguments, default: "-y -vframes 1 -f image2"

&lt;span class="gi"&gt;+  mattr_accessor :ffmpeg_allowed_formats, default: %w[ mov matroska avi mpeg mpegts flv asf ogg mp3 wav flac aac aiff caf ].freeze&lt;/span&gt;
&lt;span class="gi"&gt;+&lt;/span&gt;
&lt;span class="gi"&gt;+  def self.ffmpeg_format_whitelist_arguments # :nodoc:&lt;/span&gt;
&lt;span class="gi"&gt;+    [ "-format_whitelist", Array(ffmpeg_allowed_formats).join(",") ] unless ffmpeg_allowed_formats.nil?&lt;/span&gt;
&lt;span class="gi"&gt;+  end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/rails/rails/commit/69aff80d115bbb9d1e82fd6c6f2fd3ddeafb958b" rel="noopener noreferrer"&gt;69aff80&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Enforce -format_whitelist in Active Storage ffmpeg and ffprobe invocations (Rails 8.0 branch)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gu"&gt;@@ -30,7 +30,7 @@ def preview(**options)&lt;/span&gt;
     private
       def draw_relevant_frame_from(file, &amp;amp;block)
&lt;span class="gd"&gt;-        draw self.class.ffmpeg_path, "-i", file.path, *Shellwords.split(ActiveStorage.video_preview_arguments), "-", &amp;amp;block&lt;/span&gt;
&lt;span class="gi"&gt;+        draw self.class.ffmpeg_path, *ActiveStorage.ffmpeg_format_whitelist_arguments, "-i", file.path, *Shellwords.split(ActiveStorage.video_preview_arguments), "-", &amp;amp;block&lt;/span&gt;
       end
   end
 end
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Enforce a strict container format allowlist (-format_whitelist) whenever invoking ffmpeg or ffprobe on untrusted files to prevent automatic probing of playlist demuxers like HLS.&lt;/li&gt;
&lt;li&gt;Perform server-side binary MIME type identification on uploaded blobs rather than trusting client-declared content_type metadata during direct uploads.&lt;/li&gt;
&lt;li&gt;Store uploaded blobs on isolated object storage services (such as Amazon S3, Google Cloud Storage, or Azure Blob Storage) rather than the local filesystem to minimize the presence of sensitive media files on the application host.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Update the Gemfile to specify gem 'rails', '&amp;gt;= 8.0.5.2' (for 8.0.x) or '&amp;gt;= 8.1.4.1' (for 8.1.x).&lt;/li&gt;
&lt;li&gt;Execute 'bundle update rails activestorage' and redeploy the application.&lt;/li&gt;
&lt;li&gt;Verify that config.active_storage.ffmpeg_allowed_formats is not set to nil and does not include 'hls' in any environment configuration files.&lt;/li&gt;
&lt;li&gt;If immediate upgrading is blocked, deploy an initializer that prepends '-format_whitelist' with safe container formats to VideoPreviewer, VideoAnalyzer, and AudioAnalyzer.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/security/advisories/GHSA-3f4q-8x5m-76v8" rel="noopener noreferrer"&gt;GitHub Security Advisory GHSA-3f4q-8x5m-76v8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-126188" rel="noopener noreferrer"&gt;NVD Vulnerability Detail: CVE-2026-126188&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-126188" rel="noopener noreferrer"&gt;CVE.org Record: CVE-2026-126188&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/releases/tag/v8.0.5.2" rel="noopener noreferrer"&gt;Ruby on Rails Release v8.0.5.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/releases/tag/v8.1.4.1" rel="noopener noreferrer"&gt;Ruby on Rails Release v8.1.4.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/commit/3b1f2627538dc597cd973530c08514a26c2b0282" rel="noopener noreferrer"&gt;Official Patch Commit (Rails 8.1 branch)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rails/rails/commit/69aff80d115bbb9d1e82fd6c6f2fd3ddeafb958b" rel="noopener noreferrer"&gt;Official Patch Commit (Rails 8.0 branch)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-126188" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-126188 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-126206: CVE-2026-126206: Cross-Site Scripting via HTML5 Named Solidus Entity in Loofah URI Validator</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Thu, 12 Nov 2026 21:30:49 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-126206-cve-2026-126206-cross-site-scripting-via-html5-named-solidus-entity-in-loofah-uri-4o51</link>
      <guid>https://dev.to/cverports/cve-2026-126206-cve-2026-126206-cross-site-scripting-via-html5-named-solidus-entity-in-loofah-uri-4o51</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-126206: Cross-Site Scripting via HTML5 Named Solidus Entity in Loofah URI Validator
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-126206&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 5.3&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-12&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-126206 (GHSA-jcff-cj73-4w4f) is a Cross-Site Scripting (XSS) vulnerability in version 2.25.2 of the Loofah Ruby gem. The vulnerability stems from an incomplete character reference normalization routine in the &lt;code&gt;Loofah::HTML5::Scrub.allowed_uri?&lt;/code&gt; method, which fails to decode the HTML5 named character reference &lt;code&gt;&amp;amp;sol;&lt;/code&gt; (representing the solidus character &lt;code&gt;/&lt;/code&gt;). Consequently, a crafted &lt;code&gt;data:&lt;/code&gt; URI such as &lt;code&gt;data:text&amp;amp;sol;html,&amp;lt;script&amp;gt;alert(1)&amp;lt;/script&amp;gt;&lt;/code&gt; bypasses mediatype validation by triggering the WHATWG MIME parser fallback to &lt;code&gt;text/plain&lt;/code&gt;, while web browsers later resolve &lt;code&gt;&amp;amp;sol;&lt;/code&gt; to &lt;code&gt;/&lt;/code&gt; and execute the payload as &lt;code&gt;text/html&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Loofah 2.25.2 fails to decode the HTML5 named character reference &lt;code&gt;&amp;amp;sol;&lt;/code&gt; (&lt;code&gt;/&lt;/code&gt;) inside &lt;code&gt;Loofah::HTML5::Scrub.allowed_uri?&lt;/code&gt; (also exposed via &lt;code&gt;Rails::HTML::Sanitizer.allowed_uri?&lt;/code&gt;). Attackers can supply &lt;code&gt;data:text&amp;amp;sol;html,&amp;lt;script&amp;gt;...&lt;/code&gt; to bypass URI validation as &lt;code&gt;text/plain&lt;/code&gt; and achieve Cross-Site Scripting (XSS) when the URI is rendered into an HTML attribute.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Exploit Status: POC
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE / Advisory ID&lt;/strong&gt;: CVE-2026-126206 / GHSA-jcff-cj73-4w4f&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Class&lt;/strong&gt;: CWE-79 (Cross-Site Scripting) / CWE-184 (Incomplete List of Disallowed Inputs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v4.0 Score&lt;/strong&gt;: 5.3 Medium (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: Loofah::HTML5::Scrub.allowed_uri? (loofah gem = 2.25.2)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patched Version&lt;/strong&gt;: loofah &amp;gt;= 2.25.3&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Crafted data: URI using / HTML5 entity)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Proof-of-Concept (PoC) Publicly Available&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;loofah Ruby gem (version 2.25.2)&lt;/li&gt;
&lt;li&gt;rails-html-sanitizer (when invoking Rails::HTML::Sanitizer.allowed_uri? with loofah 2.25.2)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;loofah&lt;/strong&gt;: = 2.25.2 (Fixed in: &lt;code&gt;2.25.3&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/flavorjones/loofah/commit/ad92002966053309f83b550861e2ef04bc714744" rel="noopener noreferrer"&gt;ad92002&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ensure Loofah::HTML5::Scrub.allowed_uri? recognizes the named character reference / and rejects data: URIs that disguise a disallowed mediatype with it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gu"&gt;diff --git a/lib/loofah/html5/scrub.rb b/lib/loofah/html5/scrub.rb&lt;/span&gt;
index 2a35090..e8b524a 100644
&lt;span class="gd"&gt;--- a/lib/loofah/html5/scrub.rb&lt;/span&gt;
&lt;span class="gi"&gt;+++ b/lib/loofah/html5/scrub.rb&lt;/span&gt;
&lt;span class="gu"&gt;@@ -53,6 +53,15 @@ module Scrub&lt;/span&gt;
       # URIs. CGI.unescapeHTML does not decode these, so they are handled explicitly.
       WHITESPACE_CHARACTER_REFERENCES = /&amp;amp;(Tab|NewLine);/

&lt;span class="gi"&gt;+      # HTML5 named character references for the delimiters that decide how a URI parses:&lt;/span&gt;
&lt;span class="gi"&gt;+      # ":" ends the scheme, and "/" separates the type and subtype of a data: mediatype.&lt;/span&gt;
&lt;span class="gi"&gt;+      # CGI.unescapeHTML does not decode these either. Together with&lt;/span&gt;
&lt;span class="gi"&gt;+      # WHITESPACE_CHARACTER_REFERENCES these are every named character reference that&lt;/span&gt;
&lt;span class="gi"&gt;+      # decodes to U+0009, U+000A, U+002F, or U+003A, so no other named reference can&lt;/span&gt;
&lt;span class="gi"&gt;+      # change how a URI parses.&lt;/span&gt;
&lt;span class="gi"&gt;+      DELIMITER_CHARACTER_REFERENCES = { "&amp;amp;colon;" =&amp;gt; ":", "&amp;amp;sol;" =&amp;gt; "/" }.freeze&lt;/span&gt;
&lt;span class="gi"&gt;+      DELIMITER_CHARACTER_REFERENCE = Regexp.union(DELIMITER_CHARACTER_REFERENCES.keys)&lt;/span&gt;
&lt;span class="gi"&gt;+&lt;/span&gt;
       class &amp;lt;&amp;lt; self
         def allowed_element?(element_name)
           ::Loofah::HTML5::SafeList::ALLOWED_ELEMENTS_WITH_LIBXML2.include?(element_name)
&lt;span class="gu"&gt;@@ -234,12 +243,12 @@ def allowed_uri?(uri_string)&lt;/span&gt;
           # also decode the semicolon-less ones, which browsers still decode and execute. Normalizing
           # more aggressively than a browser only rejects more, which is safe. Control characters are
           # stripped both before and after decoding, since decoding can produce them. That strip must
&lt;span class="gd"&gt;-          # precede WHITESPACE_CHARACTER_REFERENCES: removing a control character can reveal a named&lt;/span&gt;
&lt;span class="gd"&gt;-          # whitespace reference.&lt;/span&gt;
&lt;span class="gi"&gt;+          # precede the named reference substitutions: removing a control character can reveal a&lt;/span&gt;
&lt;span class="gi"&gt;+          # named reference.&lt;/span&gt;
           uri_string = decode_numeric_character_references(CGI.unescapeHTML(uri_string.gsub(CONTROL_CHARACTERS, "")))
           uri_string.gsub!(CONTROL_CHARACTERS, "")
           uri_string.gsub!(WHITESPACE_CHARACTER_REFERENCES, "")
&lt;span class="gd"&gt;-          uri_string.gsub!("&amp;amp;colon;", ":")&lt;/span&gt;
&lt;span class="gi"&gt;+          uri_string.gsub!(DELIMITER_CHARACTER_REFERENCE, DELIMITER_CHARACTER_REFERENCES)&lt;/span&gt;
           uri_string.downcase!
           if URI_PROTOCOL_REGEX.match?(uri_string)
             protocol = uri_string.split(SafeList::PROTOCOL_SEPARATOR)[0]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Exploit Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/flavorjones/loofah/security/advisories/GHSA-jcff-cj73-4w4f" rel="noopener noreferrer"&gt;GitHub Security Advisory&lt;/a&gt;: Official advisory containing functional proof-of-concept &lt;code&gt;data:text&amp;amp;sol;html&lt;/code&gt; payloads.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/flavorjones/loofah/commit/ad92002966053309f83b550861e2ef04bc714744" rel="noopener noreferrer"&gt;GitHub Fix Commit &amp;amp; Unit Tests&lt;/a&gt;: Upstream unit tests demonstrating plaintext, base64, double-encoded, and control-character-injected &lt;code&gt;&amp;amp;sol;&lt;/code&gt; bypass vectors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade the &lt;code&gt;loofah&lt;/code&gt; Ruby gem to version 2.25.3 or newer across all environments.&lt;/li&gt;
&lt;li&gt;Prefer full DOM fragment sanitization (&lt;code&gt;Loofah.scrub_fragment&lt;/code&gt; or Rails &lt;code&gt;sanitize&lt;/code&gt; helper) over standalone string validation via &lt;code&gt;allowed_uri?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ensure all user-supplied URI strings rendered into HTML attributes pass through standard attribute escaping helpers (such as Rails &lt;code&gt;link_to&lt;/code&gt; or &lt;code&gt;tag.a&lt;/code&gt;) rather than raw &lt;code&gt;.html_safe&lt;/code&gt; string interpolation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Audit project &lt;code&gt;Gemfile.lock&lt;/code&gt; files using &lt;code&gt;bundle list | grep loofah&lt;/code&gt; or &lt;code&gt;bundle exec bundler-audit check --update&lt;/code&gt; to identify instances of &lt;code&gt;loofah&lt;/code&gt; version &lt;code&gt;2.25.2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Search application source code (&lt;code&gt;app/&lt;/code&gt;, &lt;code&gt;lib/&lt;/code&gt;, &lt;code&gt;config/&lt;/code&gt;) for direct invocations of &lt;code&gt;Loofah::HTML5::Scrub.allowed_uri?&lt;/code&gt; or &lt;code&gt;Rails::HTML::Sanitizer.allowed_uri?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;Gemfile&lt;/code&gt; to require &lt;code&gt;gem "loofah", "&amp;gt;= 2.25.3"&lt;/code&gt; and execute &lt;code&gt;bundle update loofah&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Run the application test suite and redeploy affected services.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-126206" rel="noopener noreferrer"&gt;CVE-2026-126206 Official CVE Record&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flavorjones/loofah/security/advisories/GHSA-jcff-cj73-4w4f" rel="noopener noreferrer"&gt;GitHub Security Advisory GHSA-jcff-cj73-4w4f&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flavorjones/loofah/commit/ad92002966053309f83b550861e2ef04bc714744" rel="noopener noreferrer"&gt;Loofah Fix Commit ad92002966053309f83b550861e2ef04bc714744&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flavorjones/loofah/pull/324" rel="noopener noreferrer"&gt;Loofah Pull Request #324&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flavorjones/loofah/releases/tag/v2.25.3" rel="noopener noreferrer"&gt;Loofah v2.25.3 Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rubysec/ruby-advisory-db/blob/master/gems/loofah/GHSA-jcff-cj73-4w4f.yml" rel="noopener noreferrer"&gt;RubySec Advisory Database Entry for GHSA-jcff-cj73-4w4f&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/flavorjones/loofah" rel="noopener noreferrer"&gt;Loofah GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-126206" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-126206 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-125325: CVE-2026-125325: Cross-Request Information Disclosure via Shared BM25 Index Race Condition in pgEdge RAG Server</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Thu, 12 Nov 2026 20:30:50 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-125325-cve-2026-125325-cross-request-information-disclosure-via-shared-bm25-index-race-37fe</link>
      <guid>https://dev.to/cverports/cve-2026-125325-cve-2026-125325-cross-request-information-disclosure-via-shared-bm25-index-race-37fe</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-125325: Cross-Request Information Disclosure via Shared BM25 Index Race Condition in pgEdge RAG Server
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-125325&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 5.9&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-12&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;pgEdge RAG Server versions prior to 2.0.0 contain a race condition in the hybrid search pipeline orchestrator (CWE-362, CWE-488). The server maintains a single shared, in-memory BM25 index instance across all incoming HTTP requests on a pipeline. Concurrent queries to the unauthenticated HTTP REST API interleave non-atomic clear, document addition, and search operations on this singleton index. As a result, documents fetched using one caller's search filter can be queried and returned to another concurrent caller, bypassing multi-tenant data isolation without generating any anomalous audit trail in server or database logs.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;A concurrency flaw in pgEdge RAG Server (&amp;lt; 2.0.0) causes concurrent hybrid search requests to share and mutate a single in-memory BM25 keyword index. Attackers or concurrent users can receive document contents and synthesized LLM answers belonging to other tenants' filtered search scopes. Upgrading to version 2.0.0 resolves the issue by isolating BM25 index instances to individual requests.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Exploit Status: POC
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-125325 (GHSA-w437-9mwm-j6vq)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Class&lt;/strong&gt;: CWE-362 (Race Condition) / CWE-488 (Exposure of Data Element to Wrong Session)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 5.9 Medium (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Unauthenticated HTTP POST to /v1/pipelines/{name})&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary Impact&lt;/strong&gt;: Cross-request / Cross-tenant information disclosure of filtered RAG documents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Versions&lt;/strong&gt;: pgEdge RAG Server &amp;lt; 2.0.0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patched Version&lt;/strong&gt;: pgEdge RAG Server 2.0.0&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EPSS / KEV Status&lt;/strong&gt;: 0.27% (19.59th percentile) / Not Listed in CISA KEV&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;pgEdge RAG Server (pgedge-rag-server)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pgEdge RAG Server&lt;/strong&gt;: &amp;lt; 2.0.0 (including 1.0.0, 1.0.0-beta1 through 1.0.0-beta3-test, and 1.0.0-alpha1 through 1.0.0-alpha5) (Fixed in: &lt;code&gt;2.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/pgEdge/pgedge-rag-server/commit/a09d4872356b510c81f11591845445c33ff45a84" rel="noopener noreferrer"&gt;a09d487&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Isolate BM25 index instances per request in Orchestrator.search and bound FetchDocuments with bm25_max_documents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gd"&gt;--- a/internal/pipeline/orchestrator.go&lt;/span&gt;
&lt;span class="gi"&gt;+++ b/internal/pipeline/orchestrator.go&lt;/span&gt;
&lt;span class="gu"&gt;@@ -33,7 +33,6 @@ type Orchestrator struct {&lt;/span&gt;
    completionProv Completer
    reranker       Reranker
    rerankTopK     int
&lt;span class="gd"&gt;-   bm25Index      *bm25.Index&lt;/span&gt;
    tokenBudget    int
    topN           int
    logger         *slog.Logger
&lt;span class="gu"&gt;@@ -66,7 +65,6 @@ func NewOrchestrator(cfg OrchestratorConfig) *Orchestrator {&lt;/span&gt;
        completionProv: cfg.CompletionProv,
        reranker:       cfg.Reranker,
        rerankTopK:     cfg.RerankTopK,
&lt;span class="gd"&gt;-       bm25Index:      bm25.NewIndex(),&lt;/span&gt;
        tokenBudget:    cfg.TokenBudget,
        topN:           cfg.TopN,
        logger:         logger,
&lt;span class="gu"&gt;@@ -345,7 +348,7 @@ func (o *Orchestrator) search(&lt;/span&gt;
            continue
        }

&lt;span class="gd"&gt;-       docs, err := o.dbPool.FetchDocuments(ctx, table, req.Filter)&lt;/span&gt;
&lt;span class="gi"&gt;+       docs, err := o.dbPool.FetchDocuments(ctx, table, req.Filter, maxBM25Docs)&lt;/span&gt;
        if err != nil {
            o.logger.Warn("failed to fetch documents for BM25",
                "table", table.Table, "error", err)
&lt;span class="gu"&gt;@@ -354,9 +357,28 @@ func (o *Orchestrator) search(&lt;/span&gt;
            continue
        }

&lt;span class="gd"&gt;-       o.bm25Index.Clear()&lt;/span&gt;
&lt;span class="gd"&gt;-       o.bm25Index.AddDocuments(docs)&lt;/span&gt;
&lt;span class="gd"&gt;-       bm25Results := o.bm25Index.Search(req.Query, topN*2)&lt;/span&gt;
&lt;span class="gi"&gt;+       if len(docs) &amp;gt;= maxBM25Docs {&lt;/span&gt;
&lt;span class="gi"&gt;+           o.logger.Warn(&lt;/span&gt;
&lt;span class="gi"&gt;+               "keyword search corpus truncated by bm25_max_documents; "+&lt;/span&gt;
&lt;span class="gi"&gt;+                   "keyword coverage for this request is partial",&lt;/span&gt;
&lt;span class="gi"&gt;+               "table", table.Table, "limit", maxBM25Docs,&lt;/span&gt;
&lt;span class="gi"&gt;+           )&lt;/span&gt;
&lt;span class="gi"&gt;+       }&lt;/span&gt;
&lt;span class="gi"&gt;+&lt;/span&gt;
&lt;span class="gi"&gt;+       index := bm25.NewIndex()&lt;/span&gt;
&lt;span class="gi"&gt;+       index.AddDocuments(docs)&lt;/span&gt;
&lt;span class="gi"&gt;+       bm25Results := index.Search(req.Query, topN*2)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Exploit Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/pgEdge/pgedge-rag-server/commit/a09d4872356b510c81f11591845445c33ff45a84" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;: Official concurrency regression test (TestSearch_ConcurrentRequestsDoNotShareKeywordIndex) demonstrating cross-tenant BM25 index leakage under concurrent load.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade pgEdge RAG Server to version 2.0.0 or later to ensure BM25 indexes are instantiated per request rather than shared across the pipeline.&lt;/li&gt;
&lt;li&gt;Disable hybrid search (&lt;code&gt;hybrid_enabled: false&lt;/code&gt; or &lt;code&gt;vector_weight: 1.0&lt;/code&gt;) on pre-2.0.0 deployments to bypass the in-memory BM25 index entirely.&lt;/li&gt;
&lt;li&gt;Disable raw source inclusion (&lt;code&gt;allow_include_sources: false&lt;/code&gt;) in pipeline configurations to prevent raw cross-tenant document snippets from being returned in API responses.&lt;/li&gt;
&lt;li&gt;Place pgEdge RAG Server behind an authenticating reverse proxy or API gateway with rate limiting to prevent unauthenticated concurrent query floods.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Audit running processes and installed packages using &lt;code&gt;dpkg -l | grep pgedge-rag-server&lt;/code&gt; (Debian/Ubuntu) or &lt;code&gt;rpm -qa | grep pgedge-rag-server&lt;/code&gt; (RHEL/CentOS) to identify version 1.x installations.&lt;/li&gt;
&lt;li&gt;Install pgEdge RAG Server version 2.0.0 or later (&lt;code&gt;pgedge-rag-server2&lt;/code&gt; package or compiled binary from release tag &lt;code&gt;v2.0.0&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Migrate pipeline configuration files to the v2.0.0 format and verify &lt;code&gt;search.bm25_max_documents&lt;/code&gt; is set to a positive integer (default: 10000).&lt;/li&gt;
&lt;li&gt;Stop and disable any legacy v1.0.0 &lt;code&gt;pgedge-rag-server&lt;/code&gt; systemd services listening on port 8080, and route all application traffic to the v2.0.0 service.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/pgEdge/pgedge-rag-server/security/advisories/GHSA-w437-9mwm-j6vq" rel="noopener noreferrer"&gt;GitHub Security Advisory GHSA-w437-9mwm-j6vq&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgEdge/pgedge-rag-server/pull/44" rel="noopener noreferrer"&gt;pgEdge RAG Server Pull Request #44&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgEdge/pgedge-rag-server/commit/a09d4872356b510c81f11591845445c33ff45a84" rel="noopener noreferrer"&gt;Patch Commit a09d4872356b510c81f11591845445c33ff45a84&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/pgEdge/pgedge-rag-server/releases/tag/v2.0.0" rel="noopener noreferrer"&gt;pgEdge RAG Server Release v2.0.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-125325" rel="noopener noreferrer"&gt;NVD - CVE-2026-125325&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-125325" rel="noopener noreferrer"&gt;CVE.org Record - CVE-2026-125325&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/125xxx/CVE-2026-125325.json" rel="noopener noreferrer"&gt;CVE List V5 JSON Record - CVE-2026-125325&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.pgedge.com/security" rel="noopener noreferrer"&gt;pgEdge Security Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-125325" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-125325 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-118740: CVE-2026-118740: Missing Authorization in Microsoft Aspire Dashboard Blazor Router</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Thu, 12 Nov 2026 18:30:50 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-118740-cve-2026-118740-missing-authorization-in-microsoft-aspire-dashboard-blazor-router-4bgf</link>
      <guid>https://dev.to/cverports/cve-2026-118740-cve-2026-118740-missing-authorization-in-microsoft-aspire-dashboard-blazor-router-4bgf</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-118740: Missing Authorization in Microsoft Aspire Dashboard Blazor Router
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-118740&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 9.1&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-12&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-118740 is a Missing Authorization (CWE-862) vulnerability in the Microsoft Aspire Dashboard and Aspire.Dashboard.Sdk.linux-x64 packages. In versions 13.6.1 prior to 13.6.5, an architectural flaw in the Blazor routing configuration (Routes.razor) causes unmapped (404 / Not-Found) routes to bypass the AuthorizeRouteView component. By navigating to an arbitrary non-existent route, an unauthenticated remote attacker forces the application into the NotFound template, which unconditionally renders the primary MainLayout component and initializes global user interface services, interaction providers, and underlying SignalR/Blazor circuits without verifying authentication credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;An unauthenticated security feature bypass in Microsoft Aspire Dashboard (versions 13.6.1 through 13.6.4) allows remote attackers to initialize protected dashboard layouts and backend Blazor interactive circuits by requesting any non-existent URL path. Upgrading to Aspire 13.6.5 resolves the issue by enforcing authorization policies across both matched and unmatched routes and introducing lifecycle authentication guards.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Exploit Status: POC
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-118740&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness&lt;/strong&gt;: CWE-862 (Missing Authorization)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 9.1 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EPSS Score&lt;/strong&gt;: 0.92% (60.87th Percentile)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Unauthenticated HTTP / Blazor Route Navigation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Impact&lt;/strong&gt;: Security Feature Bypass (Unauthorized Layout &amp;amp; Circuit Initialization)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Proof-of-Concept (Playwright Integration Test)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft Aspire Dashboard&lt;/li&gt;
&lt;li&gt;Aspire.Dashboard.Sdk.linux-x64&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aspire Dashboard&lt;/strong&gt;: &amp;gt;= 13.6.1, &amp;lt; 13.6.5 (Fixed in: &lt;code&gt;13.6.5&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aspire.Dashboard.Sdk.linux-x64&lt;/strong&gt;: &amp;gt;= 13.6.1, &amp;lt; 13.6.5 (Fixed in: &lt;code&gt;13.6.5&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/microsoft/aspire/commit/0b6bfe2f538d4eed8a9ae7e11651c09dbbe886b8" rel="noopener noreferrer"&gt;0b6bfe2&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;[release/13.6] Fix dashboard not-found authentication (PR 66656)&lt;/p&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/microsoft/aspire/commit/f017f668fd6e0938e23058dc0450a1403f409809" rel="noopener noreferrer"&gt;f017f66&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Restrict container tunnels strictly to OTLP endpoints (PR 68055)&lt;/p&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade Microsoft Aspire Dashboard and associated SDK packages to version 13.6.5 or later.&lt;/li&gt;
&lt;li&gt;Place the Aspire Dashboard behind an authenticating reverse proxy (e.g., YARP, NGINX, Azure Application Gateway) to enforce authentication prior to request routing.&lt;/li&gt;
&lt;li&gt;Bind the Aspire Dashboard frontend strictly to localhost (127.0.0.1) or isolate it within restricted management networks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Update .NET Aspire workloads and NuGet package references (including Aspire.Dashboard.Sdk.linux-x64) to version 13.6.5 or higher.&lt;/li&gt;
&lt;li&gt;Rebuild and redeploy all Aspire AppHost and standalone Aspire Dashboard container images.&lt;/li&gt;
&lt;li&gt;Verify the fix by navigating to an arbitrary non-existent route (e.g., /nonexistent) in an unauthenticated browser session and confirming an immediate redirect to /login?returnUrl=%2Fnonexistent.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-118740" rel="noopener noreferrer"&gt;Microsoft Security Response Center: CVE-2026-118740&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-118740" rel="noopener noreferrer"&gt;CVE.org Record: CVE-2026-118740&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-118740" rel="noopener noreferrer"&gt;NVD Detail: CVE-2026-118740&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/aspire/commit/0b6bfe2f538d4eed8a9ae7e11651c09dbbe886b8" rel="noopener noreferrer"&gt;GitHub Commit: Fix dashboard not-found authentication (0b6bfe2f538d4eed8a9ae7e11651c09dbbe886b8)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/aspire/commit/f017f668fd6e0938e23058dc0450a1403f409809" rel="noopener noreferrer"&gt;GitHub Commit: Container Tunnel OTLP Restriction (f017f668fd6e0938e23058dc0450a1403f409809)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/aspire/releases/tag/v13.6.5" rel="noopener noreferrer"&gt;GitHub Release: Microsoft Aspire v13.6.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://attack.mitre.org/search/?search=CVE-2026-118740" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK Search: CVE-2026-118740&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-118740" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-118740 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-120006: CVE-2026-120006: Elevation of Privilege in .NET Aspire via Unintended Dashboard Endpoint Tunneling</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Wed, 11 Nov 2026 20:30:50 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-120006-cve-2026-120006-elevation-of-privilege-in-net-aspire-via-unintended-dashboard-543l</link>
      <guid>https://dev.to/cverports/cve-2026-120006-cve-2026-120006-elevation-of-privilege-in-net-aspire-via-unintended-dashboard-543l</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-120006: Elevation of Privilege in .NET Aspire via Unintended Dashboard Endpoint Tunneling
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-120006&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 7.5&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-10&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An elevation of privilege vulnerability exists in .NET Aspire versions prior to 13.6.5 due to the insertion of sensitive information into sent data (CWE-201). When the Developer Control Plane (DCP) container tunneling feature is enabled, the orchestration engine implicitly exposes all endpoints of the Aspire Dashboard—including its administrative frontend and management APIs—to containerized workloads instead of restricting tunnel access solely to OpenTelemetry Protocol (OTLP) collection endpoints. This exposure allows an attacker operating within a compromised or untrusted container to query the dashboard frontend, extract sensitive environment variables and connection strings, and elevate privileges across the host orchestration boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;.NET Aspire prior to 13.6.5 automatically tunnels the administrative dashboard frontend into container networks when container tunneling is enabled, allowing compromised containers to read sensitive host secrets and escalate privileges.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-120006&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness Class&lt;/strong&gt;: CWE-201 (Insertion of Sensitive Information Into Sent Data)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 7.5 High (CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Local / Container Network Namespace (AV:L)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: Aspire.Hosting &amp;amp; Aspire.Hosting.AppHost (&amp;lt; 13.6.5)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patched Version&lt;/strong&gt;: .NET Aspire 13.6.5&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Unproven / No Public PoC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft .NET Aspire (Aspire.Hosting)&lt;/li&gt;
&lt;li&gt;Microsoft .NET Aspire (Aspire.Hosting.AppHost)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aspire.Hosting&lt;/strong&gt;: &amp;lt; 13.6.5 (Fixed in: &lt;code&gt;13.6.5&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aspire.Hosting.AppHost&lt;/strong&gt;: &amp;lt; 13.6.5 (Fixed in: &lt;code&gt;13.6.5&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/microsoft/aspire/commit/f017f668fd6e0938e23058dc0450a1403f409809" rel="noopener noreferrer"&gt;f017f66&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Merged PR 68055: Limit automatic dashboard tunnelling to OTLP endpoints. Preserves explicit dashboard endpoint references and ordinary host-resource tunneling. Normalizes legacy host URLs into endpoint references at the dependency-discovery boundary.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;if (_options.Value.EnableAspireContainerTunnel)
{
    var dashboardIndex = hostDependencies.FindIndex(dependency =&amp;gt;
        StringComparers.ResourceName.Equals(dependency.Resource.Name, KnownResourceNames.AspireDashboard));
    if (dashboardIndex &amp;gt;= 0)
    {
        // Telemetry must not implicitly expose the dashboard frontend. Preserve explicit endpoint
        // references without narrowing the endpoints exposed for ordinary host dependencies.
        var dashboard = hostDependencies[dashboardIndex];
        var endpoints = await GetDashboardTunnelEndpointsAsync(resource, dashboard, cancellationToken).ConfigureAwait(false);
        hostDependencies.RemoveAll(dependency =&amp;gt;
            StringComparers.ResourceName.Equals(dependency.Resource.Name, KnownResourceNames.AspireDashboard));
        if (endpoints.Length &amp;gt; 0)
        {
            hostDependencies.Add(new HostResourceWithEndpoints(dashboard.Resource, endpoints));
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade .NET Aspire hosting packages (Aspire.Hosting and Aspire.Hosting.AppHost) to version 13.6.5 or later.&lt;/li&gt;
&lt;li&gt;Disable automatic container tunneling by setting EnableAspireContainerTunnel to false in DcpOptions when host-to-container proxy tunnels are not required.&lt;/li&gt;
&lt;li&gt;Enforce strong authentication on the .NET Aspire Dashboard frontend and restrict container network egress to non-essential host ports.&lt;/li&gt;
&lt;li&gt;Sanitize sensitive environment variables, connection strings, and bearer tokens before emitting OpenTelemetry spans and structured logs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Locate all .csproj or Directory.Packages.props files within the solution that reference Aspire.Hosting or Aspire.Hosting.AppHost.&lt;/li&gt;
&lt;li&gt;Update the Version attribute for both Aspire.Hosting and Aspire.Hosting.AppHost to 13.6.5 or higher.&lt;/li&gt;
&lt;li&gt;Execute 'dotnet restore' and rebuild the application host project to link against the patched assemblies.&lt;/li&gt;
&lt;li&gt;Restart any running .NET Aspire AppHost orchestration sessions and verify that container tunnels only bind OTLP ports (4317/4318) unless explicitly referenced.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-120006" rel="noopener noreferrer"&gt;Microsoft Security Response Center: CVE-2026-120006&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-120006" rel="noopener noreferrer"&gt;CVE.org Record: CVE-2026-120006&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/aspire/commit/f017f668fd6e0938e23058dc0450a1403f409809" rel="noopener noreferrer"&gt;GitHub Commit: Limit automatic dashboard tunnelling to OTLP endpoints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/aspire/releases/tag/v13.6.5" rel="noopener noreferrer"&gt;GitHub Release: .NET Aspire v13.6.5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-120006" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-120006 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-118750: CVE-2026-118750: Uncontrolled Resource Allocation in ASP.NET Core FileBufferingReadStream</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Wed, 11 Nov 2026 19:30:50 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-118750-cve-2026-118750-uncontrolled-resource-allocation-in-aspnet-core-22la</link>
      <guid>https://dev.to/cverports/cve-2026-118750-cve-2026-118750-uncontrolled-resource-allocation-in-aspnet-core-22la</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-118750: Uncontrolled Resource Allocation in ASP.NET Core FileBufferingReadStream
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-118750&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 7.5&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-10&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-118750 is an uncontrolled resource allocation vulnerability (CWE-770) affecting the Microsoft.AspNetCore.WebUtilities component in ASP.NET Core. Specifically, the FileBufferingReadStream class eagerly allocates large memory buffers from the shared ArrayPool inside its constructor prior to reading any incoming request payload data. An unauthenticated remote attacker can exploit this behavior by opening numerous concurrent connections and stalling or omitting request body transmission, exhausting shared memory pools and causing a server-wide Denial of Service (DoS).&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;An unauthenticated remote attacker can trigger an application-level Denial of Service in ASP.NET Core web applications using Microsoft.AspNetCore.WebUtilities (&amp;lt; 2.3.14) by initiating concurrent buffered HTTP requests that prematurely exhaust the shared ArrayPool via eager constructor allocations in FileBufferingReadStream.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-118750&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness Class&lt;/strong&gt;: CWE-770 (Allocation of Resources Without Limits or Throttling)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 7.5 High (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: Microsoft.AspNetCore.WebUtilities (FileBufferingReadStream)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerable Versions&lt;/strong&gt;: &amp;gt;= 2.3.12, &amp;lt; 2.3.14&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patched Version&lt;/strong&gt;: 2.3.14&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary Impact&lt;/strong&gt;: Endpoint Denial of Service (Memory Pool Exhaustion)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft.AspNetCore.WebUtilities&lt;/li&gt;
&lt;li&gt;ASP.NET Core&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft.AspNetCore.WebUtilities&lt;/strong&gt;: &amp;gt;= 2.3.12, &amp;lt; 2.3.14 (Fixed in: &lt;code&gt;2.3.14&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/dotnet/aspnetcore/commit/9a26c7414a4fbff45535c0830253c1b4479b0073" rel="noopener noreferrer"&gt;9a26c74&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Merged PR 67040: [release 2.3] Make FileBufferingReadStream lazily rent buffer&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;File: src/Http/WebUtilities/src/FileBufferingReadStream.cs
&lt;span class="gu"&gt;@@ -27,7 +27,6 @@ public class FileBufferingReadStream : Stream&lt;/span&gt;
         private string _tempFileName;

         private Stream _buffer;
&lt;span class="gd"&gt;-        private byte[] _rentedBuffer;&lt;/span&gt;
         private bool _inMemory = true;
         private bool _completelyBuffered;

&lt;span class="gu"&gt;@@ -62,9 +61,7 @@ public FileBufferingReadStream(&lt;/span&gt;
             _bytePool = bytePool;
             if (memoryThreshold &amp;lt; _maxRentedBufferSize)
             {
&lt;span class="gd"&gt;-                _rentedBuffer = bytePool.Rent(memoryThreshold);&lt;/span&gt;
&lt;span class="gd"&gt;-                _buffer = new MemoryStream(_rentedBuffer);&lt;/span&gt;
&lt;span class="gd"&gt;-                _buffer.SetLength(0);&lt;/span&gt;
&lt;span class="gi"&gt;+                _buffer = new PooledMemoryStream(bytePool, memoryThreshold);&lt;/span&gt;
             }
             else
             {
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade Microsoft.AspNetCore.WebUtilities to version 2.3.14 or higher to replace eager ArrayPool allocations with lazy, geometrically scaling PooledMemoryStream allocations.&lt;/li&gt;
&lt;li&gt;Enforce strict MinRequestBodyDataRate and MaxConcurrentConnections limits in Kestrel to rapidly terminate idle or slowloris-style HTTP connections.&lt;/li&gt;
&lt;li&gt;Enable request body buffering and aggressive client body read timeouts on upstream reverse proxies (e.g., NGINX, HAProxy, Azure Application Gateway) to prevent incomplete requests from reaching the ASP.NET Core backend.&lt;/li&gt;
&lt;li&gt;Restrict request buffering (EnableBuffering) and multipart form processing solely to endpoints that strictly require them, and apply authentication checks prior to reading or buffering request streams.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Audit all .NET projects and dependency trees for references to Microsoft.AspNetCore.WebUtilities versions &amp;gt;= 2.3.12 and &amp;lt; 2.3.14.&lt;/li&gt;
&lt;li&gt;Update the PackageReference for Microsoft.AspNetCore.WebUtilities to version 2.3.14 in affected .csproj or Directory.Packages.props files.&lt;/li&gt;
&lt;li&gt;Rebuild, test, and redeploy the affected ASP.NET Core applications.&lt;/li&gt;
&lt;li&gt;Verify Kestrel server options and reverse proxy configurations to ensure connection concurrency limits and body read timeouts are enforced.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-118750" rel="noopener noreferrer"&gt;Microsoft Security Update Guide: CVE-2026-118750&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-118750" rel="noopener noreferrer"&gt;CVE.org Official Record: CVE-2026-118750&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/commit/9a26c7414a4fbff45535c0830253c1b4479b0073" rel="noopener noreferrer"&gt;GitHub Commit 9a26c7414a4fbff45535c0830253c1b4479b0073: Make FileBufferingReadStream lazily rent buffer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://attack.mitre.org/tactics/TA0040/" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK Tactic: Impact (TA0040)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://attack.mitre.org/search/?search=CVE-2026-118750" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK Search for CVE-2026-118750&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cvedb.shodan.io/cve/CVE-2026-118750" rel="noopener noreferrer"&gt;Shodan CVEDB Entry: CVE-2026-118750&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-118750" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-118750 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-114155: CVE-2026-114155: Local Elevation of Privilege via TOCTOU Race Condition in Microsoft .NET dotnet-watch</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Wed, 11 Nov 2026 18:31:20 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-114155-cve-2026-114155-local-elevation-of-privilege-via-toctou-race-condition-in-4lf6</link>
      <guid>https://dev.to/cverports/cve-2026-114155-cve-2026-114155-local-elevation-of-privilege-via-toctou-race-condition-in-4lf6</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-114155: Local Elevation of Privilege via TOCTOU Race Condition in Microsoft .NET dotnet-watch
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-114155&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 7.5&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-11&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-114155 is a local elevation of privilege vulnerability affecting Microsoft .NET on Linux and macOS platforms. The vulnerability exists within the dotnet-watch (Hot Reload) component and is caused by a Time-of-Check Time-of-Use (TOCTOU) race condition (CWE-367) during the generation and execution of temporary XML solution files (.slnx) in shared system temporary directories. A local attacker with low privileges can intercept and modify the temporary solution file before MSBuild evaluates it, achieving arbitrary code execution in the security context of the user running dotnet-watch.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;A TOCTOU race condition (CWE-367) in the Microsoft .NET dotnet-watch utility on Linux and macOS allows local attackers to overwrite temporary .slnx solution files in /tmp before MSBuild processes them, leading to local privilege escalation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Type&lt;/strong&gt;: CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Local (Shared /tmp directory on Linux and macOS)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 7.5 HIGH (CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: Microsoft .NET SDK dotnet-watch (HotReloadDotNetWatcher)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Impact&lt;/strong&gt;: Local Elevation of Privilege via arbitrary MSBuild code execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Unproven (No public PoC or active exploitation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft .NET 10.0 on Linux&lt;/li&gt;
&lt;li&gt;Microsoft .NET 10.0 on macOS&lt;/li&gt;
&lt;li&gt;Microsoft .NET 11.0 on Linux&lt;/li&gt;
&lt;li&gt;Microsoft .NET 11.0 on macOS&lt;/li&gt;
&lt;li&gt;Microsoft.DotNet.HotReload.Watch.Aspire&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft .NET 10.0 (Linux &amp;amp; macOS)&lt;/strong&gt;: &amp;gt;= 10.0.0, &amp;lt; 10.0.404 (Fixed in: &lt;code&gt;10.0.404&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft .NET 11.0 (Linux &amp;amp; macOS)&lt;/strong&gt;: &amp;gt;= 11.0.0-preview.1, &amp;lt; 11.0.100 (Fixed in: &lt;code&gt;11.0.100&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft.DotNet.HotReload.Watch.Aspire&lt;/strong&gt;: &amp;gt;= 10.0.300, &amp;lt; 11.0.100 (Fixed in: &lt;code&gt;11.0.100&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/dotnet/dotnet/commit/c46253a634a2725fd34820ad8a36a3f106f5d01d" rel="noopener noreferrer"&gt;c46253a&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Introduce TemporaryFileManager to securely create and lock temporary files in a user-private directory during dotnet-watch execution.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="gd"&gt;--- a/src/sdk/src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs&lt;/span&gt;
&lt;span class="gi"&gt;+++ b/src/sdk/src/Dotnet.Watch/Watch/HotReload/HotReloadDotNetWatcher.cs&lt;/span&gt;
&lt;span class="gu"&gt;@@ -1144,7 +1144,8 @@ async Task&amp;lt;bool&amp;gt; BuildAsync(BuildAction action, string? targetFramework, DeviceI&lt;/span&gt;
             }
             else if (projectPaths is not [])
             {
&lt;span class="gd"&gt;-                var solutionFile = Path.Combine(Path.GetTempFileName() + ".slnx");&lt;/span&gt;
&lt;span class="gi"&gt;+                // Keep the file open and allow other processes to read it (but not modify) after the content is written:&lt;/span&gt;
&lt;span class="gi"&gt;+                using var solutionFile = _context.TemporaryFileManager.Create(".slnx", FileShare.Read);&lt;/span&gt;
                 var solutionElement = new XElement("Solution");

                 foreach (var projectPath in projectPaths)
&lt;span class="gu"&gt;@@ -1153,25 +1154,11 @@ async Task&amp;lt;bool&amp;gt; BuildAsync(BuildAction action, string? targetFramework, DeviceI&lt;/span&gt;
                 }

                 var doc = new XDocument(solutionElement);
&lt;span class="gd"&gt;-                doc.Save(solutionFile);&lt;/span&gt;
&lt;span class="gi"&gt;+                doc.Save(solutionFile.Stream);&lt;/span&gt;

&lt;span class="gd"&gt;-                try&lt;/span&gt;
&lt;span class="gi"&gt;+                if (!await BuildFileOrProjectOrSolutionAsync(solutionFile.Stream.Name, targetFramework, device, action, cancellationToken))&lt;/span&gt;
                 {
&lt;span class="gd"&gt;-                    if (!await BuildFileOrProjectOrSolutionAsync(solutionFile, targetFramework, device, action, cancellationToken))&lt;/span&gt;
&lt;span class="gd"&gt;-                    {&lt;/span&gt;
&lt;span class="gd"&gt;-                        return false;&lt;/span&gt;
&lt;span class="gd"&gt;-                    }&lt;/span&gt;
&lt;span class="gd"&gt;-                }&lt;/span&gt;
&lt;span class="gd"&gt;-                finally&lt;/span&gt;
&lt;span class="gd"&gt;-                {&lt;/span&gt;
&lt;span class="gd"&gt;-                    try&lt;/span&gt;
&lt;span class="gd"&gt;-                    {&lt;/span&gt;
&lt;span class="gd"&gt;-                        File.Delete(solutionFile);&lt;/span&gt;
&lt;span class="gd"&gt;-                    }&lt;/span&gt;
&lt;span class="gd"&gt;-                    catch&lt;/span&gt;
&lt;span class="gd"&gt;-                    {&lt;/span&gt;
&lt;span class="gd"&gt;-                        // ignore&lt;/span&gt;
&lt;span class="gd"&gt;-                    }&lt;/span&gt;
&lt;span class="gi"&gt;+                    return false;&lt;/span&gt;
                 }
             }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/dotnet/dotnet/commit/032f564872d408f03fba11c8d03e5cd7386164cd" rel="noopener noreferrer"&gt;032f564&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Merge pull request 66316 from msrc-temp-10.0.4xx into internal release branch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade Microsoft .NET 10.0 and .NET 11.0 SDKs to the latest patched versions.&lt;/li&gt;
&lt;li&gt;Configure per-user isolated temporary directories on Linux and macOS using the TMPDIR environment variable.&lt;/li&gt;
&lt;li&gt;Avoid executing dotnet-watch with elevated privileges (such as root or sudo) on shared multi-user systems.&lt;/li&gt;
&lt;li&gt;Enable Linux kernel protections for regular files in sticky world-writable directories (fs.protected_regular=2).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify all Linux and macOS developer workstations and build servers with Microsoft .NET 10.0 (&amp;lt; 10.0.404) or .NET 11.0 (&amp;lt; 11.0.100) installed.&lt;/li&gt;
&lt;li&gt;Upgrade Microsoft .NET 10.0 SDK to 10.0.404 (Runtime 10.0.15) or Microsoft .NET 11.0 SDK to 11.0.100 (Runtime 11.0.0).&lt;/li&gt;
&lt;li&gt;Update any project dependencies on Microsoft.DotNet.HotReload.Watch.Aspire to version 11.0.100 or later.&lt;/li&gt;
&lt;li&gt;If immediate patching is blocked, configure user profiles to export TMPDIR="$HOME/.tmp" with 0700 directory permissions.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-114155" rel="noopener noreferrer"&gt;Microsoft Security Response Center (MSRC) Advisory: CVE-2026-114155&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-114155" rel="noopener noreferrer"&gt;Official CVE Record (CVE.org): CVE-2026-114155&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/dotnet/commit/c46253a634a2725fd34820ad8a36a3f106f5d01d" rel="noopener noreferrer"&gt;Fix Commit in dotnet/dotnet (c46253a634a2725fd34820ad8a36a3f106f5d01d)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/dotnet/commit/032f564872d408f03fba11c8d03e5cd7386164cd" rel="noopener noreferrer"&gt;Merge Pull Request Commit in dotnet/dotnet (032f564872d408f03fba11c8d03e5cd7386164cd)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/dotnet/pull/10885" rel="noopener noreferrer"&gt;GitHub Pull Request 10885 (dotnet/dotnet)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/dotnet/pull/10886" rel="noopener noreferrer"&gt;GitHub Pull Request 10886 (dotnet/dotnet)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/core/releases/tag/v10.0.15" rel="noopener noreferrer"&gt;.NET Core Release Tag v10.0.15&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/core/releases/tag/v11.0.0" rel="noopener noreferrer"&gt;.NET Core Release Tag v11.0.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/dotnet/releases/tag/v10.0.404" rel="noopener noreferrer"&gt;.NET Release Tag v10.0.404&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/dotnet/releases/tag/v11.0.100" rel="noopener noreferrer"&gt;.NET Release Tag v11.0.100&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-114155" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-114155 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-118748: CVE-2026-118748: Unbounded Memory Allocation Denial of Service in ASP.NET Core Blazor Static-SSR</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Wed, 11 Nov 2026 17:30:50 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-118748-cve-2026-118748-unbounded-memory-allocation-denial-of-service-in-aspnet-core-3391</link>
      <guid>https://dev.to/cverports/cve-2026-118748-cve-2026-118748-unbounded-memory-allocation-denial-of-service-in-aspnet-core-3391</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-118748: Unbounded Memory Allocation Denial of Service in ASP.NET Core Blazor Static-SSR
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-118748&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 7.5&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-11&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-118748 is a remote Denial of Service (DoS) vulnerability in Microsoft ASP.NET Core (.NET 11.0 preview releases prior to 11.0.0) and Microsoft Visual Studio 2026 (prior to 18.12.0). The flaw originates from unbounded resource allocation (CWE-770) within the Blazor static server-side rendering (static-SSR) validation pipeline, where dynamic or attacker-supplied form field identifiers are cached in a singleton-scoped memory structure without size limits or eviction policies. Unauthenticated remote attackers can exploit this condition over the network by sending repeated HTTP requests with unique field names, exhausting heap memory and terminating the host process via an unhandled OutOfMemoryException.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;An unauthenticated remote attacker can trigger a Denial of Service (OutOfMemoryException) in ASP.NET Core (.NET 11.0 previews) by submitting HTTP requests with arbitrary form field names to Blazor static-SSR endpoints, causing unbounded growth in a singleton-scoped validation cache.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-118748&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness Class&lt;/strong&gt;: CWE-770 (Allocation of Resources Without Limits or Throttling)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: ASP.NET Core Blazor Static-SSR Client-Side Validation Cache&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Unauthenticated HTTP Form Submissions)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 7.5 HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary Impact&lt;/strong&gt;: Remote Denial of Service via Heap Exhaustion (OutOfMemoryException)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Unproven (No Public PoC)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft .NET 11.0 (Linux, macOS, Windows)&lt;/li&gt;
&lt;li&gt;Microsoft ASP.NET Core 11.0 (Blazor static-SSR)&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2026 (Windows)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.NET 11.0 (Linux, macOS, Windows)&lt;/strong&gt;: &amp;gt;= 11.0.0-preview.1, &amp;lt; 11.0.0 (Fixed in: &lt;code&gt;11.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Visual Studio 2026&lt;/strong&gt;: &amp;lt; 18.12.0 (Fixed in: &lt;code&gt;18.12.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade the .NET Runtime and ASP.NET Core shared framework to the general availability release 11.0.0 or later.&lt;/li&gt;
&lt;li&gt;Restrict per-request form parameter counts and key lengths using ASP.NET Core FormOptions (ValueCountLimit and KeyLengthLimit).&lt;/li&gt;
&lt;li&gt;Apply strict rate limiting on HTTP POST endpoints utilizing Blazor static server-side rendering (static-SSR).&lt;/li&gt;
&lt;li&gt;Ensure internal or custom validation caches bind metadata to request lifetimes (Scoped) or use bounded MemoryCache instances with explicit SizeLimit and TTL configurations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inventory all hosts, containers, and build agents running .NET 11.0 preview builds (&amp;lt; 11.0.0) or Visual Studio 2026 (&amp;lt; 18.12.0) via &lt;code&gt;dotnet --list-runtimes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Download and install the official .NET 11.0.0 SDK and ASP.NET Core Runtime packages from Microsoft's official distribution channels.&lt;/li&gt;
&lt;li&gt;Update Visual Studio 2026 installations to version 18.12.0 or later via the Visual Studio Installer.&lt;/li&gt;
&lt;li&gt;Rebuild and redeploy any self-contained ASP.NET Core deployments (&lt;code&gt;--self-contained true&lt;/code&gt;) so the patched framework assemblies are bundled into the application artifacts.&lt;/li&gt;
&lt;li&gt;Verify the runtime version in production environments and monitor .NET Gen 2 heap size metrics (&lt;code&gt;dotnet-counters monitor --counters System.Runtime&lt;/code&gt;) to confirm memory stability.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-118748" rel="noopener noreferrer"&gt;Microsoft Security Update Guide Advisory: CVE-2026-118748&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-118748" rel="noopener noreferrer"&gt;CVE.org Official Record: CVE-2026-118748&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-118748" rel="noopener noreferrer"&gt;National Vulnerability Database (NVD) Detail: CVE-2026-118748&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/releases/tag/v11.0.0" rel="noopener noreferrer"&gt;ASP.NET Core v11.0.0 Official Release Tag&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://attack.mitre.org/search/?search=CVE-2026-118748" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK Search Mapping for CVE-2026-118748&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cvedb.shodan.io/cve/CVE-2026-118748" rel="noopener noreferrer"&gt;Shodan CVEDB Entry: CVE-2026-118748&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog" rel="noopener noreferrer"&gt;CISA Known Exploited Vulnerabilities (KEV) Catalog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-118748" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-118748 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-114150: CVE-2026-114150: Remote Information Disclosure via Uninitialized Pooled Memory in ASP.NET Core Response…</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Wed, 11 Nov 2026 16:30:50 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-114150-cve-2026-114150-remote-information-disclosure-via-uninitialized-pooled-memory-in-2nn8</link>
      <guid>https://dev.to/cverports/cve-2026-114150-cve-2026-114150-remote-information-disclosure-via-uninitialized-pooled-memory-in-2nn8</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-114150: Remote Information Disclosure via Uninitialized Pooled Memory in ASP.NET Core Response Buffering
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-114150&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 5.9&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-11&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;CVE-2026-114150 is a network-accessible information disclosure vulnerability affecting Microsoft ASP.NET Core in .NET 11.0 preview releases and Microsoft Visual Studio 2026 prior to version 18.12.0. The flaw stems from the use of uninitialized resources (CWE-908) within response buffering components, specifically ResponseBufferingStream used by middleware such as HTTP Logging and Output Caching. Because rented memory segments from ArrayPool or MemoryPool are not cleared upon return or strictly bounded to the exact written byte count during subsequent reads, residual response payloads from earlier HTTP requests remain in the buffer tail. Downstream consumers or log sinks reading these buffers expose confidential cross-session data, including authentication tokens and personally identifiable information.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;An uninitialized memory reuse flaw (CWE-908) in ASP.NET Core 11.0 preview response buffering middleware allows residual HTTP response data from pooled memory buffers to leak into subsequent short responses or application log sinks. Upgrading to .NET 11.0.0 GA or Visual Studio 2026 18.12.0 resolves the issue.&lt;/p&gt;




&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE ID&lt;/strong&gt;: CVE-2026-114150&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weakness Class&lt;/strong&gt;: CWE-908 (Use of Uninitialized Resource)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 5.9 Medium (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (HTTP/HTTPS Response Buffering)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary Impact&lt;/strong&gt;: High Confidentiality Loss (Cross-Request Memory &amp;amp; Log Disclosure)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: ASP.NET Core ResponseBufferingStream / HttpLogging &amp;amp; OutputCaching&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Unproven / No Public PoC&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft .NET 11.0 (Linux, macOS, Windows)&lt;/li&gt;
&lt;li&gt;Microsoft ASP.NET Core 11.0 Preview Builds&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2026 (Version 18.12)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.NET 11.0 (Linux, macOS, Windows)&lt;/strong&gt;: &amp;gt;= 11.0.0-preview.1, &amp;lt; 11.0.0 (Fixed in: &lt;code&gt;11.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual Studio 2026&lt;/strong&gt;: &amp;lt; 18.12.0 (Fixed in: &lt;code&gt;18.12.0&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade all .NET 11.0 preview installations (.NET 11.0.0-preview.1 through RC builds) to the official .NET 11.0.0 General Availability (GA) release.&lt;/li&gt;
&lt;li&gt;Update Microsoft Visual Studio 2026 development environments to version 18.12.0 or later.&lt;/li&gt;
&lt;li&gt;Disable HTTP response body logging in HttpLoggingMiddleware by removing HttpLoggingFields.ResponseBody and avoiding HttpLoggingFields.All in application startup configurations.&lt;/li&gt;
&lt;li&gt;Audit custom Stream and IHttpResponseBodyFeature implementations to ensure all ArrayPool and MemoryPool rentals are strictly sliced to actual written byte counts and cleared upon return.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inventory all servers, virtual machines, and container images running Microsoft.AspNetCore.App versions matching 11.0.0-preview.*&lt;/li&gt;
&lt;li&gt;Download and install the .NET 11.0.0 GA runtime, ASP.NET Core Hosting Bundle, or SDK from Microsoft's official distribution channels.&lt;/li&gt;
&lt;li&gt;Rebuild and redeploy containerized ASP.NET Core applications using the patched mcr.microsoft.com/dotnet/aspnet:11.0 base image.&lt;/li&gt;
&lt;li&gt;Update Microsoft Visual Studio 2026 to version 18.12.0 on all developer workstations and CI/CD build nodes.&lt;/li&gt;
&lt;li&gt;Inspect historical application logs generated by affected preview builds and purge or rotate any credentials, API keys, or session tokens that may have leaked into trailing log entries.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-114150" rel="noopener noreferrer"&gt;Microsoft Security Response Center (MSRC) Advisory: CVE-2026-114150&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-114150" rel="noopener noreferrer"&gt;Official CVE.org Record: CVE-2026-114150&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2026-114150" rel="noopener noreferrer"&gt;National Vulnerability Database (NVD): CVE-2026-114150&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/releases/tag/v11.0.0" rel="noopener noreferrer"&gt;ASP.NET Core v11.0.0 Official Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cwe.mitre.org/data/definitions/908.html" rel="noopener noreferrer"&gt;MITRE CWE-908: Use of Uninitialized Resource&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cvedb.shodan.io/cve/CVE-2026-114150" rel="noopener noreferrer"&gt;Shodan CVEDB Entry: CVE-2026-114150&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog" rel="noopener noreferrer"&gt;CISA Known Exploited Vulnerabilities Catalog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://attack.mitre.org/search/?search=CVE-2026-114150" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK Framework Search&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-114150" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-114150 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>CVE-2026-114146: CVE-2026-114146: Elevation of Privilege in ASP.NET Core SignalR Connection Dispatcher</title>
      <dc:creator>CVE Reports</dc:creator>
      <pubDate>Wed, 11 Nov 2026 15:31:22 +0000</pubDate>
      <link>https://dev.to/cverports/cve-2026-114146-cve-2026-114146-elevation-of-privilege-in-aspnet-core-signalr-connection-2jhm</link>
      <guid>https://dev.to/cverports/cve-2026-114146-cve-2026-114146-elevation-of-privilege-in-aspnet-core-signalr-connection-2jhm</guid>
      <description>&lt;h1&gt;
  
  
  CVE-2026-114146: Elevation of Privilege in ASP.NET Core SignalR Connection Dispatcher
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Vulnerability ID:&lt;/strong&gt; CVE-2026-114146&lt;br&gt;
&lt;strong&gt;CVSS Score:&lt;/strong&gt; 9.0&lt;br&gt;
&lt;strong&gt;Published:&lt;/strong&gt; 2026-11-11&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An incorrect authorization vulnerability (CWE-863) exists in the ASP.NET Core SignalR HTTP Connection Dispatcher (&lt;code&gt;Microsoft.AspNetCore.Http.Connections&lt;/code&gt;). The connection negotiation process failed to bind the authenticated caller identity to the generated connection state, and subsequent transport or message dispatch handlers failed to verify caller consistency. Consequently, an authenticated low-privilege attacker who obtains a valid connection identifier or token can inject messages into or hijack another user's SignalR session, achieving an elevation of privilege across security boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;CVE-2026-114146 is a critical (CVSS 9.0) elevation of privilege vulnerability in ASP.NET Core (&lt;code&gt;Microsoft.AspNetCore.Http.Connections&lt;/code&gt;). Because &lt;code&gt;HttpConnectionDispatcher&lt;/code&gt; did not bind or verify the &lt;code&gt;ClaimsPrincipal&lt;/code&gt; across the SignalR negotiation, transport initiation, and message transmission phases, an authenticated attacker possessing a victim's connection token can hijack their connection or inject arbitrary hub invocations under the victim's identity.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚠️ Exploit Status: POC
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Technical Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability Type&lt;/strong&gt;: CWE-863: Incorrect Authorization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Component&lt;/strong&gt;: Microsoft.AspNetCore.Http.Connections (HttpConnectionDispatcher)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack Vector&lt;/strong&gt;: Network (Authenticated SignalR HTTP Endpoints)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVSS v3.1 Score&lt;/strong&gt;: 9.0 Critical (CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Impact&lt;/strong&gt;: Elevation of Privilege / Cross-User SignalR Session Hijacking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploit Status&lt;/strong&gt;: Proof-of-Concept in Public Test Suite (No Weaponized Exploits)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CISA KEV Status&lt;/strong&gt;: Not Listed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Affected Systems
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft .NET 8.0&lt;/li&gt;
&lt;li&gt;Microsoft .NET 9.0&lt;/li&gt;
&lt;li&gt;Microsoft .NET 10.0&lt;/li&gt;
&lt;li&gt;Microsoft .NET 11.0&lt;/li&gt;
&lt;li&gt;Microsoft.AspNetCore.Http.Connections&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2022&lt;/li&gt;
&lt;li&gt;Microsoft Visual Studio 2026&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.NET 8.0&lt;/strong&gt;: &amp;gt;= 8.0.0, &amp;lt; 8.0.34 (Fixed in: &lt;code&gt;8.0.34&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.NET 9.0&lt;/strong&gt;: &amp;gt;= 9.0.0, &amp;lt; 9.0.23 (Fixed in: &lt;code&gt;9.0.23&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.NET 10.0&lt;/strong&gt;: &amp;gt;= 10.0.0, &amp;lt; 10.0.15 (Fixed in: &lt;code&gt;10.0.15&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;.NET 11.0&lt;/strong&gt;: &amp;gt;= 11.0.0-preview.1, &amp;lt; 11.0.0 (Fixed in: &lt;code&gt;11.0.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft.AspNetCore.Http.Connections&lt;/strong&gt;: &amp;gt;= 1.2.0, &amp;lt; 1.2.14 (Fixed in: &lt;code&gt;1.2.14&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Visual Studio 2022&lt;/strong&gt;: &amp;gt;= 17.14.0, &amp;lt; 17.14.45 (Fixed in: &lt;code&gt;17.14.45&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Visual Studio 2026&lt;/strong&gt;: &amp;gt;= 18.11.0, &amp;lt; 18.11.4 (Fixed in: &lt;code&gt;18.11.4&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code Analysis
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/dotnet/aspnetcore/commit/514c86030195fd6b649bb26c48975a043d96b791" rel="noopener noreferrer"&gt;514c860&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Bind negotiated user identity to HttpConnectionContext and reject mismatched callers in HttpConnectionDispatcher (PR 66942)&lt;/p&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/dotnet/aspnetcore/commit/db8579880b30153dbd601fa079f49e7e3ce42e08" rel="noopener noreferrer"&gt;db85798&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Servicing backport for SignalR HttpConnectionDispatcher user identity binding (PR 66953)&lt;/p&gt;

&lt;h3&gt;
  
  
  Commit: &lt;a href="https://github.com/dotnet/aspnetcore/commit/e1ae50f427a49c76528376a5b3af8216bfda55bc" rel="noopener noreferrer"&gt;e1ae50f&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Servicing backport for SignalR HttpConnectionDispatcher user identity binding (PR 66952)&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploit Details
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/dotnet/aspnetcore/commit/514c86030195fd6b649bb26c48975a043d96b791" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;: Unit-level proof-of-concept tests included in the official fix commit (HttpConnectionDispatcherTests.ConnectionBinding.cs) demonstrating cross-user connection hijacking and message injection.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mitigation Strategies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Upgrade the ASP.NET Core Shared Runtime and .NET SDK on all build agents and production hosts to the latest servicing release.&lt;/li&gt;
&lt;li&gt;Rebuild and redeploy self-contained .NET applications so they incorporate the updated Microsoft.AspNetCore.Http.Connections assembly.&lt;/li&gt;
&lt;li&gt;Restrict SignalR endpoints to use the WebSockets transport exclusively (HttpTransportType.WebSockets) to eliminate separate HTTP POST /send and Long Polling requests.&lt;/li&gt;
&lt;li&gt;Protect SignalR query parameters (?id=) from exposure in reverse proxy logs, APM telemetry, and browser referer headers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remediation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify all servers, containers, and serverless functions running .NET 8.0, 9.0, 10.0, or 11.0-preview, or referencing Microsoft.AspNetCore.Http.Connections.&lt;/li&gt;
&lt;li&gt;Install the patched ASP.NET Core Runtime: 8.0.34 for .NET 8, 9.0.23 for .NET 9, or 10.0.15 for .NET 10.&lt;/li&gt;
&lt;li&gt;Update any explicit PackageReference for Microsoft.AspNetCore.Http.Connections to version 1.2.14 or higher and recompile the application.&lt;/li&gt;
&lt;li&gt;Restart the hosting processes (IIS application pools, Kestrel systemd services, or container pods) and monitor application logs for EventId 26 (UserNameChanged) indicating rejected cross-user requests.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-114146" rel="noopener noreferrer"&gt;Microsoft Security Response Center (MSRC) Advisory: CVE-2026-114146&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cve.org/CVERecord?id=CVE-2026-114146" rel="noopener noreferrer"&gt;Official CVE Record: CVE-2026-114146&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/commit/514c86030195fd6b649bb26c48975a043d96b791" rel="noopener noreferrer"&gt;GitHub Fix Commit 514c86030195fd6b649bb26c48975a043d96b791 (PR 66942)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/commit/db8579880b30153dbd601fa079f49e7e3ce42e08" rel="noopener noreferrer"&gt;GitHub Fix Commit db8579880b30153dbd601fa079f49e7e3ce42e08 (PR 66953)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/commit/e1ae50f427a49c76528376a5b3af8216bfda55bc" rel="noopener noreferrer"&gt;GitHub Fix Commit e1ae50f427a49c76528376a5b3af8216bfda55bc (PR 66952)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/releases/tag/v10.0.15" rel="noopener noreferrer"&gt;ASP.NET Core v10.0.15 Release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/releases/tag/v9.0.23" rel="noopener noreferrer"&gt;ASP.NET Core v9.0.23 Release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dotnet/aspnetcore/releases/tag/v8.0.34" rel="noopener noreferrer"&gt;ASP.NET Core v8.0.34 Release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog" rel="noopener noreferrer"&gt;CISA Known Exploited Vulnerabilities Catalog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://cvereports.com/reports/CVE-2026-114146" rel="noopener noreferrer"&gt;Read the full report for CVE-2026-114146 on our website&lt;/a&gt; for more details including interactive diagrams and full exploit analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cve</category>
      <category>cybersecurity</category>
    </item>
  </channel>
</rss>
