<?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: Avimanyu</title>
    <description>The latest articles on DEV Community by Avimanyu (@avimanyu8008).</description>
    <link>https://dev.to/avimanyu8008</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%2F4192484%2F695253d4-6c8d-4078-b842-7deb64456ce3.jpg</url>
      <title>DEV Community: Avimanyu</title>
      <link>https://dev.to/avimanyu8008</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/avimanyu8008"/>
    <language>en</language>
    <item>
      <title>CHAINBREAK: A Vulnerability Is Never Just a Vulnerability</title>
      <dc:creator>Avimanyu</dc:creator>
      <pubDate>Sun, 18 Oct 2026 17:15:02 +0000</pubDate>
      <link>https://dev.to/avimanyu8008/chainbreak-a-vulnerability-is-never-just-a-vulnerability-5d80</link>
      <guid>https://dev.to/avimanyu8008/chainbreak-a-vulnerability-is-never-just-a-vulnerability-5d80</guid>
      <description>&lt;p&gt;A vulnerability scanner tells you that a package is vulnerable.&lt;/p&gt;

&lt;p&gt;That's useful. But it leaves an important question unanswered:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What else could that vulnerability affect?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A package might be used by a repository, which is deployed as a service, which supports something critical to a business. The vulnerability itself is only the beginning of the investigation.&lt;/p&gt;

&lt;p&gt;A list can tell you what is wrong. Understanding the relationships around that finding helps you investigate where the risk might travel.&lt;/p&gt;

&lt;p&gt;That was the idea behind &lt;strong&gt;CHAINBREAK&lt;/strong&gt;, our graph-powered software supply-chain security platform built for Graph Hacks.&lt;/p&gt;

&lt;p&gt;We wanted to explore a simple question: what if vulnerability investigation started with connections instead of isolated records?&lt;/p&gt;

&lt;p&gt;** Why we chose a graph database**&lt;/p&gt;

&lt;p&gt;Software supply chains are networks of dependencies.&lt;/p&gt;

&lt;p&gt;A vulnerability affects a package. A package belongs to a software project. A repository is deployed as a service.&lt;/p&gt;

&lt;p&gt;Represent those relationships as a graph, and the investigation becomes a traversal:&lt;/p&gt;

&lt;p&gt;Vulnerability → Package → Repository → Service&lt;/p&gt;

&lt;p&gt;This is why we built CHAINBREAK around FalkorDB.&lt;/p&gt;

&lt;p&gt;FalkorDB stores the entities and relationships that power our investigation workflow. Our backend uses Cypher queries to traverse the graph and identify connected packages, repositories, and services.&lt;/p&gt;

&lt;p&gt;The graph is not just there to make the interface look interesting. The relationships themselves are central to the product's analysis.&lt;/p&gt;

&lt;p&gt;Without those relationships, CHAINBREAK would lose the foundation of its multi-hop impact investigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6kt4lhnhwc5d4kff3w4w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6kt4lhnhwc5d4kff3w4w.jpg" alt=" " width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CHAINBREAK currently displays 17 vulnerability records, including a synthetic demonstration vulnerability and advisory records from the OSV ecosystem.&lt;/p&gt;

&lt;p&gt;We'll investigate CVE-DEMO-001.&lt;/p&gt;

&lt;p&gt;Our demonstration graph contains this path:&lt;/p&gt;

&lt;p&gt;CVE-DEMO-001 → log-parser → acme/payment-service → payment-api&lt;/p&gt;

&lt;p&gt;Each relationship adds context.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Vulnerability: identifies the finding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Package: identifies the affected dependency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Repository: connects that dependency to a software project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service: represents a downstream system that could be affected.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of treating these entities as disconnected records, CHAINBREAK follows their relationships in FalkorDB.&lt;/p&gt;

&lt;p&gt;This helps demonstrate how graph traversal can reveal a potential blast radius beyond the vulnerable package itself.&lt;/p&gt;

&lt;p&gt;One important clarification: the infrastructure path is synthetic demonstration data. It illustrates the investigation workflow; it is not evidence of a real production system or a verified exploit path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwsjg0euw4tjbzldo9aok.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwsjg0euw4tjbzldo9aok.jpg" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjv33v2vqwm3rzgx6l9pi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjv33v2vqwm3rzgx6l9pi.jpg" alt=" " width="800" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;** The query behind the investigation**&lt;/p&gt;

&lt;p&gt;The central technical idea is straightforward: start at a vulnerability and follow its relationships.&lt;/p&gt;

&lt;p&gt;Here's the Cypher query used for CHAINBREAK's blast-radius investigation:&lt;/p&gt;

&lt;p&gt;MATCH (v:Vulnerability {id: $vulnerability_id})&lt;br&gt;
OPTIONAL MATCH (v)-[:AFFECTS]-&amp;gt;(p:Package)&lt;br&gt;
OPTIONAL MATCH (p)-[:USED_BY]-&amp;gt;(r:Repository)&lt;br&gt;
OPTIONAL MATCH (r)-[:DEPLOYED_IN]-&amp;gt;(s:Service)&lt;br&gt;
RETURN v.id AS vulnerability,&lt;br&gt;
       v.severity AS severity,&lt;br&gt;
       v.title AS title,&lt;br&gt;
       collect(DISTINCT p.name) AS packages,&lt;br&gt;
       collect(DISTINCT r.name) AS repositories,&lt;br&gt;
       collect(DISTINCT s.name) AS services&lt;/p&gt;

&lt;p&gt;The query starts with a vulnerability ID, traverses the graph through packages and repositories, and collects the connected services.&lt;/p&gt;

&lt;p&gt;The important part isn't the query's length. It's the question it lets us ask:&lt;/p&gt;

&lt;p&gt;Given this vulnerability, which entities are connected to it through our modeled software supply chain?&lt;/p&gt;

&lt;p&gt;That is where FalkorDB earns its place in the architecture. It allows CHAINBREAK to query the relationships directly instead of relying on a static diagram.&lt;/p&gt;

&lt;p&gt;And the result is only as reliable as the underlying data: a graph can reveal modeled connections, but it cannot prove exploitability or real-world impact by itself.&lt;/p&gt;

&lt;p&gt;** From investigation to decisions**&lt;/p&gt;

&lt;p&gt;Identifying a potential impact path is one part of the problem. The next is deciding what to do.&lt;br&gt;
CHAINBREAK includes a remediation simulator that compares strategies using illustrative risk scores. It also provides an approval workflow for reviewing proposed actions.&lt;br&gt;
These features explore how vulnerability investigation could connect to a more structured decision-making process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyo146g2p46jhg7egt5gu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyo146g2p46jhg7egt5gu.jpg" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ldsf8myd1obbt4ebf3f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ldsf8myd1obbt4ebf3f.jpg" alt=" " width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are limits to the current implementation.&lt;/p&gt;

&lt;p&gt;Remediation is simulated; the application does not patch packages or execute changes against production systems. Approval records are stored in application memory and do not persist across backend restarts.&lt;/p&gt;

&lt;p&gt;We want to make that distinction clear. A recommendation is not the same as an executed fix, and a simulated workflow is not yet a production remediation system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CHAINBREAK uses a practical stack:&lt;br&gt;
Component   Technology  Responsibility&lt;br&gt;
Frontend    React + Vite    Dashboard and investigation interface&lt;br&gt;
Backend        Python + FastAPI API endpoints and application logic&lt;br&gt;
Graph database  FalkorDB Cloud  Graph storage and relationship traversal&lt;br&gt;
Frontend deployment Vercel  Hosting the web application&lt;br&gt;
Backend deployment  Render  Hosting the API&lt;/p&gt;

&lt;p&gt;The frontend communicates with FastAPI, which queries FalkorDB for vulnerability information and connected entities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What building CHAINBREAK taught us&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most important lesson was that a vulnerability record is only one piece of an investigation.&lt;/p&gt;

&lt;p&gt;The relationships surrounding it can be equally important. Knowing which package is affected is useful; understanding which repository and service are connected to that package adds another layer of context.&lt;/p&gt;

&lt;p&gt;It also clarified why the database choice matters.&lt;/p&gt;

&lt;p&gt;In CHAINBREAK, FalkorDB isn't a decorative addition. The product's defining investigation follows graph relationships and traverses them with Cypher. Those relationships are the foundation of the feature we set out to build.&lt;/p&gt;

&lt;p&gt;There is still significant work ahead.&lt;/p&gt;

&lt;p&gt;A production-ready version would need verified dependency and deployment data, persistent approval storage, and carefully controlled remediation integrations. It would also need to distinguish confirmed relationships from assumptions and communicate uncertainty clearly.&lt;/p&gt;

&lt;p&gt;Those are important engineering problems, not details to hide behind a polished interface.&lt;/p&gt;

&lt;p&gt;Our goal with this project was to build and deploy a working demonstration of graph-powered vulnerability investigation—and to make the graph central to how the application works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The idea behind CHAINBREAK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We started with a simple question:&lt;/p&gt;

&lt;p&gt;What if vulnerability investigation didn't stop at the package?&lt;/p&gt;

&lt;p&gt;CHAINBREAK connects vulnerabilities, packages, repositories, and services in FalkorDB, then traverses those relationships to investigate potential downstream impact.&lt;/p&gt;

&lt;p&gt;It doesn't solve software supply-chain security, and it doesn't claim that every modeled path represents a real exploit. It demonstrates a way to investigate vulnerabilities through the relationships around them.&lt;/p&gt;

&lt;p&gt;Don't just find the vulnerability. Follow the connections. Understand the potential impact.&lt;/p&gt;

&lt;p&gt;That is CHAINBREAK.&lt;/p&gt;

&lt;p&gt;Try CHAINBREAK&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live demo: &lt;a href="https://chainbreak-orpin.vercel.app/" rel="noopener noreferrer"&gt;https://chainbreak-orpin.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Source code: &lt;a href="https://github.com/engineerkrish/CHAINBREAK" rel="noopener noreferrer"&gt;https://github.com/engineerkrish/CHAINBREAK&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;API documentation: &lt;a href="https://chainbreak-sn2d.onrender.com/docs" rel="noopener noreferrer"&gt;https://chainbreak-sn2d.onrender.com/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Built for Graph Hacks using FalkorDB. &lt;br&gt;
AI coding assistance was used during project development.&lt;/p&gt;

</description>
      <category>falkordb</category>
      <category>softwaresupplychain</category>
    </item>
  </channel>
</rss>
