GitHub Advisoryadvisory · npm

GHSA-92hr-gmr6-h8cp Etherpad addressed weak token RNG, login timing, plugin path handling, API request handling

MEDIUM Published 2026-08-17 Modified 2026-08-17 Official page ↗
Ecosystem
npm
Packages
ep_etherpad-lite
Severity
Moderate
Weaknesses
CWE-208, CWE-209, CWE-22, CWE-235, CWE-330
Reviewed
2026-08-17

Affected packages

• npm ep_etherpad-lite: < 3.3.0 → fixed in 3.3.0

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 use `crypto.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.timingSafeEqual` plus 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/2` merged all request headers into the API field set. Now forwards only `authorization`, matching the openapi.ts handler. • Pad-creation side effect: `API.appendChatMessage` could create arbitrary pads (missing `getPadSafe`). Now requires the pad to exist. • Error info disclosure (CWE-209): the admin file server echoed filesystem error detail; now returns a generic message.

Related

Weakness · CWE (5)

  • CWE-208 Observable Timing Discrepancy weakness
  • CWE-209 Generation of Error Message Containing Sensitive Information weakness
  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness
  • CWE-235 Improper Handling of Extra Parameters weakness
  • CWE-330 Use of Insufficiently Random Values weakness

References