In today’s development world, applications are not built from scratch—they are assembled. Most modern software projects depend heavily on open-source libraries and frameworks. Whether it’s web servers, logging libraries, or encryption modules, these third-party components form the backbone of your application.
But here’s the catch…
You are responsible for the code you write—and the code you don’t.
The Silent Risk in Your Dependencies
Just because a library is open-source and widely adopted doesn’t mean it’s free from vulnerabilities. Threat actors often target well-known frameworks with subtle but dangerous flaws. These aren’t always high-profile zero-days; sometimes, they’re low-effort, high-impact bugs waiting to be exploited.
That’s where Software Composition Analysis (SCA) scans come in.
What is SCA ?
Software Composition Analysis tools inspect your application dependencies—both direct and transitive—to identify:
- 🔐 Known vulnerabilities (CVEs)
- 📦 Outdated or deprecated packages
- ⚖️ License compliance issues
- 📈 Suggested upgrades or patches
SCA scans are critical in your CI/CD pipeline to catch these issues early and avoid security debt from creeping into your release builds.
💥 Enter CVE-2023-38180: A Real-World Case
Let’s put this in context with a real-world example:
CVE-2023-38180 – A vulnerability discovered in the Kestrel web server used by ASP.NET Core applications.
🧠 What is Kestrel?
Kestrel is the built-in web server used by ASP.NET Core to handle HTTP requests. It’s fast, lightweight—and widely used.

Unfortunately, in vulnerable versions, it mishandled HTTP/2 persistent connections, allowing attackers to keep connections alive in a way that slowly exhausts server resources. It affected any application using Kestrel under certain conditions.
🧬 The Vulnerability in Action
The root cause of CVE-2023-38180 lies in the way ASP.NET Core’s Kestrel web server handled HTTP/2 requests.
- HTTP/2 introduces multiplexed streams, allowing multiple concurrent messages over a single connection.
- In vulnerable versions of Kestrel, certain malformed or intentionally manipulated HTTP/2 requests could stall the connection processing logic, tying up threads.
- Attackers could exploit this to open many such connections with minimal effort, triggering a DoS (Denial of Service) scenario.
✅ Normal Behavior:
- Client opens an HTTP/2 connection with
keep-alive
- Sends a request and receives a response
- Connection is properly reused or closed
❌ Under CVE-2023-38180:
Over time, threads and memory are consumed → Denial of Service (DoS)
- A malicious client opens an HTTP/2 connection
- Keeps sending small or incomplete requests
- Server never closes the connection

Note : This wasn’t caused by insecure developer code—it was a framework-level vulnerability, making it more dangerous because, It required no authentication—an external attacker could exploit it directly over the internet.
⚠️ Why You Wouldn’t Know (Without SCA)
These kinds of vulnerabilities don’t show up in your unit tests or during normal QA. The application appears to work fine—until an attacker exploits it in production.
But with an SCA tool in place:
- You’d receive a notification that
Microsoft.AspNetCore.Server.Kestrel
version X.X.X is vulnerable - You’d be prompted to upgrade to a safe version
- You could even fail the build if vulnerable components are detected
✅ How Was It Resolved?
Microsoft addressed this issue in the August 2023 Patch Tuesday update cycle as part of their .NET security updates.
🔧 Resolution Highlights:
- Affected Component:
Microsoft.AspNetCore.Server.Kestrel
- Patched Versions:
- ASP.NET Core 6.0: Fixed in version 6.0.21
- ASP.NET Core 7.0: Fixed in version 7.0.10
- .NET 8 previews were also updated at the time
🛠 Fix Implemented:
- Microsoft updated Kestrel’s HTTP/2 frame handling logic to:
- Properly validate incoming requests
- Add timeouts and request thresholds
- Abort suspicious or idle streams that could be part of an attack
- This ensures the server doesn’t hang indefinitely or leak resources due to malicious HTTP/2 behavior.
Reference : https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-38180
🧰 Tools That Can Help
Some popular SCA tools include:
- GitHub Dependabot
- Snyk
- WhiteSource (Mend)
- BlackDuck
- Sonatype Nexus Lifecycle
These tools integrate into your CI/CD pipeline and continuously monitor for vulnerabilities like CVE-2023-38180 and many others.
✅ The Takeaway
- You can’t defend what you don’t know you use.
- SCA bridges that knowledge gap and gives you visibility into your supply chain.
- CVE-2023-38180 is a perfect reminder: even your trusted frameworks can turn on you if you’re not paying attention.
This article is exactly what I needed! Your insights are incredibly helpful.
I’m happy to hear you find value in my content. Thanks for your continued support!
You’ve changed the way I think about this topic. I appreciate your unique perspective.