Description
OpenBao is an open source identity-based secrets management system. In OpenBao versions prior to 2.4.1, JSON objects after decoding may use significantly more memory than their serialized version. It is possible to craft a JSON payload to maximize the factor between serialized memory usage and deserialized memory usage, similar to a zip bomb, with factors reaching approximately 35. This can be used to circumvent the max_request_size configuration parameter which is intended to protect against denial of service attacks. The request body is parsed into a map very early in the request handling chain before authentication, which means an unauthenticated attacker can send a specifically crafted JSON object and cause an out-of-memory crash. Additionally, for requests with large numbers of strings, the audit subsystem can consume large quantities of CPU. The vulnerability is fixed in version 2.4.1.
Problem types
CWE-400: Uncontrolled Resource Consumption
Product status
References
github.com/...penbao/security/advisories/GHSA-g46h-2rq9-gw5m
github.com/openbao/openbao/pull/1756
github.com/...ommit/d418f238bc99adc72c73109faf574cc2b672880c
github.com/...10818a7b4fb00aac6affc23388e5a9/http/logical.go