Skip to main content
interlace
Plugin: jwt

Overview

JSON Web Token security patterns and validation rules

Live from GitHub

This content is fetched directly from README.md on GitHub and cached for 1 hour.

AI-Optimized Security

Every rule includes CWE, OWASP, and CVSS metadata for AI assistants to provide precise, context-aware fixes.


Live README from GitHubfrom eslint-plugin-jwt/README.md, cached for 1 hour.Edit on GitHub

[!WARNING] Deprecated — renamed to eslint-plugin-jwt-security. Same rules, same jwt/ rule namespace, continued version lineage. Migration is a one-line change: swap the dependency and the import; every existing rule reference and eslint-disable comment keeps working. This package receives no further releases.

Interlace

  

JSON Web Tokens

  

oxlint

  

ESLint

Security validation for JSON Web Tokens (JWT) implementation (signing, verification).

NPM VersionNPM DownloadsPackage LicenseCodecovSince Dec 2025

⭐ If this plugin caught a real bug for you, star the repo — it's the signal that keeps these rules maintained.

Description

This plugin provides Security validation for JSON Web Tokens (JWT) implementation (signing, verification).

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-jwt --save-dev

⚙️ Configuration Presets

PresetDescription
recommendedRecommended preset - balanced security
strictStrict preset - maximum security (includes 2025 research)
legacyLegacy preset - migration mode
allAll rules preset

📚 Supported Libraries

LibrarynpmDownloadsDetection
jsonwebtokennpmdownloadsSigning, Verification, Decoding
josenpmdownloadsVerification (Fix Suggestion)
jwt-decodenpmdownloadsUnsafe Decoding

🤖 AI-Optimized Messages

Every rule uses formatLLMMessage for structured output:

🔒 CWE-347 OWASP:A02-Crypto CVSS:9.8 | Using alg:"none" bypasses signature verification
   Fix: Remove "none" and use RS256, ES256, or other secure algorithms
   https://nvd.nist.gov/vuln/detail/CVE-2022-23540

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.

By structuring errors with specific CWE codes, OWASP categories, and direct fix suggestions, this format allows AI coding assistants to autonomously identify, explain, and resolve security vulnerabilities with high confidence.

💡 What You Get

  • 13 Security Rules - Algorithm attacks, replay prevention, claim validation
  • 6 JWT Libraries - jsonwebtoken, jose, express-jwt, @nestjs/jwt, jwks-rsa, jwt-decode
  • 2025 Research - "Back to the Future" replay attack prevention (LightSEC 2025)
  • AI-Optimized - Structured messages for GitHub Copilot, Cursor, Claude assistance
  • CWE References - Every rule maps to Common Weakness Enumeration

📦 Compatibility

PackageVersion
ESLint^8.0.0 || ^9.0.0 || ^10.0.0
Node.js>=18.0.0

See the ESLint Version Support Policy — current ecosystem share data, the 20% gate, and the forward-looking exception that covers v10.

Rules

Legend

IconDescription
💼Recommended: Included in the recommended preset.
⚠️Warns: Set to warn in recommended preset.
🔧Auto-fixable: Automatically fixable by the --fix CLI option.
💡Suggestions: Providing code suggestions in IDE.
🚫Deprecated: This rule is deprecated.
🟢Type-unaware: AST-only, runs in oxlint JS-plugin tier.
🟡Type-aware (refining): pure-AST primary path; types refine precision.
🟠Type-aware (graceful): requires TS program; silent without it.
RuleCWEOWASPCVSSDescription🧠💼⚠️🔧💡🚫
no-algorithm-confusionCWE-347This rule detects algorithm confusion attacks where symmetric algorithms (HS256, HS384, HS512) are used wit…🟢
no-algorithm-noneCWE-347This rule detects attempts to use the none algorithm which completely bypasses JWT signature verification🟢
no-decode-without-verifyCWE-345The rule provides LLM-optimized error messages (Compact 2-line format) with actionable security guidance:🟢
no-hardcoded-secretCWE-798The rule provides LLM-optimized error messages (Compact 2-line format) with actionable security guidance:🟢
no-sensitive-payloadCWE-359JWT payloads are NOT encrypted, only base64-encoded🟢
no-timestamp-manipulationCWE-294This rule detects noTimestamp: true which disables automatic iat (issued at) claim generation🟢
no-weak-secretCWE-326The rule provides LLM-optimized error messages (Compact 2-line format) with actionable security guidance:🟢
require-algorithm-whitelistCWE-757This rule enforces explicit algorithm specification in verify() calls🟢
require-audience-validationCWE-287The rule provides LLM-optimized error messages (Compact 2-line format) with actionable security guidance:🟢
require-expirationCWE-613The rule provides LLM-optimized error messages (Compact 2-line format) with actionable security guidance:🟢
require-issued-atCWE-294This rule ensures tokens have the iat claim for freshness validation🟢
require-issuer-validationCWE-287The rule provides LLM-optimized error messages (Compact 2-line format) with actionable security guidance:🟢
require-max-ageCWE-294This rule mandates maxAge in verify operations🟢

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

PluginDownloadsDescription
eslint-plugin-secure-codingdownloadsGeneral security rules & OWASP guidelines.
eslint-plugin-pgdownloadsPostgreSQL security & best practices.
eslint-plugin-node-securitydownloadsNode.js core-module security (fs, child_process, vm, crypto, Buffer).
eslint-plugin-jwtdownloadsJWT security & best practices.
eslint-plugin-browser-securitydownloadsBrowser-specific security & XSS prevention.
eslint-plugin-express-securitydownloadsExpress.js security hardening rules.
eslint-plugin-lambda-securitydownloadsAWS Lambda security best practices.
eslint-plugin-nestjs-securitydownloadsNestJS security rules & patterns.
eslint-plugin-mongodb-securitydownloadsMongoDB security best practices.
eslint-plugin-vercel-ai-securitydownloadsVercel AI SDK security hardening.
eslint-plugin-import-nextdownloadsNext-gen import sorting & architecture.

⭐ Support & follow

If this plugin caught a real bug for you, star the repo — stars are the signal that keeps the Interlace ESLint ecosystem maintained — and follow the writeups on Dev.to for the benchmarks and security research behind these rules.

GitHub stars

📄 License

MIT © Ofri Peretz

ESLint Interlace Plugin

Interlace

View README.md on GitHub →

Building secure JavaScript with Interlace? Star the repo to get new rules and CWE coverage as we ship them — or follow the AI-code-security benchmarks behind them.

On this page

No Headings