JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 41
  • Score
    100M100P100Q54906F
  • License MIT

Security-focused ESLint plugin with 24 AI-parseable rules for cryptographic best practices. Detects weak algorithms, insecure key handling, CVE-specific vulnerabilities, and deprecated crypto patterns.

Package Exports

  • eslint-plugin-crypto
  • eslint-plugin-crypto/types

Readme

ESLint Interlace Logo

Cryptographic security rules enforcing best practices and modern standards (Node.js crypto).

NPM Version NPM Downloads Package License Codecov Since Dec 2025

Description

This plugin enforces cryptographic best practices and modern security standards specifically for Node.js environments. It assists developers in avoiding weak algorithms and insecure implementations by flagging potential risks directly in the code. By integrating these checks, you can ensure that your application's data protection measures are robust and compliant with industry standards.

Philosophy

Interlace fosters strength through integration. Instead of stacking isolated rules, we interlace security directly into your workflow to create a resilient fabric of code. We believe tools should guide rather than gatekeep, providing educational feedback that strengthens the developer with every interaction.

Getting Started

npm install eslint-plugin-crypto --save-dev

๐Ÿ’ก What You Get

  • 24 security rules covering cryptographic best practices
  • CVE detection for CVE-2023-46809, CVE-2020-36732, CVE-2023-46233
  • OWASP Top 10 coverage for cryptographic vulnerabilities
  • LLM-optimized messages with CWE references and fix guidance
  • Package support for crypto-hash, crypto-random-string, crypto-js

Features

  • ๐Ÿ” 24 Rules covering crypto best practices
  • ๐ŸŽฏ CVE Detection (CVE-2023-46809, CVE-2020-36732, CVE-2023-46233)
  • ๐Ÿค– AI-Optimized messages with CWE references
  • โšก Auto-Fix suggestions where safe
  • ๐Ÿ“ฆ Package Support for crypto-hash, crypto-random-string, crypto-js

โš™๏ธ Configuration Presets

Preset Description
recommended Balanced security defaults for most projects
strict Strict preset - all rules as errors
cryptojs-migration For teams migrating from crypto-js
nodejs-only Only Node.js crypto rules
cve-focused Rules targeting specific CVEs

๐Ÿ“š Supported Libraries

Library npm Downloads Detection
crypto (Node.js) node - Weak Algo, Key Length, Randomness
crypto-js npm downloads Legacy patterns, Weak PRNG

Examples

โŒ Bad

// CVE-2023-46809: Marvin Attack
crypto.privateDecrypt({ key, padding: crypto.constants.RSA_PKCS1_PADDING }, buffer);

// CWE-338: Weak random
const token = Math.random().toString(36);

// CWE-327: ECB mode leaks patterns
crypto.createCipheriv('aes-256-ecb', key, iv);

// CWE-208: Timing attack
if (userToken === storedToken) { ... }

โœ… Good

// Use OAEP padding
crypto.privateDecrypt({ key, padding: crypto.constants.RSA_PKCS1_OAEP_PADDING }, buffer);

// Secure random
const token = crypto.randomBytes(32).toString('hex');

// GCM provides authentication
crypto.createCipheriv('aes-256-gcm', key, iv);

// Constant-time comparison
if (crypto.timingSafeEqual(Buffer.from(userToken), Buffer.from(storedToken))) { ... }

Peer Dependencies (Optional)

{
  "crypto-hash": ">=3.0.0",
  "crypto-random-string": ">=4.0.0",
  "crypto-js": ">=4.0.0"
}

AI-Optimized Messages

This plugin is optimized for ESLint's Model Context Protocol (MCP), enabling AI assistants like Cursor, GitHub Copilot, and Claude to:

  • Understand the exact vulnerability type via CWE references
  • Apply the correct fix using structured guidance
  • Provide educational context to developers
// .cursor/mcp.json
{
  "mcpServers": {
    "eslint": {
      "command": "npx",
      "args": ["@eslint/mcp@latest"]
    }
  }
}

By providing this structured context (CWE, OWASP, Fix), we enable AI tools to reason about the security flaw rather than hallucinating. This allows Copilot/Cursor to suggest the exact correct fix immediately.

Rules

Legend

Icon Description
๐Ÿ’ผ Recommended: Included in the recommended preset.
โš ๏ธ Warns: Set towarn in recommended preset.
๐Ÿ”ง Auto-fixable: Automatically fixable by the --fix CLI option.
๐Ÿ’ก Suggestions: Providing code suggestions in IDE.
๐Ÿšซ Deprecated: This rule is deprecated.
Rule CWE OWASP CVSS Description ๐Ÿ’ผ โš ๏ธ ๐Ÿ”ง ๐Ÿ’ก ๐Ÿšซ
no-weak-hash-algorithm CWE-327 A02:2025 7.5 no-weak-hash-algorithm ๐Ÿ’ผ ๐Ÿ’ก
no-weak-cipher-algorithm CWE-327 A02:2025 7.5 no-weak-cipher-algorithm ๐Ÿ’ผ ๐Ÿ’ก
no-deprecated-cipher-method CWE-327 A02:2025 5.0 no-deprecated-cipher-method ๐Ÿ’ผ ๐Ÿ’ก
no-static-iv CWE-329 A02:2025 7.5 no-static-iv ๐Ÿ’ผ ๐Ÿ’ก
no-ecb-mode CWE-327 A02:2025 7.5 no-ecb-mode ๐Ÿ’ผ ๐Ÿ’ก
no-insecure-key-derivation CWE-916 A02:2025 7.5 no-insecure-key-derivation ๐Ÿ’ผ ๐Ÿ’ก
no-hardcoded-crypto-key CWE-321 A02:2025 9.8 no-hardcoded-crypto-key ๐Ÿ’ผ ๐Ÿ’ก
require-random-iv CWE-329 A02:2025 7.5 require-random-iv ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-insecure-rsa-padding CWE-327 A02:2025 7.4 no-insecure-rsa-padding ๐Ÿ’ผ ๐Ÿ’ก
no-cryptojs-weak-random CWE-338 A02:2025 5.3 no-cryptojs-weak-random ๐Ÿ’ผ ๐Ÿ’ก
require-secure-pbkdf2-digest CWE-916 A02:2025 9.1 require-secure-pbkdf2-digest ๐Ÿ’ผ ๐Ÿ’ก
no-math-random-crypto CWE-338 A07:2025 5.3 no-math-random-crypto ๐Ÿ’ผ ๐Ÿ’ก
no-predictable-salt CWE-331 A07:2025 7.5 no-predictable-salt ๐Ÿ’ผ ๐Ÿ’ก
require-authenticated-encryption CWE-327 A04:2025 6.5 require-authenticated-encryption ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-key-reuse CWE-323 A02:2025 7.5 no-key-reuse ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-self-signed-certs CWE-295 A05:2025 7.5 no-self-signed-certs ๐Ÿ’ผ ๐Ÿ’ก
no-timing-unsafe-compare CWE-208 A02:2025 5.9 no-timing-unsafe-compare ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
require-key-length CWE-326 A02:2025 7.5 require-key-length ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-web-crypto-export CWE-321 A02:2025 5.0 no-web-crypto-export ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-sha1-hash CWE-327 A02:2025 7.5 no-sha1-hash ๐Ÿ’ผ ๐Ÿ’ก
require-sufficient-length CWE-326 A02:2025 7.5 require-sufficient-length ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-numeric-only-tokens CWE-330 A07:2025 5.3 no-numeric-only-tokens ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
no-cryptojs CWE-327 A02:2025 5.0 no-cryptojs ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก
prefer-native-crypto CWE-327 A05:2025 5.0 prefer-native-crypto ๐Ÿ’ผ โš ๏ธ ๐Ÿ’ก

Part of the Interlace ESLint Ecosystem โ€” AI-native security plugins with LLM-optimized error messages:

Plugin Downloads Description
eslint-plugin-secure-coding downloads General security rules & OWASP guidelines.
eslint-plugin-pg downloads PostgreSQL security & best practices.
eslint-plugin-crypto downloads NodeJS Cryptography security rules.
eslint-plugin-jwt downloads JWT security & best practices.
eslint-plugin-browser-security downloads Browser-specific security & XSS prevention.
eslint-plugin-express-security downloads Express.js security hardening rules.
eslint-plugin-lambda-security downloads AWS Lambda security best practices.
eslint-plugin-nestjs-security downloads NestJS security rules & patterns.
eslint-plugin-mongodb-security downloads MongoDB security best practices.
eslint-plugin-vercel-ai-security downloads Vercel AI SDK security hardening.
eslint-plugin-import-next downloads Next-gen import sorting & architecture.

๐Ÿ“„ License

MIT ยฉ Ofri Peretz

ESLint Interlace Plugin