# CVE-2023-34672

### <mark style="color:yellow;">**Description**</mark>&#x20;

Improper access control leads to privilege escalation and creating high-privilege users

**Discoverer: Eslam Kamal (Strik3r)**&#x20;

**Vendor of Product: Elenos**

**Affected Product: ETG150 FM transmitter - 3.12**

### <mark style="color:yellow;">Introduction</mark>

Access control (or authorization) is the application of constraints on who (or what) can perform attempted actions or access resources that they have requested. Broken access controls are a commonly encountered and often critical security vulnerability. Design and management of access controls is a complex and dynamic problem that applies business, organizational, and legal constraints to technical implementation. Access control design decisions have to be made by humans, not technology, and the potential for errors is high.

### <mark style="color:yellow;">Details</mark>

During our web application analysis, we were analyzing the admin functionalities, restrictions, and boundaries in order to map the attack vectors that malicious attackers can do and execute on the IoT device. We noticed that the admin user can add and edit other users, but when it comes to privileges, it can only add two privileges:

* user
* manager

You can notice this by taking a look at the image below:

<figure><img src="https://2341258708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNXCJWNoU0PexwJ6yBpmG%2Fuploads%2Fwa8fR2L298rHw42zKyg1%2Fimage.png?alt=media&#x26;token=3d05bb63-84ff-456b-a95d-d8d9e450d91a" alt=""><figcaption></figcaption></figure>

Both "user" and "manager" have privileges lower than the admin privilege; according to the application logic, this means that the admin should only add roles that are lower than its privilege, but here we were able to manipulate the logic of the application in order to add high-privilege admin from the same admin account. This can be manipulated by changing the role parameters value to "admin."&#x20;

As highlighted in the image below, the ordinary request can contain one of the two mentioned privileges and in this case, it was "user":

<figure><img src="https://2341258708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNXCJWNoU0PexwJ6yBpmG%2Fuploads%2FjZYhSO1OmQqqE0mk8RBe%2Fimage.png?alt=media&#x26;token=82732cca-25ed-4848-b91b-0d5f7dc3ceaa" alt=""><figcaption></figcaption></figure>

Now, we are going to manipulate that and switch it to "admin" as shown:

<figure><img src="https://2341258708-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNXCJWNoU0PexwJ6yBpmG%2Fuploads%2FJQhapazywR8ryRfDfM6I%2Fimage.png?alt=media&#x26;token=fd4e0608-abb2-4b00-b043-a2acd182896b" alt=""><figcaption></figcaption></figure>

