Skip to content

Instantly share code, notes, and snippets.

@ipxsec
Last active October 2, 2024 20:53
Show Gist options
  • Select an option

  • Save ipxsec/28afaf965389283a68433c7afd54d17a to your computer and use it in GitHub Desktop.

Select an option

Save ipxsec/28afaf965389283a68433c7afd54d17a to your computer and use it in GitHub Desktop.
Solvait PrivEsc

Improper Access Control in Leaves Requests

Description:

A security flaw has been discovered in Solvait version 24.4.2 that allows an attacker to elevate their privileges. By manipulating the Request ID and Action Type parameters in the /AssignToMe/SetAction request, an attacker can alter the approval status of any request submitted by a regular employee. The approval status will appear as if it was changed by the employee's manager. This vulnerability affects all employees using this version of the software within the company.

Impact

The vulnerability enables an attacker to gain unauthorized privileges by manipulating request parameters. As a result, the attacker can bypass approval workflows, potentially leading to unauthorized access to sensitive information or approval of fraudulent requests. This issue compromises the integrity of the approval process and can significantly undermine trust in the system's security.

Vulnerability path:

https://<domain>/AssignToMe/SetAction

Affected target

This vulnerability was tested and found on version 24.4.2

Steps to Reproduce:

1- As a regular employee, create a normal leave request. Make note of the request id (ReqID)
2- Craft a POST request to https://<domain>//AssignToMe/SetAction.
The parameters of the request should include the following:
ReqNum=<RequestID>&TableName=DAPLeaveRequest&ActionTypeRequest=1&Comment=<Any text>&RequestId=<RequestID>&WordkerId=<Regular Employee ID in the system>&DelegateUserId=
3- Send the request.
4- A successful response will be returned.
5- Navigate to the leave request, and you will find that the employee's manager has approved the request.

Discoverer

Abdulwahab Alismaeel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment