nats-server-2.10.3-1.fc38

Read Time:1 Minute, 20 Second

FEDORA-2023-c33188f575

Packages in this update:

nats-server-2.10.3-1.fc38

Update description:

Without any authorization rules in the nats-server, users can connect
without authentication.

Before nats-server 2.2.0, all authentication and authorization rules for
a nats-server lived in an “authorization” block, defining users. With
nats-server 2.2.0 all users live inside accounts. When using the
authorization block, whose syntax predates this, those users will be
placed into the implicit global account, “$G”. Users inside accounts go
into the newer “accounts” block.

If an “accounts” block is defined, in simple deployment scenarios this
is often used only to enable client access to the system account. When
the only account added is the system account “$SYS”, the nats-server
would create an implicit user in “$G” and set it as the no_auth_user
account, enabling the same “without authentication” logic as without
any rules.

This preserved the ability to connect simply, and then add one
authenticated login for system access.

But with an “authorization” block, this is wrong. Users exist in the
global account, with login rules. And in simple testing, they might
still connect fine without administrators seeing that authentication has
been disabled.

The blind-spot on our part came from encouraging and documenting a
switch to using only “accounts”, instead of “authorization”.

In the fixed versions, using an “authorization” block will inhibit the
implicit creation of a “$G” user and setting it as the no_auth_user
target. In unfixed versions, just creating a second account, with no
users, will also inhibit this behavior.

Read More