<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">

  <channel>
    <title>Yadhu&#39;s Blog</title>
    <link>https://yadhu.in/</link>
    <description>Recent blog posts on Yadhu&#39;s Blog</description>
    
    <generator>Hugo (https://gohugo.io)</generator>
    
    <language>en-us</language>
    
    <managingEditor></managingEditor>
    
    <webMaster></webMaster>
    
    <lastBuildDate>Mon, 09 Feb 2026 00:00:00 Z</lastBuildDate>
    
    <atom:link href="https://yadhu.in/index.xml" rel="self" type="application/rss+xml" />
    

    <item>
      <title>Breaking Down the n8n Git Node Vulnerability: CVE-2026-25053 (Remote Code Execution)</title>
      <link>https://yadhu.in/2026/02/09/Breaking-Down-the-n8n-Git-Node-Vulnerability-CVE-2026-25053-Remote-Code-Execution/</link>
      <pubDate>Mon, 09 Feb 2026 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      What it is: A vulnerability in the Git node that allows execution of system commands or arbitrary file access.
Impact: Authenticated users with workflow permissions can execute commands on the n8n host or read sensitive files.
Fix: This issue was addressed in n8n versions 1.123.10 and 2.5.0. Users are strongly encouraged to upgrade to these or later releases to mitigate the vulnerability.
CVE: CVE-2026-25053
GHSA: GHSA-9g95-qf3f-ggrw
CVSS Score: 9.4 (Critical)
Note: n8n combined all the vulnerabilities discussed in this post into a single CVE (CVE-2026-25053) and GHSA advisory. This CVE covers the entire security hardening journey, including the Windows path separator bypass, TOCTOU vulnerabilities, config key injection, and other Git node security issues.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2026/02/09/Breaking-Down-the-n8n-Git-Node-Vulnerability-CVE-2026-25053-Remote-Code-Execution/</guid>
    </item>
    

    <item>
      <title>SupplyShield: Open-Source Framework for Securing Software Supply Chains at Scale</title>
      <link>https://yadhu.in/2025/11/09/SupplyShield-Open-Source-Framework-for-Securing-Software-Supply-Chains-at-Scale/</link>
      <pubDate>Sun, 09 Nov 2025 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      Today, we&amp;amp;rsquo;re excited to announce the open-source release of SupplyShield, an application security orchestration framework designed to secure software supply chains end-to-end. SupplyShield addresses the critical gap between running security scanners and actually operationalizing their results at scale.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2025/11/09/SupplyShield-Open-Source-Framework-for-Securing-Software-Supply-Chains-at-Scale/</guid>
    </item>
    

    <item>
      <title>Exploiting HTTP Request Smuggling in Node.js and Gunicorn</title>
      <link>https://yadhu.in/2024/05/11/Exploiting-HTTP-Request-Smuggling-in-Node.js-and-Gunicorn/</link>
      <pubDate>Sat, 11 May 2024 01:00:20 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      In this blog post, we discuss two vulnerabilities that were identified during my research on HTTP Request Smuggling:
Node.js - CVE-2023-30589 Gunicorn - CVE-2024-1135 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2024/05/11/Exploiting-HTTP-Request-Smuggling-in-Node.js-and-Gunicorn/</guid>
    </item>
    

    <item>
      <title>PyCGI: From Nginx Path-Traversal to RCE; bi0s CTF 2022</title>
      <link>https://yadhu.in/2023/01/19/PyCGI-From-Nginx-Path-Traversal-to-RCE-bi0s-CTF-2022/</link>
      <pubDate>Thu, 19 Jan 2023 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      This year I contributed 2 challenges to bi0s CTF (formerly InCTF Internationals).
EmoLocker (Server-Side) PyCGI (Client-Side) In this post, we discuss the intended solution to PyCGI challenge. The source code of this challenge can be downloaded from here.
# Analysis We are provided with 2 attachments for this challenge:
Dockerfile Nginx.conf Looking into the Nginx configuration, we can find that there is a potential path traversal in the /static endpoint. You can read more about this here.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2023/01/19/PyCGI-From-Nginx-Path-Traversal-to-RCE-bi0s-CTF-2022/</guid>
    </item>
    

    <item>
      <title>Unlocking the EmoLocker: bi0s CTF 2022 - Author&#39;s Writeup</title>
      <link>https://yadhu.in/2023/01/19/Unlocking-the-EmoLocker-bi0s-CTF-2022-Authors-Writeup/</link>
      <pubDate>Thu, 19 Jan 2023 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      In this post, we discuss the solution to EmoLocker challenge from bi0s CTF 2022. The source code of this challenge can be downloaded from here.
# Analysis Upon opening the challenge link, we are presented with a lockscreen that uses emojis instead of numbers. The page has two features: register and login. Additionally, there is an admin bot, which suggests that the challenge may involve client-side concepts.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2023/01/19/Unlocking-the-EmoLocker-bi0s-CTF-2022-Authors-Writeup/</guid>
    </item>
    

    <item>
      <title>A Timeline of Growth: Reflections on the Past, Present and Future</title>
      <link>https://yadhu.in/2022/11/13/A-Timeline-of-Growth-Reflections-on-the-Past-Present-and-Future/</link>
      <pubDate>Sun, 13 Nov 2022 01:00:20 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      As I look back at my three and a half years at Amrita University and Team bi0s, I can&amp;amp;rsquo;t help but feel a sense of nostalgia. Join me as I take a trip down memory lane, and reflect on the experiences, lessons, and achievements that have shaped me into the person I am today.
# 🚌 Journey so far.. As I reflect on the past few years, I am struck by the impact that time has had on me. I have grown and changed in ways I never could have imagined. My experiences at Amrita and Team bi0s have helped me to broaden my perspective and gain a deeper understanding of the world around me. I am proud of the progress I have made, both academically and personally, and acknowledge that there were times when I felt lost and uncertain. But it was during those moments that I learned the value of taking a step back, re-evaluating my goals and redirecting my efforts.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2022/11/13/A-Timeline-of-Growth-Reflections-on-the-Past-Present-and-Future/</guid>
    </item>
    

    <item>
      <title>A tale of HTML Injection to Account takedown at Exercism.org</title>
      <link>https://yadhu.in/2022/11/05/A-tale-of-HTML-Injection-to-Account-takedown-at-Exercism.org/</link>
      <pubDate>Sat, 05 Nov 2022 01:00:20 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
       # About Exercism Exercism is an online platform that helps people upskill their programming skills through practice and mentoring. They are an open-source organization with over 200 GitHub repositories, thousands of contributors, and a friendly, inclusive community.
I came to know about the platform in 2018 when my mentor - Vipin Pavithran asked me to improve my coding skills by practicing on Exercism.
Exercism is an amazing platform to learn to code. It has got an amazing set of challenges and a huge variety of learning tracks.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2022/11/05/A-tale-of-HTML-Injection-to-Account-takedown-at-Exercism.org/</guid>
    </item>
    

    <item>
      <title>Good Intentions - CSAW CTF Qualifiers 2022</title>
      <link>https://yadhu.in/2022/10/17/Good-Intentions-CSAW-CTF-Qualifiers-2022/</link>
      <pubDate>Mon, 17 Oct 2022 11:57:25 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
Upload log configuration file and exploit path traversal to gain RCE 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2022/10/17/Good-Intentions-CSAW-CTF-Qualifiers-2022/</guid>
    </item>
    

    <item>
      <title>NarutoKeeper - Securinets CTF Quals 2022</title>
      <link>https://yadhu.in/2022/04/14/NarutoKeeper-Securinets-CTF-Quals-2022/</link>
      <pubDate>Thu, 14 Apr 2022 10:57:25 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
Create a note with meta redirect tag to get callback. Leak the flag using search functionality. 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2022/04/14/NarutoKeeper-Securinets-CTF-Quals-2022/</guid>
    </item>
    

    <item>
      <title>Vulpixelize - HITCON CTF 2021</title>
      <link>https://yadhu.in/2021/12/05/Vulpixelize-HITCON-CTF-2021/</link>
      <pubDate>Sun, 05 Dec 2021 21:24:04 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
Use DNS Rebinding attack to read flag from /flag endpoint. 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/12/05/Vulpixelize-HITCON-CTF-2021/</guid>
    </item>
    

    <item>
      <title>Shisui - Fword CTF 2021 Write-up</title>
      <link>https://yadhu.in/2021/08/30/Shisui-Fword-CTF-2021-Write-up/</link>
      <pubDate>Mon, 30 Aug 2021 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
XSS using DOM Clobbering &amp;amp;lt;a id=&amp;amp;quot;showInfos&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/a&amp;amp;gt;&amp;amp;lt;a id=&amp;amp;quot;SETTINGS&amp;amp;quot; name=check data-timezone=&amp;amp;quot;aaa&amp;amp;quot; data-location=&amp;amp;quot;eval(window.name)&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;a id=&amp;amp;quot;SETTINGS&amp;amp;quot; name=&amp;amp;quot;x&amp;amp;quot;&amp;amp;gt; Bypass CSRF protection to execute XSS and read flag. 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/08/30/Shisui-Fword-CTF-2021-Write-up/</guid>
    </item>
    

    <item>
      <title>InCTF Internationals 2021 - MD-Notes Write-up</title>
      <link>https://yadhu.in/2021/08/15/InCTF-Internationals-2021-MD-Notes-Write-up/</link>
      <pubDate>Sun, 15 Aug 2021 12:01:43 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
Leak admin&amp;amp;rsquo;s hash using wildcard target origin in postMessage or by calculating sha256(&amp;#39;&amp;#39;). Create an XSS payload to read /api/flag and send it to attacker server. 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/08/15/InCTF-Internationals-2021-MD-Notes-Write-up/</guid>
    </item>
    

    <item>
      <title>Exploiting Client-side Prototype Pollution - arg.js</title>
      <link>https://yadhu.in/2021/06/22/Exploiting-Client-side-Prototype-Pollution-arg.js/</link>
      <pubDate>Tue, 22 Jun 2021 01:23:33 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      First of all, a big shoutout to the challenge author. All the challenges in this set are available here.
## Analysis Going through the challenge source, we can see that two JavaScript files are imported.
1 2 &amp;amp;lt;script src=&amp;amp;#34;https://raw.githack.com/stretchr/arg.js/master/dist/arg-1.4.js&amp;amp;#34;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt; &amp;amp;lt;script src=&amp;amp;#34;js/main.js&amp;amp;#34;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt; arg-1.4.js is a popular library for parsing URL parameters. And main.js has the following content.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 let data = { small: &amp;amp;#34;Hi, there!&amp;amp;#34;, big: &amp;amp;#34;Hello, world!&amp;amp;#34; } const vuln = document.querySelector(&amp;amp;#34;#vuln&amp;amp;#34;); let queryStrings = window.location.search; let params = new URLSearchParams(queryStrings); let vulnParams = () =&amp;amp;gt; { let fragments = Arg.parse(location.hash.substr(1)); if(data[params.get(&amp;amp;#34;type&amp;amp;#34;)] !== undefined) vuln.innerHTML = &amp;amp;#34;&amp;amp;lt;h2&amp;amp;gt;&amp;amp;#34;&#43;data[params.get(&amp;amp;#34;type&amp;amp;#34;)]&#43;&amp;amp;#34;&amp;amp;lt;/h2&amp;amp;#34;; else vuln.innerHTML = &amp;amp;#34;&amp;amp;lt;h2&amp;amp;gt;This region seems like something you need to look at.&amp;amp;lt;/h2&amp;amp;gt;&amp;amp;#34;; } window.onhashchange = () =&amp;amp;gt; { vulnParams(); } vulnParams(); We can see that main.js uses Arg library to parse location.hash and uses URLSearchParams to parse query strings.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/06/22/Exploiting-Client-side-Prototype-Pollution-arg.js/</guid>
    </item>
    

    <item>
      <title>Waffle Write-up - m0leCon CTF 2021 Teaser</title>
      <link>https://yadhu.in/2021/05/16/Waffle-Write-up-m0leCon-CTF-2021-Teaser/</link>
      <pubDate>Sun, 16 May 2021 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
Make a GET request to /gettoken%3fcreditcard=mmm&amp;amp;amp;promocode=FREEWAF to get the token. Using the token make another request with {&amp;amp;quot;name&amp;amp;quot;:&amp;amp;quot;&amp;#39; union select flag, 1, 1, 1 from flag -- -&amp;amp;quot;, &amp;amp;quot;name&amp;amp;quot;:&amp;amp;quot;x&amp;amp;quot;} to get the flag. 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/05/16/Waffle-Write-up-m0leCon-CTF-2021-Teaser/</guid>
    </item>
    

    <item>
      <title>Story of My first Bug Bounty</title>
      <link>https://yadhu.in/2021/04/29/Story-of-My-first-Bug-Bounty/</link>
      <pubDate>Thu, 29 Apr 2021 12:56:20 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
       # Intro Hello everyone, it&amp;amp;rsquo;s been over a month I have shared something on my blog. I was busy with academic stuff and CTFs. But finally, I have decided to take some time to write a post on my first bug bounty. The bug was small and easy to exploit, however, let this be a motivation to all who haven’t yet found their first bug.
I found the bug on a jewelry website. They did not have any vulnerability disclosure programs, but I was lucky enough to get a positive response from them. It was on a fine evening, after all the “hustle and bustle” of online classes ended, I was scrolling through my Instagram feed and I noticed an advertisement for a jewelry website.

      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/04/29/Story-of-My-first-Bug-Bounty/</guid>
    </item>
    

    <item>
      <title>HTBCTF Finals 2021: Waf-Waf Write-up</title>
      <link>https://yadhu.in/2021/03/13/HTBCTF-Finals-2021-Waf-Waf-Write-up/</link>
      <pubDate>Sat, 13 Mar 2021 09:19:43 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
Rename table and exploit SQL Injection to get the flag. # Challenge Description Who let the blacklists out?
# Source Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 &amp;amp;lt;?php require(&amp;amp;#39;database.php&amp;amp;#39;); $user = $_GET[&amp;amp;#39;user&amp;amp;#39;]; $pass = $_GET[&amp;amp;#39;pass&amp;amp;#39;]; if (!isset($user) || !isset($pass) || preg_match_all(&amp;amp;#39;/(select|union|where|\(|\.|\&amp;amp;#39;)/i&amp;amp;#39;, $user.$pass)) { highlight_file(__FILE__); exit; } $mysql = get_db(); $mysql-&amp;amp;gt;multi_query(&amp;amp;#34;SELECT * FROM `users` WHERE `username` = &amp;amp;#39;${user}&amp;amp;#39; AND `password` = &amp;amp;#39;${pass}&amp;amp;#39;&amp;amp;#34;); do { if ($result = $mysql-&amp;amp;gt;store_result()) { if ($row = $result-&amp;amp;gt;fetch_assoc()) { echo json_encode($row) . &amp;amp;#39;&amp;amp;lt;br/&amp;amp;gt;&amp;amp;#39;; } $result-&amp;amp;gt;free(); } } while ($mysql-&amp;amp;gt;next_result()); $mysql-&amp;amp;gt;close(); # Analysis Parameters user and pass are directly fed into the query and might cause SQL Injection. The filters applied for the parameters are not strong enough. Multiple queries can be executed at a time since multi_query function is used. Inserting single quotes are not allowed. # Solution Inserting \ as value for user parameter causes a part of the query to be treated as a string, and the pass parameter can be used for SQL Injection. The query becomes

      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/03/13/HTBCTF-Finals-2021-Waf-Waf-Write-up/</guid>
    </item>
    

    <item>
      <title>DiceCTF 2021: Write-up WebIDE Challenge</title>
      <link>https://yadhu.in/2021/02/09/DiceCTF-2021-Write-up-WebIDE-Challenge/</link>
      <pubDate>Tue, 09 Feb 2021 12:01:43 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      tl;dr
Unintended Solution: Cookie Path Restriction bypass using pop-up windows &#43; JS Sandbox Escape Intended Solution: Service Workers &#43; JS Sandbox Escape 
      </description>
      <guid isPermaLink="true">https://yadhu.in/2021/02/09/DiceCTF-2021-Write-up-WebIDE-Challenge/</guid>
    </item>
    

    <item>
      <title>Towards Cyber Security</title>
      <link>https://yadhu.in/2020/08/02/Towards-Cyber-Security/</link>
      <pubDate>Sun, 02 Aug 2020 12:01:43 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      
      </description>
      <guid isPermaLink="true">https://yadhu.in/2020/08/02/Towards-Cyber-Security/</guid>
    </item>
    

    <item>
      <title>About</title>
      <link>https://yadhu.in/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
       ## About I&amp;amp;rsquo;m Yadhu Krishna M, a Security Engineer with over four years of experience in security. I specialize in identifying security vulnerabilities and building scalable security solutions.
I currently lead the Software Supply Chain Security charter at CRED. I&amp;amp;rsquo;m also a core maintainer of the SupplyShield project, contributing to improving software supply chain security.
I&amp;amp;rsquo;ve reported high-severity security issues in critical projects such as Node.js, Gunicorn, n8n, and Safari, earning multiple CVEs for my work. I speak at security conferences and run workshops at events including Nullcon, BlackHat Asia, and BlackHat Europe.

      </description>
      <guid isPermaLink="true">https://yadhu.in/about/</guid>
    </item>
    

    <item>
      <title>About me</title>
      <link>https://yadhu.in/page/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      My name is The Dude. I have the following qualities:
I rock a great beard I&amp;amp;rsquo;m extremely loyal to my friends I like bowling That rug really tied the room together.
## my history To be honest, I&amp;amp;rsquo;m having some trouble remembering right now, so why don&amp;amp;rsquo;t you just watch my movie and it will answer all your questions.

      </description>
      <guid isPermaLink="true">https://yadhu.in/page/about/</guid>
    </item>
    

    <item>
      <title>Archive</title>
      <link>https://yadhu.in/archives/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
      archives
      </description>
      <guid isPermaLink="true">https://yadhu.in/archives/</guid>
    </item>
    

    <item>
      <title>Projects</title>
      <link>https://yadhu.in/projects/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 Z</pubDate>
      
      <author></author>

      
      
      
      

      <description>
       # Projects SupplyShield Open-source application security orchestration framework designed to secure software supply chains from vulnerabilities and unapproved base images. Automates SBOM generation, vulnerability detection, EPSS-based prioritization, and provides actionable security findings with upgrade recommendations. Features GitHub integration for automated issue creation and CI/CD pipeline integration via message queues. Built with Python 3.10&#43; and Docker Compose. # Security Advisories CVE-2026-25053 - n8n - OS Command Injection in Git Node CVE-2026-25049 - n8n - Expression Escape Vulnerability Leading to RCE CVE-2024-40817 - Safari Web Browser CVE-2024-34714 - Bypass enabled origins - Hoppscotch Browser Extension CVE-2024-1135 - HTTP Request Smuggling in Gunicorn. CVE-2023-46134 - Remote Code Execution in D-tale. CVE-2023-30589 - HTTP Request Smuggling in Node.js. CVE-2022-25850 - Server-Side Request Forgery (SSRF) attack in Proxyscotch. CVE-2021-23404 - Cross-Site Request Forgery (CSRF) bug in SQLite Web. CVE-2021-3666 - Prototype pollution in body-parser-xml Node.js module. # Presentations &amp;amp;amp; Talks ## 2025 BlackHat Arsenal Asia 2025 Singapore - SupplyShield: Protecting your software supply chain - Slides | GitHub BlackHat Arsenal Europe 2025 - SupplyShield: Protecting your software supply chain - GitHub Nullcon Goa - Securing the Chains : Building defensive layers for software supply chains ## 2023 HackerOne Meetup - Beginner&amp;amp;rsquo;s Guide to Prototype Pollution ## 2021 Introduction to DNS Spoofing InCTF - Introduction to Web Exploitation A Case Study on the Android Architecture ## 2020 Apache Tomcat RCE by Deserialization - CVE 2020-9484 YAML Deserialization Introduction to LDAP and LDAP Injection # Security Hall of Fames For critical information disclosure (via Cross-Site Leaks) in deepnote.com For potential Denial-of-Service (DoS) attack in standard.com For Cross-Site Scripting attack (XSS) in conclusion.nl ## Archived Projects Docker-On-Demand [archived]

      </description>
      <guid isPermaLink="true">https://yadhu.in/projects/</guid>
    </item>
    
  </channel>
</rss>
