PkgRadar

Package evidence

@mohantn/[email protected]

Install Lifecycle Remote Or Exec: postinstall="node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""

Trust signals

Why this verdict

PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.

Versions published
18
First published
May 2026
Publisher
mohantn

Recommended action

Block this update

Static evidence trips multiple high-signal indicators. Quarantine the release until the publisher validates the change or you can rule out the indicators below.

Block this release in CIcurl · GitHub Actions

Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.

curl -fsS https://pkgradar.com/gate/npm \
  -H "Authorization: Bearer $PKGRADAR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"specs":["@mohantn/[email protected]"],"fail_on":"high"}'

GitHub Actions step:

- name: PkgRadar gate
  run: |
    curl -fsS https://pkgradar.com/gate/npm \
      -H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
      -H "Content-Type: application/json" \
      -d '{"specs":["@mohantn/[email protected]"],"fail_on":"high"}'
Publishermohantn
Artifact bytes167,259
Previous version2.2.4
Published2026-05-23T19:44:00.762Z
SHA-25627d7aa922aeb94374afbadcc7347945f04791e866955baebec651ff2a67a9fb9

Why flagged

What the scanner saw

Install Lifecycle Remote Or Exec: postinstall="node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""

Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.

Availability ledger

available

high
Last checked
highRisk
35Score
2.2.5Version
Status history (4 events)
  1. availableavailable · risk high · score 35 · status available -> available, risk high -> high, score 41 -> 35
  2. availableavailable · risk high · score 41 · status available -> available, risk high -> high, score 46 -> 41
  3. availableavailable · risk high · score 46 · status available -> available, risk high -> high, score 96 -> 46
  4. newavailable · risk high · score 96 · status changed

Related candidates

Linked campaigns and clusters

Publisher / release actor burststale

mohantn

2 members · evidence strength 63
Repeated static TTPstale

Install-time lifecycle script — postinstall="node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""

2 members · evidence strength 69
Repeated static TTPstale

Install Lifecycle Remote Or Exec — postinstall="node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""

2 members · evidence strength 69

Evidence

Static findings

2 static · 0 from release diff · showing high-signal first.

SeverityKindPathDetailPoints
highInstall Lifecycle Remote Or Execpackage.jsonpostinstall="node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""30
Show all 2 findings (low-signal and informational)
SeverityKindPathDetailPoints
highInstall Lifecycle Remote Or Execpackage.jsonpostinstall="node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""30
lowInstall-time lifecycle scriptpackage.jsonpostinstall="node -e \"try{require('./scripts/postinstall.js')}catch(e){}\""5

Manifest

Package metadata

Scripts15
  • buildtsc && echo 'Build complete'
  • build:allnpm run build:clean && npm run build:dashboard
  • build:cleantsc && find dist -name '*.test.*' -delete && echo 'Build complete (test files cleaned)'
  • build:csharpdotnet build CSharpAnalyzer -c Release
  • build:dashboardcd dashboard && npm install && npm run build
  • daemonnode dist/daemon.js
  • devnpx tsx src/daemon.ts
  • mcpnode dist/mcp/server.js
  • mcp:devnpx tsx src/mcp/server.ts
  • postinstallnode -e "try{require('./scripts/postinstall.js')}catch(e){}"
  • prepublishOnlynpm run build:all
  • setupbash scripts/setup.sh
  • testjest
  • test:coveragejest --coverage
  • test:watchjest --watch
Dependencies9
  • @mohantn/gate-keeper^2.2.4
  • @typescript-eslint/parser^8.59.4
  • better-sqlite3^12.10.0
  • eslint^9.39.4
  • eslint-plugin-sonarjs^4.0.3
  • express^4.18.2
  • open^9.1.0
  • typescript^5.3.3
  • ws^8.16.0