<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged supplychainsecurity</title>
<link>https://coderlegion.com/tag/supplychainsecurity</link>
<description>Powered by Question2Answer</description>
<item>
<title>LibKill: Scan Your Machine for Compromised npm, pip, and Bun Packages</title>
<link>https://coderlegion.com/17708/libkill-scan-your-machine-for-compromised-npm-pip-and-bun-packages</link>
<description>&lt;p&gt;Over the last few weeks, supply chain security has once again become a very real problem for developers.&lt;/p&gt;
&lt;p&gt;We keep seeing the same attack pattern:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;CI/CD token stolen
→ malicious package version published
→ developers install or update dependencies
→ compromised code lands on real machines
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the worst part is simple:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You may already have one of those compromised packages on your machine without knowing it.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;That is why I built &lt;strong&gt;LibKill&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;what-is-libkill-&quot;&gt;What is LibKill?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;LibKill&lt;/strong&gt; is an open-source supply chain security scanner.&lt;/p&gt;
&lt;p&gt;It checks your local development environment against a database of known compromised package artifacts.&lt;/p&gt;
&lt;p&gt;Currently, it scans:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;npm global packages&lt;/li&gt;
&lt;li&gt;pip packages&lt;/li&gt;
&lt;li&gt;Bun cache&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then it cross-references what it finds against &lt;strong&gt;2,672+ known compromised package artifacts&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If something suspicious is detected, LibKill can help you remove it interactively.&lt;/p&gt;
&lt;h3 id=&quot;why-i-built-it&quot;&gt;Why I built it&lt;/h3&gt;
&lt;p&gt;Most developers hear about compromised packages after the damage is already done.&lt;/p&gt;
&lt;p&gt;A package gets reported.&lt;br&gt;
A malicious version is removed.&lt;br&gt;
A GitHub advisory appears.&lt;br&gt;
A security company publishes an analysis.&lt;/p&gt;
&lt;p&gt;But then comes the real question:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Is any of this already on my machine?”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That question should be easy to answer.&lt;/p&gt;
&lt;p&gt;LibKill is my attempt to make that check fast, local, and simple.&lt;/p&gt;
&lt;h3 id=&quot;features&quot;&gt;Features&lt;/h3&gt;
&lt;p&gt;LibKill currently supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scanning npm global packages&lt;/li&gt;
&lt;li&gt;Scanning installed pip packages&lt;/li&gt;
&lt;li&gt;Scanning Bun cache&lt;/li&gt;
&lt;li&gt;Cross-checking against known compromised artifacts&lt;/li&gt;
&lt;li&gt;Interactive removal when threats are found&lt;/li&gt;
&lt;li&gt;Background daemon mode&lt;/li&gt;
&lt;li&gt;Desktop notifications&lt;/li&gt;
&lt;li&gt;macOS, Linux, and Windows support&lt;/li&gt;
&lt;li&gt;Single binary&lt;/li&gt;
&lt;li&gt;Zero runtime dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is written in Go and distributed as a small standalone binary.&lt;/p&gt;
&lt;h3 id=&quot;installation&quot;&gt;Installation&lt;/h3&gt;
&lt;p&gt;You can install it with one command:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://raw.githubusercontent.com/firfircelik/libkill/main/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or build it manually:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;git clone https://github.com/firfircelik/libkill.git
cd libkill
make install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;example-usage&quot;&gt;Example usage&lt;/h3&gt;
&lt;p&gt;After installation, run:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;libkill scan
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;To start background monitoring:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;libkill daemon
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If compromised artifacts are found, LibKill will show the results and offer interactive cleanup options.&lt;/p&gt;
&lt;h3 id=&quot;threat-coverage&quot;&gt;Threat coverage&lt;/h3&gt;
&lt;p&gt;LibKill currently covers known compromised artifacts related to campaigns and threat clusters such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mini Shai-Hulud&lt;/li&gt;
&lt;li&gt;Contagious Interview&lt;/li&gt;
&lt;li&gt;StegaBin&lt;/li&gt;
&lt;li&gt;SANDWORM_MODE&lt;/li&gt;
&lt;li&gt;CanisterWorm&lt;/li&gt;
&lt;li&gt;W4SP&lt;/li&gt;
&lt;li&gt;TeamPCP&lt;/li&gt;
&lt;li&gt;and many others&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The threat database is built from public security sources including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Socket.dev&lt;/li&gt;
&lt;li&gt;GitHub Advisory Database&lt;/li&gt;
&lt;li&gt;OSV.dev&lt;/li&gt;
&lt;li&gt;Public security research&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;why-local-scanning-matters&quot;&gt;Why local scanning matters&lt;/h3&gt;
&lt;p&gt;A lot of supply chain security tools focus on repositories, lockfiles, or CI pipelines.&lt;/p&gt;
&lt;p&gt;That is useful, but it does not fully answer what is already installed locally.&lt;/p&gt;
&lt;p&gt;Developers often install tools globally.&lt;/p&gt;
&lt;p&gt;They test packages.&lt;/p&gt;
&lt;p&gt;They use temporary scripts.&lt;/p&gt;
&lt;p&gt;They work across multiple languages and package managers.&lt;/p&gt;
&lt;p&gt;They forget what was installed weeks ago.&lt;/p&gt;
&lt;p&gt;A compromised package does not need to be in your current production repository to be a problem.&lt;/p&gt;
&lt;p&gt;It may already exist somewhere in your local environment.&lt;/p&gt;
&lt;h3 id=&quot;project-details&quot;&gt;Project details&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Language: Go&lt;/li&gt;
&lt;li&gt;License: MIT&lt;/li&gt;
&lt;li&gt;Binary size: around 14 MB&lt;/li&gt;
&lt;li&gt;Dependencies: zero runtime dependencies&lt;/li&gt;
&lt;li&gt;Platforms: macOS, Linux, Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;GitHub:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-txt&quot;&gt;https://github.com/firfircelik/libkill
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;final-note&quot;&gt;Final note&lt;/h3&gt;
&lt;p&gt;LibKill is still evolving.&lt;/p&gt;
&lt;p&gt;My goal is to make it a practical local security tool for developers who work with open-source packages every day.&lt;/p&gt;
&lt;p&gt;If you work with npm, Python, Bun, or modern JavaScript tooling, you should not have to guess whether a known compromised artifact exists on your machine.&lt;/p&gt;
&lt;p&gt;You should be able to check it quickly.&lt;/p&gt;
&lt;p&gt;That is what LibKill is for.&lt;/p&gt;
&lt;p&gt;Feedback, issues, and contributions are welcome.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -fsSL https://raw.githubusercontent.com/firfircelik/libkill/main/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>Discussions</category>
<guid isPermaLink="true">https://coderlegion.com/17708/libkill-scan-your-machine-for-compromised-npm-pip-and-bun-packages</guid>
<pubDate>Wed, 13 May 2026 11:02:12 +0000</pubDate>
</item>
</channel>
</rss>