BTC
ETH
SOL
BNB
GOLD
XRP
DOGE
ADA
Back to home
Security

[HIGH] Security Advisory: EnhancedLinq.Async is Vulnerable to Denial of Service via Transitive Dependency Microsoft.Bcl.Memory (EnhancedLinq.Async)

A transitive dependency in the EnhancedLinq.Async NuGet package exposes .NET developers to a denial-of-service (DoS) attack.

A transitive dependency in the EnhancedLinq.Async NuGet package exposes .NET developers to a denial-of-service (DoS) attack. Microsoft.Bcl.Memory version 10.0.3, pulled in indirectly via System.Linq.AsyncEnumerable, carries CVE-2026-26127. Attackers can trigger unbounded memory allocation by requesting oversized arrays from ArrayPool.Shared.Rent(), exhausting server resources and crashing applications.

This hits any project using EnhancedLinq.Async versions before 1.0.0 Beta 3. EnhancedLinq.Async provides async extensions for LINQ, popular for handling large datasets in APIs, microservices, and data pipelines. If your code processes user-controlled inputs—like query parameters or payloads—with async LINQ operations, you’re at risk. A single malicious request could allocate gigabytes of memory, leading to out-of-memory exceptions or full system halts.

Why Transitive Dependencies Matter

Transitive dependencies like this one hide vulnerabilities deep in your supply chain. EnhancedLinq.Async depends on System.Linq.AsyncEnumerable, which depends on Microsoft.Bcl.Memory. Developers rarely inspect these layers. Microsoft’s announcement (github.com/dotnet/announcements/issues/384) flags this as a high-severity issue affecting multiple packages.

In practice, this amplifies supply chain risks. A 2023 Sonatype report found over 80% of breaches involve open-source components, often transitive. .NET’s NuGet ecosystem, with 400,000+ packages, makes manual auditing impossible. Tools like dotnet list package --vulnerable help, but they require regular runs. Ignore them, and you inherit flaws from upstream maintainers.

Skeptically, Microsoft’s patch in Bcl.Memory 10.0.4 fixes the Rent() bounds check, but it underscores slow response times. The vuln existed since at least 2024 in some previews. Package authors like EnhancedLinq.Async must proactively bump deps—here, they did by updating System.Linq.AsyncEnumerable to 10.0.4+ in Beta 3.

How to Patch Immediately

Update to EnhancedLinq.Async 1.0.0 Beta 3 or later. Recompile and redeploy. No workarounds exist; you can’t mitigate without patching the root dep.

In Visual Studio’s NuGet Package Manager UI:

Package Manager Console:

Update-Package -Id EnhancedLinq.Async

.NET CLI (preferred for CI/CD):

dotnet add package EnhancedLinq.Async

Verify the fix:

dotnet list package --include-transitive | grep Microsoft.Bcl.Memory

Expect version 10.0.4 or higher. Test your app under load—simulate large Rent() calls to confirm no crashes.

Broader Implications and Prevention

This isn’t isolated. Async LINQ sees heavy use in ASP.NET Core for streaming JSON, EF Core queries, and SignalR hubs. Production outages from DoS like this cost thousands per hour—think e-commerce spikes or financial services. A Reddit thread on dotnet/announcements#384 reports crashes in preview apps processing ML datasets.

Prevent future hits: Pin direct deps but audit transitives weekly. Use dotnet outdated or Dependabot/GitHub Advisories. For critical apps, consider Directory.Packages.props for central version management, forcing safe Bcl.Memory across solutions.

Be fair: EnhancedLinq.Async maintainers acted fast post-Microsoft alert. But betas carry risks—stabilize before prod if possible. Ultimately, this reinforces: Treat deps as code. Update relentlessly, or pay the price in downtime.

Word count: 612

April 2, 2026 · 3 min · 8 views · Source: GitHub Security

Related