# @noble/ciphers@1.3.0 security report (npm)

- Verdict: **No issues** (risk level: safe)
- Scanned: 2026-10-04T16:08:53.000Z
- Files reviewed: 42
- Findings: 1 low severity finding
- Report: https://security.togoder.click/npm/@noble/ciphers
- Source: Togoder Security (https://security.togoder.click), AI source-code review

## Summary

Togoder Security scanned the npm package @noble/ciphers@1.3.0 on Oct 4, 2026. An AI review of 42 source files produced 1 low severity finding. No malicious behavior, install-time payloads, credential theft or exfiltration were identified.

## Findings

### [low] Intentional import guard

Finding ID: `NPS-C7FEC5C5CACF`

File: `esm/index.js:31`

The file throws an error when imported directly and exports nothing. This is a deliberate design pattern to prevent importing the root module and force users to import specific submodules. It does not execute any malicious code, access environment variables, perform network requests, or manipulate the filesystem.

## Files reviewed

- `_arx.js` (safe): No malicious patterns detected; the code is a legitimate implementation of ARX-based ciphers (Salsa/ChaCha) with no data exfiltration, obfuscation, or other security concerns.
- `_assert.js` (safe): No malicious patterns detected; the file only re-exports deprecated assertion helpers from an internal utility module.
- `_micro.js` (safe): No malicious patterns detected; the code is a legitimate implementation of Salsa20, ChaCha20, and Poly1305 ciphers from the noble-ciphers library.
- `_poly1305.js` (safe): No malicious patterns detected; the code is a standard Poly1305 MAC implementation with no network, filesystem, process, or obfuscation concerns.
- `_polyval.js` (safe): No malicious patterns detected; the code is a legitimate cryptographic implementation of GHASH/POLYVAL with no suspicious network, filesystem, process, or dynamic execution behavior.
- `aes.js` (safe): No malicious patterns detected; the file is a legitimate pure-JS AES implementation with only internal crypto operations and no network, filesystem, process, or dynamic-code behavior.
- `chacha.js` (safe): This is a legitimate implementation of ChaCha20 and XChaCha20-Poly1305 cryptographic algorithms from the @noble/ciphers library, with no malicious patterns detected.
- `crypto.js` (safe): No malicious patterns detected; the file is a harmless utility that exports the global crypto object if available.
- `cryptoNode.js` (safe): No malicious patterns detected; the code simply provides a WebCrypto alias using Node.js built-in crypto module.
- `esm/_arx.js` (safe): Cleared by Jev triage; no further analysis needed
- `esm/_assert.js` (safe): Cleared by Jev triage; no further analysis needed
- `esm/_micro.js` (safe): Cleared by Jev triage; no further analysis needed
- `esm/_poly1305.js` (safe): This is a legitimate implementation of the Poly1305 message authentication code with no malicious patterns detected.
- `esm/_polyval.js` (safe): No malicious patterns detected; the code is a legitimate cryptographic implementation of GHASH and Polyval from the @noble/hashes library.
- `esm/aes.js` (safe): This is a legitimate pure JavaScript implementation of AES cryptographic primitives with no malicious patterns, network calls, process spawning, or credential harvesting.
- `esm/chacha.js` (safe): No malicious patterns detected; the file contains a standard implementation of the ChaCha20 stream cipher and related AEAD constructions.
- `esm/crypto.js` (safe): Cleared by Jev triage; no further analysis needed
- `esm/cryptoNode.js` (safe): Cleared by Jev triage; no further analysis needed
- `esm/ff1.js` (safe): No malicious patterns detected
- `esm/index.js` (safe): The code is a benign root module guard that throws an error to enforce submodule imports; no malicious patterns were detected.
- `esm/salsa.js` (safe): This is a legitimate implementation of the Salsa20/XSalsa20 stream cipher and XSalsa20-Poly1305 authenticated encryption with no malicious patterns detected.
- `esm/utils.js` (safe): No malicious patterns detected; the code is a legitimate utility module from the noble-ciphers library with no network, filesystem, process, or obfuscated behavior.
- `esm/webcrypto.js` (safe): No malicious patterns detected; the code is a legitimate WebCrypto AES implementation for the @noble/ciphers library.
- `ff1.js` (safe): The code implements the NIST FF1 format-preserving encryption algorithm with no evidence of malicious behavior, data exfiltration, or other red flags.
- `index.js` (safe): The file is an intentional entry-point guard that throws an error to prevent root module import; no malicious patterns detected.
- `salsa.js` (safe): No malicious patterns detected; the code is a legitimate implementation of the Salsa20 cipher family.
- `src/_arx.ts` (safe): Cleared by Jev triage; no further analysis needed
- `src/_assert.ts` (safe): Cleared by Jev triage; no further analysis needed
- `src/_micro.ts` (safe): Cleared by Jev triage; no further analysis needed
- `src/_poly1305.ts` (safe): This is a standard, clean-room implementation of the Poly1305 message authentication code based on public domain poly1305-donna, with no malicious patterns detected.
- `src/_polyval.ts` (safe): No malicious patterns detected; the file is a legitimate cryptographic implementation of GHASH/Polyval with no network, filesystem, process, or obfuscation concerns.
- `src/aes.ts` (safe): No malicious patterns detected; this is a legitimate AES cryptographic implementation with no network, filesystem, process, or dynamic execution behavior.
- `src/chacha.ts` (safe): Cleared by Jev triage; no further analysis needed
- `src/crypto.ts` (safe): Cleared by Jev triage; no further analysis needed
- `src/cryptoNode.ts` (safe): Cleared by Jev triage; no further analysis needed
- `src/ff1.ts` (safe): No malicious patterns detected; the code is a legitimate implementation of the NIST SP 800-38G FF1 format-preserving encryption algorithm.
- `src/index.ts` (safe): The file intentionally throws an error at import time to prevent root module usage; no malicious patterns detected.
- `src/salsa.ts` (safe): Cleared by Jev triage; no further analysis needed
- `src/utils.ts` (safe): No malicious patterns detected; the code is a standard cryptographic utilities module with only local byte/hex/cipher helper functions.
- `src/webcrypto.ts` (safe): The code is a legitimate WebCrypto AES encryption utility with no malicious patterns detected.
- `utils.js` (safe): No malicious patterns detected; the code is a standard cryptographic utility module with only defensive validation and no exfiltration, obfuscation, or process spawning.
- `webcrypto.js` (safe): No malicious patterns detected; the code is a legitimate WebCrypto AES implementation from the @noble/ciphers library with no data exfiltration, credential harvesting, obfuscation, or backdoor behavior.

## Version ranges

None of the 2 scanned versions of @noble/ciphers are flagged high or critical. The latest scanned version, 2.2.0, is not scanned. Only versions we have scanned are listed; unscanned versions between them are not covered.

- 2.2.0 (`2.2.0`): not scanned
- 1.3.0 (`1.3.0`): clean
- 1.2.1 (`1.2.1`): medium

## Scanned versions

- [1.3.0](https://security.togoder.click/npm/@noble/ciphers@1.3.0): safe, 2026-10-04T16:08:53.000Z
- [1.2.1](https://security.togoder.click/npm/@noble/ciphers@1.2.1): medium, 2026-10-04T16:09:33.000Z

AI analysis is guidance, not a guarantee. Methodology: https://security.togoder.click/methodology
