Express.js Authentication Bypass

critical Web App Scanning Plugin ID 114194

Synopsis

Express.js Authentication Bypass

Description

Express.js is a popular web framework for Node.js. Google Extensible Service Proxy (ESP) is a scalable proxy provided by the Google Cloud Platform (GCP) used to provide API management features based on an OpenAPI or gRPC API backend.

When an Express.js API is deployed with case insensitive routing (set by default) and behind Google ESP configured with the `x-google-allow=all` directive, a remote and unauthenticated attacker could craft specific requests to bypass Google ESP authentication on protected API endpoints.

Solution

Ensure that Google ESP is not configured with the `x-google-allow=all` directive or that Express.js is configured with case sensitive routing.

See Also

http://expressjs.com/en/api.html#:~:text=case%20sensitive%20routing

https://github.com/GoogleCloudPlatform/nodejs-docs-samples/issues/333

Plugin Details

Severity: Critical

ID: 114194

Type: remote

Published: 2/2/2024

Updated: 2/2/2024

Scan Template: api

Risk Information

VPR

Risk Factor: High

Score: 7.4

CVSS v2

Risk Factor: Critical

Base Score: 10

Vector: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS Score Source: Tenable

CVSS v3

Risk Factor: Critical

Base Score: 9.8

Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CVSS Score Source: Tenable

Vulnerability Information

Exploit Available: true

Exploit Ease: Exploits are available

Reference Information