ragleap-core v0.12.1 (security release)
Security fix: the voice channel had no authentication (advisory GHSA-fg9g-772q-rr9c)
The voice channel's WebSocket server accepted every connection, and the Twilio setup needs it reachable from the internet. Affected: v0.1.0 to v0.12.0, for installs that expose the voice port. Fixed in this release:
- A call is accepted only when the address it connects to ends in a secret,
wss://your-domain.com:8765/<VOICE_WS_TOKEN>. A missing or wrong token gets a plain HTTP 401 and never becomes a call. With no token set, the voice server refuses every call. - Limits:
VOICE_MAX_CALLS(default 10),VOICE_MAX_CALL_MINUTES(default 30), and 64 KiB per message. - Spoken feedback ("good answer" / "bad answer") is ignored on the voice channel, because callers are anonymous.
If you use the voice channel, you must do this after upgrading:
- Put a long random value in
.envasVOICE_WS_TOKEN(for example fromopenssl rand -hex 24). New installs get one from the installer. - Change the Twilio
<Connect><Stream>address towss://your-domain.com:8765/<VOICE_WS_TOKEN>(usewss). - Rebuild and restart the voice service. If the token ever leaks, change it in
.envand in the Twilio address.
Also in this release (merged since v0.12.0)
- Single sign-on with OpenID Connect, off by default: OIDC core with PKCE and strict ID token checks and an optional second-factor rule (#1076), identities, sessions, login routes and audit (#1080), and the dashboard button, Users tab and admin guide
docs/single-sign-on.md(#1097). SHARED_KEY_DISABLEDswitch to refuse the shared API key once an owner has a personal key (#1050).- Link a person to a Telegram, WhatsApp or Discord chat so channel approvals name them (#1057).
- Request metrics at
GET /metrics(off by default) and anX-Request-IDheader (#1058); an HTTP throughput check inbenchmarks/(#1064). - The Neo4j password now comes from
NEO4J_PASSWORDin.env, with a warning for the public default (#1059). - Offline install: a bundle builder,
install.sh --offline, and an offline and GPU guide with an optional NVIDIA compose override (#1071, #1072, #1073).
Upgrade notes
- Apply
db/schema.sql(idempotent) to existing databases (back up first). It addsuser_channels,user_identities,user_sessionsandsso_logins. - Rebuild the app image. Single sign-on and metrics stay off until you set their settings.
Known limits
- Single-tenant. Single sign-on has been tested against a fake provider only, not Keycloak, Entra ID or Okta. The offline install has not been tried on an air-gapped machine and the GPU override has not been tried on a real GPU. Not independently security reviewed.