ssh2
SSH2 client and server modules written in pure JavaScript for node.js
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| source-diff | net-exec-file:mscdex-ssh2-45e28ae/lib/protocol/node-fs-compat.js | AI (source-diff): FS compat shim with error classes and BigInt feature detection via new Function(); no actual network or exec calls. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-45e28ae/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; minified asm.js output is expected for compiled crypto primitives. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-83109f9/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; minified asm.js output is expected for compiled crypto primitives. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-83109f9/lib/protocol/node-fs-compat.js | AI (source-diff): False positive: file contains error classes and BigInt feature detection via new Function(), no actual network calls. | ai | |
| source-diff | source-size-tripled | AI (source-diff): ssh2 v1.x internalized ssh2-streams; size increase reflects consolidation of protocol code into the main package. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-51cbe0f/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; long lines are asm.js output, not obfuscation. Standard for crypto in SSH libraries. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-51cbe0f/lib/protocol/node-fs-compat.js | AI (source-diff): Node.js compat/error utility; new Function() is BigInt feature detection. No actual network or exec patterns. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-9102976/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; minified asm.js output is expected for this crypto primitive. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-9102976/lib/protocol/node-fs-compat.js | AI (source-diff): Node.js compat utility with BigInt feature detection via new Function(); no actual network or malicious exec. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-69c4df1/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; minified asm.js output is expected, not hand-crafted obfuscation. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-69c4df1/lib/protocol/node-fs-compat.js | AI (source-diff): FS compat shim with BigInt feature detection via new Function(); no actual network or exec activity. False positive. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-c3592e7/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled poly1305 crypto implementation; standard WebAssembly fallback pattern for ssh2's crypto layer. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-c3592e7/lib/protocol/node-fs-compat.js | AI (source-diff): File contains only error class definitions and utility functions; no actual network or exec calls. False positive. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-5ae69d7/lib/protocol/node-fs-compat.js | AI (source-diff): Node.js compat utility with error classes and BigInt feature detection via new Function(); no actual network or exec patterns. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-5ae69d7/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled asm.js output for Poly1305 MAC crypto primitive; standard for performance-critical crypto in SSH library. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-97d3ed4/lib/protocol/node-fs-compat.js | AI (source-diff): Node.js compat shim with BigInt feature detection via new Function(); no actual network or exec behavior. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-97d3ed4/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation — standard crypto primitive output, not obfuscation. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-8f3ff6f/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; minified asm.js output is expected for compiled crypto primitives in an SSH library. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-8f3ff6f/lib/protocol/node-fs-compat.js | AI (source-diff): FS compat/error module with BigInt feature detection via new Function(); no actual network or exec payload. | ai | |
| phantom-deps | phantom-dep:nan | AI (phantom-deps): nan is an optionalDependency for native addon compilation; not directly imported in JS source but used by node-gyp build. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-34546ab/lib/protocol/node-fs-compat.js | AI (source-diff): Error-handling utility with BigInt feature detection via new Function(); no actual network calls or malicious execution. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-34546ab/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; long lines are asm.js/WASM output, not hand-crafted obfuscation. | ai | |
| source-diff | large-new-source-files | AI (source-diff): Tarball structure change causes files to appear new. Source files are expected SSH2 library components. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-d5c97b4/lib/protocol/node-fs-compat.js | AI (source-diff): False positive. File contains error classes and BigInt feature detection via new Function(). No actual network calls or malicious execution. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-d5c97b4/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation; long lines are asm.js/WASM output, not obfuscation. Standard for crypto libraries. | ai | |
| semgrep | semgrep:new-function-constructor | AI (semgrep): new Function('return 2n ** 32n') is a standard BigInt feature-detection pattern for older Node.js versions. | ai | |
| semgrep | semgrep:child-process-import | AI (semgrep): install.js uses spawnSync for native addon compilation — standard for packages with optional C++ bindings. | ai | |
| source-diff | net-exec-file:mscdex-ssh2-5c506eb/lib/protocol/node-fs-compat.js | AI (source-diff): False positive — file is a Node.js error/assertion compat layer with no actual network or exec calls. | ai | |
| source-diff | obfuscated-file:mscdex-ssh2-5c506eb/lib/protocol/crypto/poly1305.js | AI (source-diff): Emscripten-compiled Poly1305 MAC implementation (ChaCha20-Poly1305 cipher). Minified asm.js output is expected. | ai | |
| npm-metadata | bundled-binaries | AI (npm-metadata): pagent.exe is the PuTTY authentication agent helper, a long-standing component of ssh2 for Windows SSH agent support. | ai | |
| install-scripts | install-script:install | AI (install-scripts): ssh2 uses install script to build optional native crypto bindings (cpu-features, nan). Standard for native addon packages. | ai | |
| semgrep | semgrep:base64-decode | AI (semgrep): Base64 in poly1305.js is Emscripten runtime loading embedded WASM binary data. Standard compiler output. | ai | |
| semgrep | semgrep:hex-decode | AI (semgrep): SSH key parsing naturally involves hex-encoded data. Expected for an SSH library. | ai |
Versions (showing 7 of 7)
| Version | Deps | Published |
|---|---|---|
| 1.17.0 | 2 / 2 | |
| 1.15.0 | 4 / 2 | |
| 1.12.0 | 4 / 2 | |
| 1.10.0 | 4 / 2 | |
| 1.9.0 | 4 / 2 | |
| 1.8.0 | 4 / 2 | |
| 1.4.0 | 4 / 2 |
v1.17.0
5 findingsScript: node install.js
Package contains compiled binaries that could be backdoors: • mscdex-ssh2-5c506eb/util/pagent.exe
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.15.0
3 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.12.0
3 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.10.0
3 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.9.0
3 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.8.0
3 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v1.4.0
3 findingsNewly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.