During independent security research, Veridian Labs identified multiple critical vulnerabilities in a veNFT lending and borrowing protocol deployed across Base, Avalanche, and Optimism. The findings include unauthenticated API endpoints that allow vote manipulation, prototype pollution vectors in the backend API, and missing security headers that enable cross-origin attacks.
| Component | Version | Status |
|---|---|---|
| Web Application (Next.js) | Production | Vulnerable |
| Vote API | v1 | Vulnerable |
| Staging Environment | Build a1NccSPm* | Exposed |
Two API endpoints accept POST requests without any authentication, wallet signature verification, or rate limiting. An attacker can inject arbitrary vote data for any tokenId, potentially manipulating protocol governance and reward distribution.
POST /api/[REDACTED]-vote
Content-Type: application/json
{"tokenId":"[ANY]","userAddress":"[ANY]",
"pools":["[ATTACKER_POOL]"],"weights":[100],
...}
Response: {"success": true}
The same vulnerability exists in the corresponding deletion endpoint, allowing an attacker to remove legitimate votes without authorization.
The vote API does not sanitize input objects, allowing __proto__ and constructor.prototype properties to be stored in the database. If the backend processes these records using unsafe deep merge operations (e.g., lodash.merge), this could lead to remote code execution on the bot server.
POST /api/[REDACTED]-vote
{"tokenId":"1", ...,
"__proto__": {"isAdmin": true}}
Response: {"success": true} // Stored in DB
The application returns Access-Control-Allow-Origin: * for all API endpoints, enabling cross-origin attacks. Additionally, the primary domain lacks SPF, DKIM, and DMARC records, making it trivially spoofable for phishing attacks targeting protocol team members.
A staging deployment is publicly accessible at staging.[DOMAIN] with a different build from production. Error messages from the staging environment leak internal RPC URLs, contract addresses, and library versions.
The combination of unauthenticated vote APIs and missing input sanitization creates a pathway for an attacker to:
__proto__ and constructor properties| Date | Event |
|---|---|
| 2026-04-03 | Vulnerabilities discovered during independent research |
| 2026-04-05 | Advisory drafted, vendor notification initiated |
| 2026-04-05 | Attempted contact via Discord |
| 2026-07-05 | Full disclosure deadline (90 days) |
Discovered by Marcus Kim and James Thompson of Veridian Labs.