Skip to content

[Controller] Protect the Controller remoting management endpoint with authentication and authorization #10956

Description

@Aias00

Problem

The Controller remoting server registers privileged operations such as UPDATE_CONTROLLER_CONFIG, GET_CONTROLLER_CONFIG, CLEAN_BROKER_DATA, broker registration, and broker ID allocation without an authentication/authorization request pipeline or credential-verifying RPC hook. The default Netty bind address is 0.0.0.0.

A reachable network peer can therefore invoke Controller management and state-changing requests without credentials.

Impact

In Controller-mode deployments this can expose Controller configuration and allow unauthorized changes to Controller configuration and Broker failover metadata, affecting cluster integrity and availability.

Proposed fix

  • Parse and initialize AuthConfig for standalone and embedded Controller startup paths.
  • Install the existing authentication and authorization request pipelines on the Controller remoting server.
  • Map Controller request codes to cluster-level authorization contexts.
  • Add regression coverage that unauthenticated Controller management requests are rejected when authentication is enabled and signed inner-client requests remain accepted.

Temporary mitigation

Bind the Controller to a private interface and restrict network access to intended Brokers and Controller nodes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions