CVE-2024-46627: Incorrect Access Control in BECN DATAGERRY v2.2

DATAGERRY v2.2 exposes user-settings REST endpoints with no authorisation check, letting an unauthenticated attacker read, create, update and delete any user's settings. Assigned CVE-2024-46627.

CVE ID
CVE-2024-46627
Type
Incorrect / broken access control
Affected
BECN DATAGERRY v2.2
Vector
Unauthenticated REST API

Responsible disclosure

This research was carried out by Solusec and published after coordinated disclosure, with a CVE identifier assigned through the appropriate numbering authority. It is shared for defensive and educational purposes so that affected operators can identify and remediate the issue. We do not publish research to enable misuse.

If you operate an affected product and want help confirming or fixing this, get in touch.

Summary

DATAGERRY v2.2 does not enforce access control on a set of user-settings REST API endpoints. An unauthenticated attacker can read, create, update and delete the settings of any user without valid credentials.

This vulnerability is tracked as CVE-2024-46627. The authoritative record is on the CVE List (CVE-2024-46627), with severity metrics on the National Vulnerability Database.

Affected endpoints

  • /rest/users/<id>/settings/ — GET, POST
  • /rest/users/<id>/settings/<setting> — DELETE, PUT

The behaviour is reproducible against the vendor's Docker setup as of the disclosure date. In testing it was possible to enumerate all settings objects for a user, retrieve a specific settings object, update an existing object, create a new object, and delete an object — all without authentication. Notably, a create operation returned a 500 error yet still persisted the object, confirmed by re-reading the list.

Impact

The endpoints do not filter the stored values, so beyond unauthorised read and write of any user's settings there is scope to inject script content into stored data. The core issue is broken access control on state-changing API endpoints, which undermines the integrity of user configuration across the application.

Remediation

  • Enforce authentication and per-user authorisation on every REST endpoint that reads or modifies user data.
  • Return consistent status codes and ensure failed operations do not partially persist.
  • Validate and encode stored settings values to prevent script injection.

Common questions

What is CVE-2024-46627?

An incorrect-access-control vulnerability in DATAGERRY v2.2. The user-settings REST API endpoints can be reached without authentication, allowing read, create, update and delete of any user's settings.

Which endpoints are affected?

The /rest/users//settings/ endpoints (GET, POST) and /rest/users//settings/ endpoints (DELETE, PUT).

Can it be used for more than reading settings?

Yes. The stored values are not filtered, so there is scope to inject script content in addition to full read/write/delete of settings objects for any user.

How was it verified?

Against the vendor's documented Docker setup at the time of disclosure, exercising each operation in turn. It was raised as a CVE through coordinated disclosure.

Related

Found a vulnerability, or need testing that finds them?

We run coordinated disclosure for our own research and help vendors triage and fix what we report. If you need testing to this standard, the scoping conversation is free.