logo

Database

Typescript Cors Wildcard Origin Header Express

Description

Detects insecure CORS (Cross-Origin Resource Sharing) configurations in Express.js applications that use wildcard origin ('*'). Using wildcard CORS policy allows any domain to make cross-origin requests to your application, potentially exposing sensitive data to malicious websites. This represents a security risk as it bypasses Same-Origin Policy protections.

Weakness:

134 - Insecure or unset HTTP headers - CORS

Category: Protocol Manipulation

Detection Strategy

    • Check Express application code for CORS configuration settings

    • Look for usage of cors() middleware or custom CORS headers in route handlers

    • Identify if wildcard origin ('*') is specified in Access-Control-Allow-Origin header or cors() options

    • Flag configuration as vulnerable if unrestricted CORS access is allowed through wildcard origins

    • Report issues when CORS is configured to accept requests from all origins without restriction

Vulnerable code example

import express from 'express';
const app = express();

app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');  // Vulnerable: allows any origin to access the API
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  res.header('Access-Control-Allow-Methods', 'GET, POST');
  next();...

✅ Secure code example

import express from 'express';
const app = express();

const allowedOrigins = ['https://trusted-site.com', 'https://api.trusted-site.com'];

app.use((req, res, next) => {
  const origin = req.headers.origin;
  ...