<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Research on Tolmo</title><link>https://tolmo.com/tags/research/</link><description>Recent content in Research on Tolmo</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 11 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tolmo.com/tags/research/index.xml" rel="self" type="application/rss+xml"/><item><title>Anatomy of a Malicious Package: The Install-Time Playbook</title><link>https://tolmo.com/blog/anatomy-of-a-malicious-package/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><guid>https://tolmo.com/blog/anatomy-of-a-malicious-package/</guid><description>&lt;p&gt;Installing a dependency runs code. That one fact is the whole attack surface of
the software supply chain. A &lt;code&gt;postinstall&lt;/code&gt; hook, a &lt;code&gt;setup.py&lt;/code&gt;, a &lt;code&gt;build.rs&lt;/code&gt;, or a
&lt;code&gt;.pth&lt;/code&gt; file gives &lt;code&gt;npm install&lt;/code&gt; or &lt;code&gt;pip install&lt;/code&gt; a place to execute whatever the
author wrote, on your laptop or your CI runner, before you have read a line of it.&lt;/p&gt;
&lt;p&gt;Attackers know it, and their techniques have converged into a small, recognizable
playbook. Detection stays hard, but rarely because the risky primitive is hard to
spot. Downloading a binary and running it, reading a file from a home directory,
spawning a shell: dozens of legitimate packages do all of these every day. Each
malicious technique has a benign twin, and the rest of this post walks through
both.&lt;/p&gt;</description></item></channel></rss>