Skip to content

Phantom v1.0.1

Choose a tag to compare

@ayman-m ayman-m released this 11 Oct 08:16
· 20 commits to main since this release

Two bugs found by installing v1.0.0 from the public release on a clean host (both made the first log-generation request fail), one hardening of the password change, and a fix for bare tool names.

Fixed.

  • A fresh install now serves xlog over HTTPS from the first start. On an empty install the TLS certificate was created too late: the agent wrote it, but the agent only starts after xlog is healthy, and xlog had already given up waiting and fallen back to plain HTTP. Every log-generation tool then failed with [SSL] record layer failure, and /api/agent/health reported degraded. A new one-shot step, phantom_tls_init, creates the certificate before any of them starts, and never overwrites a certificate you supplied. It appears as Exited (0) in docker compose ps -a. No action is needed on an existing install: the certificate is already there.
  • Guessing the password through the Change password form is now rate-limited. The form checks your current password, but unlike sign-in it had no lockout, so a stolen session cookie could be used to guess the password. Five wrong current passwords in a minute now lock the form for 60 seconds (HTTP 429), counted per source address and per session, with a separate counter from sign-in. Sign-in's own lockout also now keys on the address the proxy saw, not on a header the client can set, and attempts are counted before the password check so parallel guesses cannot slip through.
  • A bare tool name works in direct tool calls. ^run_xql_query query=... in chat, or a bare name sent to /api/agent/tool/call, was refused as "ambiguous" even when only one connector provides the tool, because each tool is advertised under its namespaced name and its legacy flat alias. Those two names are now recognised as the same tool and the namespaced one is used. When two connectors provide a tool with the same name (for example Cortex XDR and XSIAM), you still have to say which one, as before.
  • Generating logs without a vendor schema works again. Asking the agent for a worker without a data-source schema (the generic path) was always rejected with Field 'durationSeconds' is not defined by type 'WorkerFakerInput'. Workers that use a data source's schema were not affected. On the generic path a worker stops after count events; duration_seconds, max_events and continuous apply only with a data-source schema, and the tool result now says so.

Docs. /help/architecture#tls-proxy (new subsection, "Who creates the certificate, and boot order"), a note under #stack, and the rate-limit bullet under #authentication; /help/user#authentication and the change-password journey mention the lockout.

To move from v1.0.0, download phantom-installer below and run it with sudo on the host. It keeps your data, secrets and settings. Verify the download against phantom-installer.sha256.