GHSA-RGJ7-VG8V-J4WR: Unauthenticated Engagement Metric Inflation in Ech0
Vulnerability ID: GHSA-RGJ7-VG8V-J4WR
CVSS Score: 5.3
Published: 2026-05-07
The Ech0 lightweight publishing platform suffers from a missing authentication check (CWE-306) and missing authorization (CWE-862) on the PUT /api/echo/like/:id API endpoint. This vulnerability allows an unauthenticated remote attacker to arbitrarily inflate engagement metrics by repeatedly sending requests, falsifying social proof and generating unnecessary database writes.
TL;DR
A critical API endpoint in the Ech0 publishing platform was exposed publicly without authentication or user-binding checks. Remote attackers can leverage this to artificially inflate the "like" count of any post via repeated HTTP requests.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-306 / CWE-862
- Attack Vector: Network
- CVSS Base Score: 5.3 (Medium)
- Impact: Integrity Loss (Engagement Manipulation)
- Exploit Status: Proof of Concept Available
- Authentication: None Required
Affected Systems
- github.com/lin-snow/ech0 implementations prior to version 1.4.8-0.20260503040728-a7e8b8e84bd1
-
github.com/lin-snow/ech0: < 1.4.8-0.20260503040728-a7e8b8e84bd1 (Fixed in:
1.4.8-0.20260503040728-a7e8b8e84bd1)
Code Analysis
Commit: a7e8b8e
Fix commit for unauthenticated like endpoint vulnerability.
Exploit Details
- Security Research / PoC Script: A provided bash script demonstrating iteration over the vulnerable endpoint to artificially inflate likes via repeated cURL commands.
Mitigation Strategies
- Migrate the target endpoint to an authenticated routing group.
- Implement stateful tracking of engagement metrics linking specific user IDs to specific resources.
- Apply strict IP-based rate limiting on state-changing API endpoints.
- Implement CORS policies to restrict cross-origin exploitation vectors.
Remediation Steps:
- Update the Ech0 application to version 1.4.8-0.20260503040728-a7e8b8e84bd1 or later.
- Verify that the
PUT /api/echo/like/:idendpoint returns an HTTP 401 Unauthorized status when accessed without credentials. - Review custom routing logic in internal forks to ensure no administrative or state-changing routes reside in the
PublicRouterGroup.
References
- GitHub Advisory: GHSA-rgj7-vg8v-j4wr
- OSV Entry: GHSA-rgj7-vg8v-j4wr
- Fix Commit: a7e8b8e84bd1e3db090dfb720f2c6c433356b442
- Ech0 Project Repository
Read the full report for GHSA-RGJ7-VG8V-J4WR on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)