The vulnerability allows an unauthenticated attacker to cancel rekey and recovery rekey operations, leading to a denial of service. The analysis of the patch commit fe75468822a22a88318c6079425357a02ae5b77b reveals that the root cause was the unconditional registration of sensitive API endpoints.
The http/handler.go file contains the handler function, which sets up the HTTP routes. Before the patch, this function registered handlers for /v1/sys/rekey/* and /v1/sys/rekey-recovery-key/* without any authentication mechanism. This allowed anyone with network access to the OpenBao listener to interact with these endpoints.
The primary vulnerable function is handleSysRekeyInit, which handles DELETE requests to cancel rekey operations. The functions handleSysRekeyUpdate and handleSysRekeyVerify were also exposed and part of the overall vulnerable, unauthenticated rekey process.
The patch introduces a new configuration option, disable_unauthed_rekey_endpoints, which defaults to false for backward compatibility but will be changed to true in a future release. The handler function was modified to check this configuration before registering the rekey endpoints, thus mitigating the vulnerability by allowing operators to disable these unauthenticated endpoints.