Javascript Rsa No Padding
Description
This detector identifies RSA cryptographic operations that use insecure padding schemes in JavaScript code. Using RSA without proper padding (like PKCS#1 v1.5 or OAEP) makes the encryption vulnerable to padding oracle attacks and other cryptographic vulnerabilities, potentially allowing attackers to decrypt data or forge signatures.
Detection Strategy
• Scans JavaScript source code for RSA cryptographic function calls and configurations
• Identifies when RSA encryption, decryption, or signing operations are performed without secure padding schemes
• Triggers when RSA operations use 'NoPadding', missing padding parameters, or other insecure padding configurations
• Reports vulnerabilities in crypto libraries, Web Crypto API usage, or third-party cryptographic modules where RSA padding is improperly configured
Vulnerable code example
const crypto = require("crypto");
function encryptWithNoPadding(data, publicKey) {
// VULNERABLE: RSA_NO_PADDING makes encryption deterministic and malleable
return crypto.publicEncrypt(
{ key: publicKey, padding: crypto.constants.RSA_NO_PADDING },
data
);...✅ Secure code example
const crypto = require("crypto");
function encryptWithNoPadding(data, publicKey) {
// SAFE: Use OAEP padding instead of no padding to prevent attacks
return crypto.publicEncrypt(
{ key: publicKey, padding: crypto.constants.RSA_PKCS1_OAEP_PADDING },
data
);...Search for vulnerabilities in your apps for free with Fluid Attacks' automated security testing! Start your 21-day free trial and discover the benefits of the Continuous Hacking Essential plan. If you prefer the Advanced plan, which includes the expertise of Fluid Attacks' hacking team, fill out this contact form.