GHSA-92hr-gmr6-h8cpMediumDisclosed before NVD
Etherpad addressed weak token RNG, login timing, plugin path handling, API request handling
📋 Description
Fix: PR #7906 (ether/etherpad). A set of medium/low hardening fixes:
- Weak RNG for tokens (CWE-330): author/session/readonly IDs were generated with
Math.random()(client and server). Now usecrypto.getRandomValues. - Login timing / no failure delay (CWE-208/CWE-307): the OIDC interaction login used a non-constant-time password compare with no failure delay. Now uses
crypto.timingSafeEqualplus a uniform failure delay; user lookup is own-property only. - Plugin dependency path handling (CWE-22): plugin dependency names from package.json were used to build filesystem paths without validation (admin-gated install). Now validated against the npm name grammar.
- API parameter pollution (CWE-235):
/api/2merged all request headers into the API field set. Now forwards onlyauthorization, matching the openapi.ts handler. - Pad-creation side effect:
API.appendChatMessagecould create arbitrary pads (missinggetPadSafe). Now requires the pad to exist. - Error info disclosure (CWE-209): the admin file server echoed filesystem error detail; now returns a generic message.
🎯 Affected products1
- npm/ep_etherpad-lite:<= 1.8.14