A signed proof pack from minimist@1.2.5 (vendored under samples/external/).

This page contains no marketing. Every claim below is signed with Ed25519 and can be verified in your browser, with openssl, or with any JOSE-compatible library. If any file changes byte-for-byte, the signature breaks — including this one.

Verdict
Block

One or more blocking policy conditions were violated.

policy_set = softinel-baseline-2026-07 · signed_at = 2026-07-24T14:01:16Z

Severity spread · 4 findings
2
Critical
0
High
1
Medium
0
Low
1
Info
Provenance — where this source came from
Package
minimist@1.2.5
Registry
https://registry.npmjs.org
Ref
1.2.5
License
MIT
Kind
npm-tarball

Attribution: Copyright (c) James Halliday — see samples/external/minimist-1.2.5/LICENSE

Signature — verify it yourself
Verify this artifact in your browser

Runs Ed25519 signature verification via Web Crypto and re-hashes every component file. No data leaves your browser.

The verifier fetches the JWS, fetches the JWK, imports the Ed25519 key using the browser's Web Crypto API, checks the signature over the JWS signing input, and then re-hashes every component file to confirm it matches the SHA-256 recorded in the signed payload.

Ontology snapshot
Files indexed
20
Symbols captured
75
Call edges
12
External deps
0
Languages
javascript · json
Root hash (Merkle of all sources)
sha256:e305280c871b85167d4b2da904cf850182a69f83992a57606f3b47c0dfd63818
Policy conditions (5)
  • Violated
    No critical findings
    no-critical-findings · 2 critical findings.
  • Violated
    No known CVEs in direct dependencies
    no-known-cve-in-direct-deps · Direct dependencies checked against OSV.
  • OK
    No `eval` on untrusted input
    no-eval-on-untrusted-input · SEC-EVAL-001 gate.
  • OK
    High-severity findings ≤ 2
    high-severity-cap · 0 high-severity findings (cap 2).
  • OK
    No architectural fan-out violations
    architecture-fanout · ARCH-FANOUT-001 gate.
Findings (4)
  • criticalsupply-chainSC-CVE-MINIMIST-001

    Package `minimist@1.2.5` is affected by CVE-2021-44906 (prototype pollution)

    package.json:3
    confidence 100%
    "version": "1.2.5"

    Why: Version 1.2.5 predates the fix for CVE-2021-44906. The vulnerability is prototype pollution via a `constructor` key in the parsed arguments; the fix in 1.2.6 added a `constructor` guard to `setKey`. NVD score: 9.8 (critical).

    Detector: svp-dependency + OSV feed (GHSA-xvch-5gv4-984h)

    Reachable from
    • import minimist → parse(args) → setKey(argv, keys, value)
    Recommendation: Upgrade to `minimist ^1.2.6` (patch-only upgrade, no API break).
  • criticalsecuritySEC-PROTO-POLLUTION-001

    `setKey` guards `__proto__` but not `constructor` — prototype pollution sink

    index.js:69 · setKey
    confidence 95%
    if (key === '__proto__') return;

    Why: The `setKey` helper walks a user-controlled key path and assigns into the target object. Lines 73 and 82 guard the exact string `__proto__` — but not `constructor`, `prototype`, or `constructor.prototype`. An attacker who controls CLI arguments (or JSON parsed by minimist) can pollute Object.prototype through a `constructor.prototype` payload. This is the code-level root cause of the CVE in the previous finding.

    Detector: svp-verification (semantic check on argument-parser sinks)

    Reachable from
    • parse(argv, opts) → argDefined() → setKey(argv, keys, value)
    • parse(argv, opts) → defaults[key] fallback → setKey(argv, x.split('.'), defaults[key])
    Recommendation: Add `if (key === 'constructor' || key === 'prototype') return;` to setKey before the existing __proto__ check — or replace the guard set with a full disallow-list including all Object.prototype accessor names.
  • mediumqualityQUAL-LONG-001

    File `index.js` is 246 lines — above the 200-line soft threshold

    index.js:1
    confidence 100%
    module.exports = function (args, opts) { ... }

    Why: index.js consolidates the entire parser plus 6 internal helpers in one file. Not a blocker on its own, but a smaller surface would make future audits cheaper.

    Detector: svp-parser (structural metric)

    Recommendation: Consider extracting `setKey` and the flag-classifier helpers into siblings.
  • infosupply-chainMETA-LICENSE-MIT

    License = MIT (permissive, redistribution allowed)

    LICENSE:1
    confidence 100%
    This software is released under the MIT license

    Why: Vendored copy carries an MIT LICENSE file. Attribution preserved per the license terms in the manifest provenance block.

    Detector: svp-dependency (license fingerprint)

    Recommendation: No action — informational.
Downloads · everything you need to verify offline
Verify offline with a Unix pipeline
# 1. Fetch the JWS and the JWK curl -sSO https://softinel.com/evidence/sample-3/evidence.jws curl -sSO https://softinel.com/.well-known/jwks.json # 2. Split the JWS into header.payload and signature IFS='.' read -r H P S < evidence.jws SIGNING_INPUT="$H.$P" # 3. Decode signature and pubkey from base64url b64u_decode() { tr '_-' '/+' | awk '{ p=length%4; if(p) printf "%s%s",$0,substr("===",1,4-p); else print }' | base64 -d; } b64u_decode <<<"$S" > sig.bin jq -r '.keys[] | select(.kid=="softinel-evidence-2026-07") | .x' jwks.json | b64u_decode > pub.raw # 4. Verify (Ed25519, 32-byte raw key → OpenSSL DER wrapping) { printf '\x30\x2a\x30\x05\x06\x03\x2b\x65\x70\x03\x21\x00'; cat pub.raw; } > pub.der openssl pkey -inform DER -pubin -in pub.der -out pub.pem openssl pkeyutl -verify -pubin -inkey pub.pem \ -sigfile sig.bin -rawin -in <(printf '%s' "$SIGNING_INPUT") # → Signature Verified Successfully

Or use any JOSE library: Python joserfc, Node jose, Go github.com/go-jose/go-jose. Look up the key id softinel-evidence-2026-07 in the JWKS.

More artifacts
← Browse every published Softinel evidence pack