The OpenFGA project, a powerful and flexible authorization/permission engine inspired by Google Zanzibar, has been discovered to contain a potentially severe denial of service (DoS) vulnerability. This issue, designated as CVE-2023-45810, affects numerous versions prior to 1.3.4 and may render the entire service unresponsive under certain conditions. The vulnerability stems from a resource leakage issue during the execution of ListObjects calls. In this article, we will discuss the exploit details, the affected versions, and the recommended solution to protect your system.

Exploit Details

The vulnerability is caused by instances where several ListObjects calls are not releasing the resources they have acquired, even after a response has been sent. Under high volume scenarios, this can lead to resource exhaustion, ultimately causing the entire OpenFGA service to become unresponsive. An attacker could potentially use this vulnerability to launch a DoS attack, severely impacting the affected application's availability.

Affected Versions

OpenFGA versions prior to 1.3.4 are known to be affected by this vulnerability.

Code Snippet

Below is a simple code snippet demonstrating an example of executing a ListObjects call using the vulnerable version of OpenFGA:

const openfga = require('openfga');
const { PermissionChecker } = openfga;

const checker = new PermissionChecker(/* configuration */);

// Trigger vulnerable ListObjects call
checker.listObjects('user', 'objectA', 'permissionA', (err, list) => {
  if (err) {
    console.error('Error fetching objects:', err);
  } else {
    console.log('Fetched objects:', list);
  }
});

Original References

- OpenFGA GitHub Repository: (https://github.com/openfga/openfga)
- Google Zanzibar Paper: (https://research.google/pubs/pub48190/)

Solution

To mitigate the risks associated with CVE-2023-45810, users are strongly recommended to update their OpenFGA installation to version 1.3.4 or later, as this version addresses the aforementioned resource leakage issue. The update is considered to be backwards compatible, ensuring that the upgrade process should be smooth and unlikely to break existing functionality.

Update your project's package.json file to utilize the latest version of the library

"dependencies": {
  "openfga": "^1.3.4",
  // Other dependencies...
}

Run npm install or yarn install to fetch the new version of the library

$ npm install

Conclusion

To protect against serious denial of service attacks, it is crucial for OpenFGA users to promptly apply the recommended update. By updating to version 1.3.4 or later, users can rest assured that their application is no longer vulnerable to CVE-2023-45810. Remember to regularly check for updates to security libraries and frameworks, as they help to protect your valuable applications and data.

Timeline

Published on: 10/17/2023 23:15:12 UTC
Last modified on: 10/25/2023 13:38:33 UTC