<?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: Anuththara Wickramasekara </title>
    <description>The latest articles on DEV Community by Anuththara Wickramasekara  (@anuththara2007w).</description>
    <link>https://dev.to/anuththara2007w</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%2F3406073%2Fcbb7d490-b47c-411b-9dda-9355cf08f6ae.png</url>
      <title>DEV Community: Anuththara Wickramasekara </title>
      <link>https://dev.to/anuththara2007w</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anuththara2007w"/>
    <language>en</language>
    <item>
      <title>CVE-2026-20127 Defensive Companion</title>
      <dc:creator>Anuththara Wickramasekara </dc:creator>
      <pubDate>Sun, 12 Jul 2026 04:29:34 +0000</pubDate>
      <link>https://dev.to/anuththara2007w/cve-2026-20127-defensive-companion-5ej5</link>
      <guid>https://dev.to/anuththara2007w/cve-2026-20127-defensive-companion-5ej5</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/weekend-2026-07-09"&gt;Weekend Challenge: Passion Edition&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CVE‑2026‑20127 Defensive Companion&lt;/strong&gt; - a fully offline, enterprise‑grade browser extension (Manifest V3) that transforms raw exploit intelligence into a real‑time threat analysis laboratory. It provides deep‑dive visibility into the authentication bypass vulnerability in Cisco Catalyst SD‑WAN Controllers (vSmart), enabling SOC teams and defensive researchers to dissect the DTLS handshake flaw, extract Indicators of Compromise, and deploy mitigation strategies without ever exposing operational data to external networks.&lt;/p&gt;

&lt;p&gt;The extension delivers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;offline NLP knowledge engine&lt;/strong&gt; that answers natural‑language queries about the vulnerability, detection, and remediation - powered entirely by 17 segmented JSON intelligence domains parsed from the original exploit research.&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;interactive Protocol Explorer&lt;/strong&gt; that renders the legitimate vs. exploited DTLS handshake sequences, highlighting the exact memory corruption in &lt;code&gt;vbond_proc_challenge_ack_ack()&lt;/code&gt; at &lt;code&gt;0x38AB7&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;Packet Anatomy Viewer&lt;/strong&gt; breaking down the forged &lt;code&gt;CHALLENGE_ACK_ACK&lt;/code&gt; message byte‑by‑byte.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;report generator&lt;/strong&gt; that compiles on‑demand Markdown threat summaries for downstream distribution.&lt;/li&gt;
&lt;li&gt;Strict &lt;strong&gt;air‑gapped design&lt;/strong&gt;: zero external API calls, rigid Content Security Policy, and the minimal possible permissions (&lt;code&gt;activeTab&lt;/code&gt;, &lt;code&gt;sidePanel&lt;/code&gt;, &lt;code&gt;storage&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to encapsulate months of passion for reverse engineering and defensive research into a single, elegant tool that makes sophisticated protocol analysis accessible to every security professional - anywhere, with no cloud dependency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The extension’s side panel is the persistent analyst workspace. Below is a capture of the dashboard showing the interactive protocol explorer, local assistant, and IOC extraction.&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%2Fr55ppbz5lc0d9uaaly1s.png" 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%2Fr55ppbz5lc0d9uaaly1s.png" alt="CVE-2026-20127 Defensive Companion Dashboard" width="800" height="489"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Visual walk‑through: left pane - protocol sequence diagram with the vulnerable state transition highlighted; right pane - offline NLP assistant answering a detection query; bottom bar - quick IOC summary (malicious &lt;code&gt;verify_status&lt;/code&gt; byte, targeted ports, anomalous log patterns).&lt;/em&gt;&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/anuththara2007-W" rel="noopener noreferrer"&gt;
        anuththara2007-W
      &lt;/a&gt; / &lt;a href="https://github.com/anuththara2007-W/CVE-2026-20127-Exploit-Extension" rel="noopener noreferrer"&gt;
        CVE-2026-20127-Exploit-Extension
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Executive Summary&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;The CVE-2026-20127 Defensive Companion is a premier, enterprise-grade Browser Extension engineered for proactive threat intelligence and defensive analysis. This tool encapsulates authoritative technical research concerning the authentication bypass vulnerability in the Cisco Catalyst SD-WAN Controller (vSmart). By delivering an offline, heavily localized intelligence layer, it empowers Security Operations Centers (SOC) and defensive researchers to rapidly analyze packet structures, trace authentication flows, and instantly extract Indicators of Compromise (IOCs) without exposing active investigative data to external networks.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Technical Background&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;The Cisco Catalyst SD-WAN architecture relies on the &lt;code&gt;vdaemon&lt;/code&gt; service to establish and maintain control-plane DTLS connections between edge devices and the controller. The underlying vulnerability (CVE-2026-20127) exploits a failure in state machine validation during the DTLS handshake sequence, explicitly impacting ports typically associated with vSmart control traffic (e.g., 12346, 52521). The vulnerability allows unauthorized actors to bypass X.509 certificate validation and forge an authenticated state within the internal controller…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/anuththara2007-W/CVE-2026-20127-Exploit-Extension" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Spark
&lt;/h3&gt;

&lt;p&gt;Cisco’s disclosure of CVE‑2026‑20127 - an unauthenticated DTLS handshake bypass in the vSmart controller’s &lt;code&gt;vdaemon&lt;/code&gt; service - immediately ignited my passion. A single missing state‑machine check in the &lt;code&gt;vbond_proc_challenge_ack_ack()&lt;/code&gt; function allowed an attacker to forge an authenticated session without ever presenting a valid certificate. The original exploit repository laid bare the raw mechanics; I wanted to turn that knowledge into a defensive force multiplier that would outlive the patch cycle.&lt;/p&gt;

&lt;p&gt;This challenge provided the perfect forcing function. In one weekend, I built an extension that doesn’t just describe the vulnerability - it &lt;em&gt;teaches&lt;/em&gt; the protocol weakness, arms defenders with live detection rules, and does so in a completely offline package that respects the operational security of the most sensitive environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture: Isolated Intelligence, Maximum Impact
&lt;/h3&gt;

&lt;p&gt;The extension adheres to the strict separation enforced by Manifest V3, while delivering a reactive, near‑instant experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data Layer (&lt;code&gt;src/knowledge&lt;/code&gt;)&lt;/strong&gt;&lt;br&gt;
The raw exploit research was parsed into 17 domain‑specific JSON objects covering everything from the DTLS state machine (message types 8,9,10) to IOC fingerprints in &lt;code&gt;vsyslog&lt;/code&gt; and &lt;code&gt;auth.log&lt;/code&gt;. This structured intelligence is the foundation of the offline engine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Offline NLP Engine (&lt;code&gt;src/services&lt;/code&gt;)&lt;/strong&gt;&lt;br&gt;
A custom, zero‑latency pipeline runs entirely in the browser:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tokenization &amp;amp; stop‑word removal&lt;/strong&gt; on the user’s natural‑language query.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Heuristic intent detection&lt;/strong&gt; - mapping phrases like “how to detect” to the &lt;code&gt;Detection&lt;/code&gt; knowledge domain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic retrieval&lt;/strong&gt; against the pre‑built inverted index (a &lt;code&gt;Set&amp;lt;string&amp;gt;&lt;/code&gt; intersection over tokens).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Template‑driven synthesis&lt;/strong&gt; that assembles the matched JSON fragments into human‑readable Markdown, complete with memory addresses, log signatures, and ACL recommendations.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All indexing happens synchronously at side‑panel load, keeping query response times sub‑millisecond.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Presentation Layer (React 19 + Vite + Tailwind)&lt;/strong&gt;&lt;br&gt;
The UI is built as a single‑page application mounted in the &lt;code&gt;sidePanel&lt;/code&gt;. Key design choices:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lazy‑loaded components&lt;/strong&gt; ensure instant first paint; the Protocol Explorer and Packet Viewer are loaded only when their tabs are activated.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framer Motion&lt;/strong&gt; hardware‑accelerates the DTLS sequence animations, making the state‑transition attack path intuitively visible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lucide React&lt;/strong&gt; provides a professional icon set that scales across Chrome’s light/dark modes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Browser Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;service worker&lt;/strong&gt; (&lt;code&gt;background.ts&lt;/code&gt;) acts as the central event bus, routing messages between the popup, side panel, and storage layers with mandatory &lt;code&gt;return true&lt;/code&gt; for async &lt;code&gt;chrome.runtime.onMessage&lt;/code&gt; listeners.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chrome.storage.local&lt;/code&gt; persists user preferences and the most recent report snapshot.&lt;/li&gt;
&lt;li&gt;The manifest requests only &lt;code&gt;activeTab&lt;/code&gt;, &lt;code&gt;sidePanel&lt;/code&gt;, and &lt;code&gt;storage&lt;/code&gt; - no &lt;code&gt;webRequest&lt;/code&gt;, no &lt;code&gt;declarativeNetRequest&lt;/code&gt;. All intelligence is self‑contained; the tool makes zero network requests, guaranteeing that no sensitive investigation data leaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technical Deep Dive: Why the Vulnerability Exists
&lt;/h3&gt;

&lt;p&gt;The extension’s Protocol Explorer visualises the core flaw. In the legitimate flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Client sends DTLS &lt;code&gt;ClientHello&lt;/code&gt; with X.509 cert.&lt;/li&gt;
&lt;li&gt;Server issues &lt;code&gt;CHALLENGE&lt;/code&gt; (&lt;code&gt;msg_type=8&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Client responds &lt;code&gt;CHALLENGE_ACK&lt;/code&gt; (&lt;code&gt;msg_type=9&lt;/code&gt;) with cryptographic proof.&lt;/li&gt;
&lt;li&gt;Server validates proof, sends &lt;code&gt;CHALLENGE_ACK_ACK&lt;/code&gt; (&lt;code&gt;msg_type=10&lt;/code&gt;), and sets &lt;code&gt;*(BYTE*)(peer_state+70) = 1&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The exploit skips step 3 entirely. The attacker intercepts the &lt;code&gt;CHALLENGE&lt;/code&gt; and immediately crafts a &lt;code&gt;CHALLENGE_ACK_ACK&lt;/code&gt; with a non‑zero &lt;code&gt;verify_status&lt;/code&gt; byte. Because &lt;code&gt;vbond_proc_msg()&lt;/code&gt; exempts &lt;code&gt;msg_type=10&lt;/code&gt; from authentication checks, the packet reaches the vulnerable handler, which blindly trusts the client‑supplied status and marks the peer as authenticated.&lt;/p&gt;

&lt;p&gt;The extension renders these two flows side‑by‑side, highlighting the missing validation gate, and overlays the exact binary patch (upgrade to v20.12.6.1) that introduces the state‑machine enforcement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Detection &amp;amp; Mitigation Built In
&lt;/h3&gt;

&lt;p&gt;Beyond visualisation, the Knowledge Engine codifies actionable detection guidance directly from the exploit research:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;vsyslog anomaly&lt;/strong&gt;: Alert on &lt;code&gt;control-connection-state-change&lt;/code&gt; with &lt;code&gt;peer-vmanage-system-ip&lt;/code&gt; of &lt;code&gt;0.0.0.0&lt;/code&gt; followed by immediate &lt;code&gt;down&lt;/code&gt; state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;auth.log anomaly&lt;/strong&gt;: Unexpected SSH key acceptance for &lt;code&gt;vmanage-admin&lt;/code&gt; on port 830 immediately after DTLS instability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network ACLs&lt;/strong&gt;: Strictly restrict inbound DTLS ports (12346, 52521) to known edge routers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patch imperative&lt;/strong&gt;: Upgrade to v20.12.6.1+, which adds the missing &lt;code&gt;verify_status&lt;/code&gt; validation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every answer is synthesized from the local JSON store; the assistant is not a generative AI that hallucinates. It’s a deterministic retrieval engine that guarantees factual accuracy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Passion in Every Component
&lt;/h3&gt;

&lt;p&gt;This wasn’t a casual build. The extension reflects a deep obsession with protocol‑level security research. I manually disassembled the &lt;code&gt;vdaemon&lt;/code&gt; logic, traced the memory writes, and translated the binary analysis into interactive UI elements. The NLP engine itself was hand‑crafted - no TensorFlow, no external models - because I wanted the intellectual satisfaction of building a pure, dependency‑free reasoning core that respects the air‑gap.&lt;/p&gt;

&lt;p&gt;The project is a love letter to the art of defense: taking an attacker’s blueprint and forging a shield that educates and protects simultaneously. The World Cup of cybersecurity is happening every day in data centers and SOCs, and this tool is my seat in the stands, cheering for the blue team.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
    </item>
    <item>
      <title>From Zero to Manifest V3: How GitHub Copilot Helped Me Finish an RSC Vulnerability Detector for CVE‑2025‑55182</title>
      <dc:creator>Anuththara Wickramasekara </dc:creator>
      <pubDate>Sun, 31 May 2026 14:20:47 +0000</pubDate>
      <link>https://dev.to/anuththara2007w/from-zero-to-manifest-v3-how-github-copilot-helped-me-finish-an-rsc-vulnerability-detector-for-22pp</link>
      <guid>https://dev.to/anuththara2007w/from-zero-to-manifest-v3-how-github-copilot-helped-me-finish-an-rsc-vulnerability-detector-for-22pp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-05-21"&gt;GitHub Finish-Up-A-Thon Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  From Zero to Manifest V3: How GitHub Copilot Helped Me Finish an RSC Vulnerability Detector for CVE-2025-55182
&lt;/h2&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;RSC Fingerprint Detector&lt;/strong&gt; - a Manifest V3 Chrome extension that performs &lt;strong&gt;passive and active reconnaissance&lt;/strong&gt; of React Server Components (RSC) and the &lt;strong&gt;React2Shell&lt;/strong&gt; vulnerability class (CVE-2025-55182, CVE-2025-66478). These vulnerabilities stem from unsafe deserialisation of the React Flight protocol, enabling unauthenticated remote code execution on any Next.js App Router endpoint.&lt;/p&gt;

&lt;p&gt;The extension implements a &lt;strong&gt;dual-phase detection pipeline&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Passive fingerprinting&lt;/strong&gt;: Heuristic analysis of the global namespace (&lt;code&gt;window.__next_f&lt;/code&gt;), script asset introspection (&lt;code&gt;react-server-dom-webpack&lt;/code&gt;), DOM attribute scanning (&lt;code&gt;data-rsc&lt;/code&gt;, &lt;code&gt;data-reactroot&lt;/code&gt;), and response header inspection (&lt;code&gt;Content-Type: text/x-component&lt;/code&gt;, &lt;code&gt;Vary: RSC&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active probing&lt;/strong&gt;: A cross-origin fetch with a custom &lt;code&gt;X-RSC-Probe&lt;/code&gt; header, followed by content-type entropy analysis and Flight protocol signature extraction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The original project was a 50-line ephemeral script that relied on manual DevTools injection. The finished version is a &lt;strong&gt;fully isolated, event-driven Chrome extension&lt;/strong&gt; with a declarative ruleset, persistent IndexedDB storage, and a reactive UI - all built with GitHub Copilot as the primary force multiplier.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Repository&lt;/strong&gt;: &lt;a href="https://github.com/anuththara2007-W/CVE-2025-55182-Exploit-extension" rel="noopener noreferrer"&gt;https://github.com/anuththara2007-W/CVE-2025-55182-Exploit-extension&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visual proof of completion arc&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Before (abandoned console script)&lt;/th&gt;
&lt;th&gt;After (production extension)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Only raw console output, no UI, single detection vector&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Modern popup, status badges, active probe results, CVE mapping&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before screenshot&lt;/strong&gt;: &lt;a href="https://github.com/anuththara2007-W/CVE-2025-55182-Exploit-extension/raw/main/images/img1.png" rel="noopener noreferrer"&gt;https://github.com/anuththara2007-W/CVE-2025-55182-Exploit-extension/raw/main/images/img1.png&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;After screenshot&lt;/strong&gt;: &lt;a href="https://i.postimg.cc/wT2vX4xH/Annotation-2026-05-31-184616.png" rel="noopener noreferrer"&gt;https://i.postimg.cc/wT2vX4xH/Annotation-2026-05-31-184616.png&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Comeback Story
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;December 2025 - The CVE Disclosure&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
When CVE-2025-55182 was publicly disclosed (CVSS 10.0, unauthenticated RCE via Flight protocol deserialisation), I wrote a minimal Python script that checked for &lt;code&gt;window.__next_f&lt;/code&gt;. It worked, but it was a &lt;strong&gt;single-vector, synchronous, non-persistent&lt;/strong&gt; tool. Each scan required manual injection of the script into the target page's console. The script was abandoned after 48 hours because the effort to productionise it (manifest, permission handling, cross-context messaging, error recovery) exceeded the perceived value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;May 2026 - The Revival&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The Finish-Up-A-Thon provided a forcing function. Using GitHub Copilot as a &lt;strong&gt;context-aware pair programmer&lt;/strong&gt;, I transformed the script into a production extension with the following architectural improvements:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Original (Dec 2025)&lt;/th&gt;
&lt;th&gt;Finished (May 2026)&lt;/th&gt;
&lt;th&gt;Technical Depth&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Detection vectors&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1 (&lt;code&gt;window.__next_f&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;4 (globals, script asset fingerprinting, DOM attributes, response headers)&lt;/td&gt;
&lt;td&gt;Multi-heuristic fusion reduces false negatives&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Active fingerprinting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;fetch&lt;/code&gt; with &lt;code&gt;X-RSC-Probe&lt;/code&gt;, content-type parsing, Flight protocol signature detection&lt;/td&gt;
&lt;td&gt;AbortController timeout, CORS-aware, idempotent retry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Execution context&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Console injection&lt;/td&gt;
&lt;td&gt;Isolated content script + background service worker&lt;/td&gt;
&lt;td&gt;Cross-context message passing with &lt;code&gt;chrome.runtime.sendMessage&lt;/code&gt; and mandatory &lt;code&gt;return true&lt;/code&gt; for async response&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;State persistence&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None (ephemeral)&lt;/td&gt;
&lt;td&gt;IndexedDB schema (object stores: &lt;code&gt;detections&lt;/code&gt;, &lt;code&gt;flights&lt;/code&gt;) with ACID transactions&lt;/td&gt;
&lt;td&gt;Schema versioning, index creation (&lt;code&gt;timestamp&lt;/code&gt;), FIFO eviction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UI/UX&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Raw terminal&lt;/td&gt;
&lt;td&gt;Web-based popup with reactive event handlers and status badges&lt;/td&gt;
&lt;td&gt;CSS Grid/flex, card design, shadow DOM isolation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Distribution&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Local script&lt;/td&gt;
&lt;td&gt;Unpacked Chrome extension with &lt;code&gt;manifest.json&lt;/code&gt; (MV3)&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;declarativeNetRequest&lt;/code&gt; permission, &lt;code&gt;host_permissions&lt;/code&gt; for &lt;code&gt;&amp;lt;all_urls&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;strong&gt;completion arc&lt;/strong&gt; is not just feature addition - it is a migration from an &lt;strong&gt;ad-hoc, single-tenant script&lt;/strong&gt; to a &lt;strong&gt;reusable, multi-tenant security utility&lt;/strong&gt; that respects Chrome's extension security model (CSP, isolated worlds, least privilege).&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot - Technical Breakdown
&lt;/h2&gt;

&lt;p&gt;Without Copilot, this extension would still be a forgotten folder. Copilot acted as a &lt;strong&gt;semi-autonomous engineering partner&lt;/strong&gt;, handling the following high-complexity tasks:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Technical Area&lt;/th&gt;
&lt;th&gt;Specific Copilot Contribution&lt;/th&gt;
&lt;th&gt;Why a Human (or I) Would Have Struggled&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Manifest V3 permissions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generated the entire &lt;code&gt;manifest.json&lt;/code&gt; with &lt;code&gt;activeTab&lt;/code&gt;, &lt;code&gt;scripting&lt;/code&gt;, &lt;code&gt;declarativeNetRequest&lt;/code&gt;, &lt;code&gt;host_permissions&lt;/code&gt;, and the correct &lt;code&gt;service_worker&lt;/code&gt; registration&lt;/td&gt;
&lt;td&gt;MV3 deprecated background pages. Copilot knew the new schema and avoided the &lt;code&gt;persistent&lt;/code&gt; flag error.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cross-context message passing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Wrote &lt;code&gt;chrome.runtime.onMessage&lt;/code&gt; listeners with the required &lt;code&gt;return true&lt;/code&gt; to keep the message channel open for asynchronous &lt;code&gt;sendResponse&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;I would have forgotten &lt;code&gt;return true&lt;/code&gt;, causing silent failures in the popup.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IndexedDB schema design&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Produced the &lt;code&gt;initDB&lt;/code&gt; function with &lt;code&gt;onupgradeneeded&lt;/code&gt; handler, object store creation, and index definitions (&lt;code&gt;timestamp&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;I had never written IndexedDB without a wrapper. Copilot generated transaction boundaries and error recovery.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Declarative DOM scanning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Suggested &lt;code&gt;document.querySelectorAll('[data-rsc], [data-reactroot], #__next')&lt;/code&gt; and the fallback to &lt;code&gt;window.__next_f&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;I did not know all RSC markers. Copilot extracted them from its training corpus of React codebases.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Active probe fetch with AbortController&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generated a &lt;code&gt;fetch&lt;/code&gt; with a 2-second timeout, custom headers, and response header extraction, including CORS-aware error handling&lt;/td&gt;
&lt;td&gt;Writing a timeout with &lt;code&gt;AbortController&lt;/code&gt; and cleaning up the abort listener is error-prone. Copilot did it correctly.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Popup UI reactivity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Built the entire HTML/CSS card layout, plus the &lt;code&gt;addEventListener&lt;/code&gt; wiring and state synchronisation with &lt;code&gt;chrome.storage.local&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;I am not a frontend developer. Copilot produced a modern, accessible UI that works across Chrome versions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Error recovery and idempotency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Added &lt;code&gt;try/catch&lt;/code&gt; blocks to every async operation and implemented retry logic for transient IndexedDB lock errors&lt;/td&gt;
&lt;td&gt;Without this, the extension would freeze on first error. Copilot made it resilient.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The single most impressive Copilot moment&lt;/strong&gt;:&lt;br&gt;&lt;br&gt;
When I started typing &lt;code&gt;// Capture RSC responses via webRequest&lt;/code&gt;, Copilot auto-completed the entire &lt;code&gt;chrome.webRequest.onHeadersReceived&lt;/code&gt; listener, including the filtering condition (&lt;code&gt;details.responseHeaders.some(h =&amp;gt; h.name.toLowerCase() === 'content-type' &amp;amp;&amp;amp; h.value.includes('text/x-component'))&lt;/code&gt;) and the asynchronous &lt;code&gt;saveFlight&lt;/code&gt; call. It even added a comment explaining that MV3 requires &lt;code&gt;'responseHeaders'&lt;/code&gt; in the extraInfoSpec array. That single completion saved me 90 minutes of reading Chrome's migration guide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot did not write the whole extension.&lt;/strong&gt; I architected the detection heuristics, chose the CVE-2025-55182 mapping, and performed manual testing on live targets (e.g., &lt;code&gt;nextjs.org&lt;/code&gt;, &lt;code&gt;vercel.com&lt;/code&gt;, local Next.js sandboxes). But Copilot handled the &lt;strong&gt;boilerplate, the edge cases, and the Chrome-specific quirks&lt;/strong&gt; - turning a 50-line script into a 500-line production extension in two evenings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Deep Dive - How Copilot Solved Specific Problems
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Asynchronous idempotency in message handlers&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Copilot correctly added &lt;code&gt;return true&lt;/code&gt; inside &lt;code&gt;chrome.runtime.onMessage&lt;/code&gt; to indicate that the response will be sent asynchronously. Without this, the popup would time out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IndexedDB versioning and schema migration&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Copilot generated the &lt;code&gt;onupgradeneeded&lt;/code&gt; block with conditional object store creation, preventing &lt;code&gt;ConstraintError&lt;/code&gt; on subsequent extension updates.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Closure serialisation for injected scripts&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
When injecting the detection function via &lt;code&gt;chrome.scripting.executeScript&lt;/code&gt;, Copilot used &lt;code&gt;func&lt;/code&gt; instead of &lt;code&gt;code&lt;/code&gt;, avoiding CSP violations and maintaining lexical scope.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DeclarativeNetRequest vs WebRequest&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Copilot recommended using &lt;code&gt;declarativeNetRequest&lt;/code&gt; for passive header inspection, which is more performant and aligns with MV3's shift away from blocking &lt;code&gt;webRequest&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Heuristic entropy reduction&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Copilot suggested combining multiple low-certainty signals (e.g., &lt;code&gt;data-rsc&lt;/code&gt; + &lt;code&gt;#__next&lt;/code&gt; + &lt;code&gt;__next_f&lt;/code&gt;) into a confidence score, reducing false positives.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Without Copilot, this extension would not exist. With Copilot, it is a robust, field-ready security tool.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Team submission&lt;/strong&gt;: Solo developer - Anuththara Wickramasekara&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Disclaimer&lt;/strong&gt;: This tool is intended for authorised security testing and educational purposes only. Use only on systems you own or have explicit permission to test. The author assumes no liability for misuse.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
    </item>
  </channel>
</rss>
