Description
--passphrase defaults to None at python/packages/jumpstarter-cli/jumpstarter_cli/run.py:245. Combined with --tls-grpc-insecure and 0.0.0.0 default binding, standalone mode exposes an unauthenticated, unencrypted gRPC server.
The PassphraseInterceptor at python/packages/jumpstarter/jumpstarter/exporter/auth.py:17-34 exists and works correctly, but defaults to disabled.
No warning is emitted when passphrase is absent (the most dangerous config), but a warning is present when passphrase is used without TLS (less dangerous) (run.py:107).
This applies ONLY to standalone mode; K8s mode has mandatory, non-disableable authentication.
Suggested Fix
- Generate random passphrase when
--passphrase not provided
- Require explicit
--unsafe-no-auth to disable authentication
- Warn when no passphrase and no TLS
Description
--passphrasedefaults toNoneatpython/packages/jumpstarter-cli/jumpstarter_cli/run.py:245. Combined with--tls-grpc-insecureand0.0.0.0default binding, standalone mode exposes an unauthenticated, unencrypted gRPC server.The
PassphraseInterceptoratpython/packages/jumpstarter/jumpstarter/exporter/auth.py:17-34exists and works correctly, but defaults to disabled.No warning is emitted when passphrase is absent (the most dangerous config), but a warning is present when passphrase is used without TLS (less dangerous) (run.py:107).
This applies ONLY to standalone mode; K8s mode has mandatory, non-disableable authentication.
Suggested Fix
--passphrasenot provided--unsafe-no-authto disable authentication