Skip to content

Ech0 authenticated user-list exposed data via public `/api/allusers` endpoint

Moderate severity GitHub Reviewed Published Mar 22, 2026 in lin-snow/Ech0 • Updated Mar 30, 2026

Package

gomod github.com/lin-snow/ech0 (Go)

Affected versions

< 1.4.8-0.20260322121226-acbf1fd71011

Patched versions

1.4.8-0.20260322121226-acbf1fd71011

Description

Summary

A public access-control flaw allows unauthenticated users to retrieve the full user list from GET /api/allusers. This exposes user profile metadata to anyone who can reach the application and enables remote user enumeration.

Details

The vulnerable route is registered as a public endpoint:

  • internal/router/user.go:17
    • appRouterGroup.PublicRouterGroup.GET("/allusers", h.UserHandler.GetAllUsers())

However, the handler appears to have been intended as an authenticated endpoint:

  • internal/handler/user/user.go:177-185
    • API annotations indicate an authentication requirement via @Security ApiKeyAuth

This creates a mismatch between the documented security model and the actual routing configuration. As a result, requests to GET /api/allusers succeed without authentication and return user records, including profile metadata such as usernames, email addresses, role-related flags, avatar values, and locale information.

A negative control against another endpoint that correctly requires authentication further supports that this exposure is unintended: GET /api/user returns 401 Unauthorized when no token is supplied, while GET /api/allusers remains publicly accessible.

Impact

  • Type: Access control bypass / unauthenticated data exposure
  • Who is impacted: Any deployment exposing the API to untrusted networks, and all users whose profile metadata is returned by the endpoint
  • Security impact: Enables remote user enumeration and disclosure of user profile metadata, which may facilitate account reconnaissance, phishing, and targeted credential attacks
  • Attack preconditions: None beyond network access to the affected API endpoint

References

@lin-snow lin-snow published to lin-snow/Ech0 Mar 22, 2026
Published to the GitHub Advisory Database Mar 24, 2026
Reviewed Mar 24, 2026
Published by the National Vulnerability Database Mar 26, 2026
Last updated Mar 30, 2026

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(22nd percentile)

Weaknesses

Missing Authorization

The product does not perform an authorization check when an actor attempts to access a resource or perform an action. Learn more on MITRE.

CVE ID

CVE-2026-33638

GHSA ID

GHSA-m983-7426-5hrj

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.