Am I affected?

This record states its affected versions in a form that can't be compared automatically.

5.10 and up affected
9.6.2 not affected
9.3.2.4 not affected
9.1.0.6 not affected
every other version: affected

Description

Incorrect Authorization vulnerability in Erlang OTP (inets modules) allows unauthenticated access to CGI scripts protected by directory rules when served via script_alias.

When script_alias maps a URL prefix to a directory outside DocumentRoot, mod_auth evaluates directory-based access controls against the DocumentRoot-relative path while mod_cgi executes the script at the ScriptAlias-resolved path. This path mismatch allows unauthenticated access to CGI scripts that directory rules were meant to protect.

This vulnerability is associated with program files lib/inets/src/http_server/mod_alias.erl, lib/inets/src/http_server/mod_auth.erl, and lib/inets/src/http_server/mod_cgi.erl.

This issue affects OTP from OTP 17.0 before OTP 28.4.2, OTP 27.3.4.10 and OTP 26.2.5.19, corresponding to inets from 5.10 before 9.6.2, 9.3.2.4 and 9.1.0.6.

Weaknesses & attack patterns

Weakness

CWE-863 · Incorrect Authorization in catalog → MITRE ↗

Attack patterns

CAPEC-1 · Accessing Functionality Not Properly Constrained by ACLs MITRE ↗

Affected — Erlang / inets Repository ↗

5.10 and up affected
9.6.2 not affected
9.3.2.4 not affected
9.1.0.6 not affected
every other version: affected
default status affected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files
modules inets
source files src/http_server/mod_alias.erl · src/http_server/mod_auth.erl · src/http_server/mod_cgi.erl

Affected — GitHub / erlang/otp Repository ↗

17.0 and up affected
28.4.2 not affected
27.3.4.10 not affected
26.2.5.19 not affected
07b8f44 and up affected
8fc71ac not affected
9dfa0c5 not affected
every other version: affected
default status affected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files
modules inets
source files lib/inets/src/http_server/mod_alias.erl · lib/inets/src/http_server/mod_auth.erl · lib/inets/src/http_server/mod_cgi.erl

Workarounds

  • Move CGI scripts inside DocumentRoot and use alias instead of script_alias to ensure mod_auth resolves the correct path.
  • Apply URL-based access controls at a reverse proxy layer to block unauthenticated access to the script_alias URL prefix.
  • Remove mod_cgi from the httpd modules chain if CGI functionality is not required.

Configurations

The inets httpd server must use script_alias to map a URL prefix to a CGI directory, combined with directory-based access controls (e.g., mod_auth) protecting the script_alias target path. The vulnerability applies whenever the script_alias target path differs from DocumentRoot + URL prefix.

References

Credits

Igor Morgenstern / Aisle Research Finder
Konrad Pietrzak Remediation developer

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
« All CVEs