PkgRadar

Package evidence

@visa/[email protected]

Credential file access: matched ".SSH"

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.

Publisher
GitHub ActionsTrusted automation · −70% score

Effective trust discount applied: 70% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.

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":["@visa/[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":["@visa/[email protected]"],"fail_on":"high"}'
Artifact bytes196,238
Previous version2.4.0-rc.2
Published2026-05-24T02:28:32.544Z
SHA-2562e2f8164fe21f820ae5b4a7762793b19f5a3a215bb6f645a4f2f94cb533af1b2

Why flagged

What the scanner saw

Credential file access: matched ".SSH"

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

Availability ledger

available

high
Last checked
highRisk
114Score
2.4.0-rc.3Version
Status history (1 event)
  1. newavailable · risk high · score 114 · status changed

Related candidates

Linked campaigns and clusters

Repeated static TTPstale

Credential file access — matched ".SSH"

84 members · evidence strength 90

Evidence

Static findings

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

SeverityKindPathDetailPoints
highCredential file accesspackage/dist/cli.jsmatched ".SSH"30
highCredential file accesspackage/dist/mcp-server/index.jsmatched ".SSH"30
mediumRemote Payloadpackage/dist/cli.jsmatched "curl "12
mediumObfuscation Densitypackage/dist/cli.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/dist/mcp-server/index.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/install.shmatched "curl "12
Show all 8 findings (low-signal and informational)
SeverityKindPathDetailPoints
highCredential file accesspackage/dist/cli.jsmatched ".SSH"30
highCredential file accesspackage/dist/mcp-server/index.jsmatched ".SSH"30
mediumRemote Payloadpackage/dist/cli.jsmatched "curl "12
mediumObfuscation Densitypackage/dist/cli.jshigh encoded/escaped-token density12
mediumObfuscation Densitypackage/dist/mcp-server/index.jshigh encoded/escaped-token density12
mediumRemote Payloadpackage/install.shmatched "curl "12
lowObfuscationpackage/dist/cli.jsmatched "\\x7F"3
lowObfuscationpackage/dist/mcp-server/index.jsmatched "\\u2014"3

Manifest

Package metadata

Scripts21
  • buildtsc --noEmit && node esbuild.config.js
  • check:server-jsonnode scripts/sync-server-json.mjs --check
  • devtsc --watch
  • formatprettier --write "src/**/*.ts"
  • format:checkprettier --check "src/**/*.ts"
  • linteslint src/**/*.ts
  • prebuildnode scripts/sync-server-json.mjs && pnpm --filter @visa/money build && pnpm --filter @visa-cli/tools build
  • prepacknode scripts/sync-server-json.mjs --check
  • prepublishOnlynpm run build && npm test
  • pretestpnpm build
  • startnode dist/mcp-server/index.js
  • sync:server-jsonnode scripts/sync-server-json.mjs
  • testjest --config jest.config.js
  • test:allnpm run test:unit && npm run test:integration && npm run test:e2e
  • test:catalog-e2ejest --config jest.catalog-e2e.config.js
  • test:e2ejest --config jest.e2e.config.js
  • test:integrationjest --config jest.integration.config.js
  • test:smokeVISA_AUTH_URL=https://auth.visacli.sh jest --config jest.smoke.config.js
  • test:unitjest --config jest.config.js
  • test:unit:coveragejest --config jest.config.js --coverage
  • test:unit:watchjest --config jest.config.js --watch
Dependencies3
  • @modelcontextprotocol/sdk^1.0.0
  • commander^12.1.0
  • zod^3.23.0