logo

Database

Javascript Insecure Gzip Algorithm

Description

Detects insecure compression algorithm configurations in webpack applications using compression-webpack-plugin. Improper compression settings can lead to security vulnerabilities like BREACH attacks, where attackers can exploit compression to recover sensitive data from encrypted traffic.

Weakness:

343 - Insecure service configuration - BREACH Attack

Category: Functionality Abuse

Detection Strategy

    • Search for imports or requires of 'compression-webpack-plugin' in project dependencies

    • Analyze webpack configuration files for compression plugin usage

    • Check compression algorithm settings in plugin configuration

    • Report vulnerability when potentially insecure compression settings are detected in webpack configurations

Vulnerable code example

const CompressionPlugin = require("compression-webpack-plugin");

// Vulnerable: Uses insecure gzip compression algorithm
new CompressionPlugin({
    filename: "[path][base].gz",
    algorithm: "gzip",  // Security risk: gzip compression is vulnerable to BREACH attacks
    test: /\.js$/,
    threshold: 10240...

✅ Secure code example

const CompressionPlugin = require("compression-webpack-plugin");
const zlib = require("zlib");

// Safe: Uses brotli compression which is resistant to BREACH attacks
new CompressionPlugin({
    filename: "[path][base].br",
    algorithm: "brotliCompress",  // Using secure brotli compression instead of gzip
    test: /\.js$/,...