Skip to content

Security: verify dashboard is not exposed to local network (upstream OpenWolf PR #16) #6

@jcmrs

Description

@jcmrs

Summary

OpenWolf PR #16 (cytostack/openwolf#16) reports that the dashboard server binds to 0.0.0.0 by default with no authentication. This exposes all .wolf/ brain files (cerebrum, memory, buglog, token-ledger, suggestions) and allows remote cron task execution to anyone on the same network.

Relevance to OpenOwl

OpenOwl's dashboard (React + Express + WebSocket) likely shares the same or similar architecture. We need to verify:

  1. Network binding — Does our Express server bind to 0.0.0.0 or 127.0.0.1?
  2. Authentication — Is there any auth on the REST API or WebSocket connections?
  3. Exposed endpoints — Can unauthenticated users access /api/files, /api/cron/run/:taskId, or similar?
  4. WebSocket security — Can unauthenticated users trigger tasks via WebSocket messages?

Suggested Fix

  • Default bind to 127.0.0.1 (localhost only)
  • Add optional token-based authentication for remote access
  • Add a startup warning if binding to a non-loopback interface
  • Consider adding this to the daemon config so users can opt-in to network exposure

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    securitySecurity vulnerability or concernupstreamRelated to upstream OpenWolf project

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions