<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DepWall blog</title>
    <link>https://depwall.com/blog/</link>
    <atom:link href="https://depwall.com/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <description>Measured findings on npm and PyPI supply-chain attacks, and what an install-time gate does and does not catch.</description>
    <language>en</language>
    <lastBuildDate>Thu, 13 Aug 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>A browser extension cannot block an install, and should not imply it can</title>
      <link>https://depwall.com/blog/a-browser-extension-cannot-block-an-install/</link>
      <guid isPermaLink="true">https://depwall.com/blog/a-browser-extension-cannot-block-an-install/</guid>
      <pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate>
      <description>We shipped a DepWall extension for npm and PyPI pages. It reports; it does not block — the badge says would, the manifest description says does not block, and a test asserts both.</description>
      <category>ai agents</category>
      <category>supply chain</category>
      <category>verdicts</category>
    </item>
    <item>
      <title>The string &quot;constructor&quot; was a valid npm integrity hash</title>
      <link>https://depwall.com/blog/the-string-constructor-was-a-valid-npm-integrity-hash/</link>
      <guid isPermaLink="true">https://depwall.com/blog/the-string-constructor-was-a-valid-npm-integrity-hash/</guid>
      <pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate>
      <description>Our exact-hash denylist is the one signal with no false-positive rate to trade off. Then we probed it with six inherited property names and it blocked on every one of them.</description>
      <category>npm</category>
      <category>bugs</category>
      <category>supply chain</category>
      <category>osv</category>
    </item>
    <item>
      <title>Two BLOCKs are not the same claim</title>
      <link>https://depwall.com/blog/two-blocks-are-not-the-same-claim/</link>
      <guid isPermaLink="true">https://depwall.com/blog/two-blocks-are-not-the-same-claim/</guid>
      <pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate>
      <description>A byte-for-byte match to a published advisory and a package that was uploaded last Tuesday both stop the install. Rendering them identically hides the difference that decides whether it is worth ten seconds or ten minutes.</description>
      <category>verdicts</category>
      <category>measurement</category>
      <category>supply chain</category>
    </item>
    <item>
      <title>69% of live npm malware walked past our metadata checks</title>
      <link>https://depwall.com/blog/most-live-npm-malware-walks-past-metadata-checks/</link>
      <guid isPermaLink="true">https://depwall.com/blog/most-live-npm-malware-walks-past-metadata-checks/</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>We ran our own engine over the npm packages OSV flags malicious that are still installable today. Three blocked, eight asked, twenty-five were allowed. Here is why, and what we changed.</description>
      <category>npm</category>
      <category>supply chain</category>
      <category>measurement</category>
      <category>osv</category>
    </item>
    <item>
      <title>348 files your agent is told to read were being scanned as shell scripts</title>
      <link>https://depwall.com/blog/your-agents-reference-docs-were-scanned-as-shell-scripts/</link>
      <guid isPermaLink="true">https://depwall.com/blog/your-agents-reference-docs-were-scanned-as-shell-scripts/</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>Skill bundles ship reference documents the agent is instructed to open. We were selecting them correctly and then asking them the wrong question entirely.</description>
      <category>ai agents</category>
      <category>prompt injection</category>
      <category>skills</category>
      <category>measurement</category>
    </item>
    <item>
      <title>We were checking the wrong release on every pinned pip install</title>
      <link>https://depwall.com/blog/pip-install-pinned-version-was-checking-the-wrong-release/</link>
      <guid isPermaLink="true">https://depwall.com/blog/pip-install-pinned-version-was-checking-the-wrong-release/</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>pip install evil==0.1.0 was judged on latest&#39;s age, latest&#39;s readme and latest&#39;s sdist. Four call sites had it, including the server, and we found it while measuring something else entirely.</description>
      <category>pypi</category>
      <category>pip</category>
      <category>bugs</category>
      <category>supply chain</category>
    </item>
    <item>
      <title>The keyv compromise shipped with a valid provenance attestation</title>
      <link>https://depwall.com/blog/npm-provenance-attests-the-build-not-the-source/</link>
      <guid isPermaLink="true">https://depwall.com/blog/npm-provenance-attests-the-build-not-the-source/</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>Attackers poisoned the source repository and let the project&#39;s own GitHub Actions workflow sign the release. npm provenance did exactly what it promises, and the package was malicious anyway.</description>
      <category>npm</category>
      <category>provenance</category>
      <category>slsa</category>
      <category>supply chain</category>
    </item>
    <item>
      <title>Enabling a plugin is code execution, before you type anything</title>
      <link>https://depwall.com/blog/sessionstart-hooks-run-before-you-type-anything/</link>
      <guid isPermaLink="true">https://depwall.com/blog/sessionstart-hooks-run-before-you-type-anything/</guid>
      <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
      <description>A plugin&#39;s SessionStart hook runs on startup, on /clear and on compaction. There is no install to gate and no prompt. We measured 66 real manifests to find out what the honest shape looks like.</description>
      <category>ai agents</category>
      <category>plugins</category>
      <category>code execution</category>
      <category>measurement</category>
    </item>
  </channel>
</rss>
