curl -L https://foundry.paradigm.xyz | bashANATOMY OF A FINDING
Every step is ordinary. The sequence is not.
polymarket-stake-mathss@3.5.2 is two kilobytes of readable JavaScript with a single postinstall hook. No obfuscation, no packing, nothing a reviewer would catch by opening the tarball. This is what the sandbox recorded while it ran.
INSTRUMENTATION
Some payloads wait to be called.
So every package runs twice: once as it installs, once as it is imported. Two records, weighed equally.
01 · INSTALL
Scripts left on.
Every lifecycle hook runs, traced. It is where most payloads live.
02 · IMPORT
Then loaded.
Loaded the way your code would load it. Nothing to load is still a result.
One event is noise.
Two, in order, is a finding.
ATTRIBUTION
Every action has an author.
npm reading your .npmrc is npm. A postinstall reading your SSH key is not.
npm install 1 ├── npm 12 │ ├── openat /root/.npmrc │ ├── stat /usr/lib/node_modules │ ├── write ./node_modules/.package-lock.json │ └── connect registry.npmjs.org:443 └── postinstall → node 31 ├── openat /root/.ssh/id_rsa ├── openat /root/.aws/credentials ├── openat /root/.electrum/wallets/default_wallet ├── execve /usr/bin/tar ├── execve /usr/bin/gzip ├── write /tmp/.x/ssh.gz └── connect 216.198.79.1:443
An indicator says what was seen.
Attribution says who.
DYNAMIC ENGINE
Three questions, every run.
Where did it call? What did it reach for? What did it leave behind? The answers set the verdict.
NETWORK
Where it called.
A hostname can be the payload.
CANARIES
What it reached for.
The secrets are planted. If one leaves, it was sent.
FILESYSTEM
What it left behind.
Written, then run. Neither half matters alone.
Silence is recorded too.
STATIC ENGINE
Reads what shipped. Never decides.
The tarball is examined without running a line. It adds context to the verdict, never the verdict itself.
THREATS
Scored.
A severity, a tactic and the exact line.
CAPABILITIES
Noted, never scored.
Holding a capability is not an accusation.
EVERY FILE
Measured.
A hash and an entropy score, file by file.
A rule that cannot show its work is worth nothing.
So every match comes with the file, the line and the source around it. This one is a false positive, shown on purpose. It takes seconds to dismiss.
Entropy
Text sits near 0.6. Packed or encrypted data sits near 1. Anything at or above 0.94 is flagged.
Two engines, one story.
That 0.995 file is a 19 KB binary. The dynamic engine watched it get dropped, made executable and run.
READING THE FEED
Two verdicts. By design.
A third would start arguments about shades. Two leaves one question: look, or move on.
Worth a human's eyes.
A lead, not a conviction.
Nothing notable observed.
Published too. A feed of only hits has no baseline.
No coverage is not the same as nothing found.
The feed is public. See what the registry shipped today.
Every verdict on this page is published at trail.snappyfeet.org. It is live, searchable, and carries the full record behind every row.
contact@snappyfeet.org