CVE-2026-33638
mediumpriority · track · 0OT risk · elevatedEPSS 0.005 · 43 %ileEUUSEPSS · scored 2026-10-27
Ech0 is an open-source, self-hosted publishing platform for personal idea sharing. Prior to version 4.2.0, `GET /api/allusers` is mounted as a public endpoint and returns user records without authentication. This allows remote unauthenticated user enumeration and exposure of user profile metadata. A fix is available in v4.2.0.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (3)
Products and version ranges known to be affected.
- Go github.com/lin-snow/ech0< 1.4.8-0.20260322121226-acbf1fd71011osvUSpkg:golang/github.com/lin-snow/ech0
advisories (2)
Vendor and ecosystem advisories describing this.
- GHSA-m983-7426-5hrjEch0 authenticated user-list exposed data via public `/api/allusers` endpoint 2026-03-24ghsa · osvUS
### 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
- GO-2026-4838Ech0 authenticated user-list exposed data via public `/api/allusers` endpoint in github.com/lin-snow/ech02026-03-26vendor · osvUS
Ech0 authenticated user-list exposed data via public `/api/allusers` endpoint in github.com/lin-snow/ech0
also known as (5)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (11)
External citations — patches, advisories, analysis.
- https://access.redhat.com/security/cve/cve-2026-33638cnnvd
- https://github.com/lin-snow/Ech0/commit/acbf1fd71011e6b9e1e6a911128056a19862f681cnnvd
- https://github.com/lin-snow/Ech0/releasesPatchcnnvd
- https://github.com/lin-snow/Ech0/releases/tag/v4.2.0cnnvd
- https://github.com/lin-snow/Ech0/security/advisories/GHSA-m983-7426-5hrjcnnvd
- https://github.com/lin-snow/Ech0/commit/acbf1fd71011e6b9e1e6a911128056a19862f681enisa_euvd
- https://github.com/lin-snow/Ech0/releases/tag/v4.2.0enisa_euvd
- https://github.com/lin-snow/Ech0/security/advisories/GHSA-m983-7426-5hrjenisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan