Skip to content

security: remove hardcoded LiveKit credentials and SearXNG static secret#91

Merged
Lightheartdevs merged 1 commit intomainfrom
security/credential-hardening
Mar 9, 2026
Merged

security: remove hardcoded LiveKit credentials and SearXNG static secret#91
Lightheartdevs merged 1 commit intomainfrom
security/credential-hardening

Conversation

@Lightheartdevs
Copy link
Copy Markdown
Collaborator

Summary

  • LiveKit Cloud credentials removed from resources/frameworks/voice-agent/core/hvac-token-server.py — real API key and secret were committed in plaintext. Replaced with os.environ.get() reads that fail fast if not set.
  • SearXNG static secret_key replaced in dream-server/config/searxng/settings.yml — the hardcoded hex value is now a CHANGEME placeholder. All three installers (Linux/Windows/macOS) already generate a random key at install time.

⚠️ ACTION REQUIRED after merge

  1. Rotate the LiveKit Cloud credentials immediately at https://cloud.livekit.io for project grace-hvac-jtcdy0sb — the old key (APIRUdt5f4Hp87o) and secret are still in git history
  2. Consider running git filter-repo or BFG Repo Cleaner to purge the credentials from git history (optional but recommended since the credentials will be rotated anyway)

Test plan

  • Verify hvac-token-server.py raises RuntimeError when env vars are not set
  • Verify SearXNG starts correctly after running any of the three installers (which overwrite settings.yml with a generated secret)
  • Verify the CHANGEME placeholder is obvious enough to prevent accidental use without the installer

🤖 Generated with Claude Code

- hvac-token-server.py: Replace hardcoded LiveKit Cloud API key, secret,
  and URL with environment variable reads. Fail fast with a clear error
  if credentials are not set. The previous values (APIRUdt5f4Hp87o /
  bTpgs0RC42jjluOevB9D64zcYhZFG7qEdU0T1m1QMNX) were real credentials
  committed in plaintext — rotate immediately on cloud.livekit.io.

- settings.yml: Replace static SearXNG secret_key with a CHANGEME
  placeholder. All three platform installers (Linux, Windows, macOS)
  already generate a cryptographically random key at install time and
  overwrite this file, so this only affects users who docker compose up
  without running the installer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Lightheartdevs Lightheartdevs merged commit 6bba69e into main Mar 9, 2026
4 of 15 checks passed
yasinBursali added a commit to yasinBursali/DreamServer that referenced this pull request Mar 21, 2026
Removed Access-Control-Allow-Origin: * from /config.yaml and / locations.
The VS Code extension uses its own HTTP client (not browser fetch), so CORS
headers are unnecessary. The wildcard allowed any website to exfiltrate
internal LLM API URLs and server topology from config.yaml.

Closes Light-Heart-Labs#91

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lightheartdevs pushed a commit that referenced this pull request Mar 22, 2026
…fig (#539)

Removed Access-Control-Allow-Origin: * from /config.yaml and / locations.
The VS Code extension uses its own HTTP client (not browser fetch), so CORS
headers are unnecessary. The wildcard allowed any website to exfiltrate
internal LLM API URLs and server topology from config.yaml.

Closes #91

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant