-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Server Security
Today, it is possible to create a role with a privilege in FCV previous that does not exist in the previous binary
If binary is version X, and FCV is X-1. User can create a role with a privilege that is new to FCV X and when they then downgrade the binary to X-1, the binary will not start because X-1 does not know about the action type.
For similar reasons, we should ensure that ActionTypes are never removed from the server.
For this ticket,
1. Extend ActionType enum in `src/mongo/db/auth/action_type.idl` with information about the FCV for each action type
2. Only permit Action types to be used in create role and other commands if the FCV if the server FCV matches
3. On FCV downgrade, check that no role is dependent on a FCV gated role.