Marshal

@marshalhq.bsky.social

@joshlong.bsky.social Wrote up a supply-chain finding: a GPG signature drop in javax.activation that looks exactly like an account takeover, and looking at a routine handoff using only Maven Central metadata. Relevant for Spring Boot teams running Renovate auto-merge. foojay.io/today/this-d...

This Dependency Update Looked Exactly Like an Account Takeover - foojay

I pointed a scanner I have been building at an old Spring project, and it flagged javax.activation. The bump was 1.1-rev-1 to 1.1.1. Prior releases - by Muhammad Usman

foojay.io

Gradle support shipped. Marshal now checks what Gradle actually resolves, not what the build file claims. A version that looks pinned but quietly resolves to something else is exactly where a swapped dependency hides. Now caught on Maven and Gradle both. #java #appsec

Shipped Marshal v0.1 today. It scores Maven dependency updates on behavioral signals. The clearest one: a package that used to ship a GPG signature and suddenly doesn't. That's often the first sign of a hijacked publisher, and it lands before any CVE exists. github.com/marshal-hq/marshal

GitHub - marshal-hq/marshal: Behavioral security monitoring for JVM dependencies. Catches malicious package updates before CVEs exist

Behavioral security monitoring for JVM dependencies. Catches malicious package updates before CVEs exist - marshal-hq/marshal

github.com

Week 2 of building Marshal in public. The detection engine works. Took 5 real supply chain attacks from the last 8 years and ran them through it. 3 flagged RED. 1 YELLOW. 1 only partially caught. The partial one is the interesting one.

Where regulated teams live and nobody else is looking. Solo founder, Tilburg. 10 years of Java. Shipping v0.1 in 30 days. Building in public. If you auto-merge Renovate or Dependabot PRs without watching behavioral signals, this is the gap. marshalhq.dev

Marshal — Behavioral security for your dependencies

Marshal watches Maven Central, npm, and PyPI for behavioral signals of supply-chain attacks and blocks them at PR time, before they reach your build.

marshalhq.dev

I'm building Marshal. It watches how packages change — maintainer swaps, new install hooks, dependency injections, obfuscated code — and blocks risky updates at PR time. Starting with Maven Central. JVM-first.

The signals were there before any CVE. New maintainer account activity. Malicious postinstall hook added. New dependency injected. Network calls in install scripts. Behavioral signals. Not CVE scores.

This is the pattern every time. Attacker hijacks a maintainer account. Publishes a malicious version. Millions of auto-updates pull it within hours. CVE filed days or weeks later. By the time your scanner fires, you're already breached.

In March 2026, a North Korean hacker compromised one axios maintainer account. Axios has 100 million weekly downloads. Every CVE scanner missed it. No CVE existed yet. A postinstall hook was silently installing a RAT on developer machines.