Products

Solutions

Resources

Search for API Security Tests

/

/

Mass assignment granting low privilege user admin role access

Mass assignment granting low privilege user admin role access

The endpoint appears to be vulnerable to Mass Assignment attack. The original request was replayed by modifying admin param in request body. The application responded with 2XX success code in response.

Mass Assignment (MA)

"The endpoint appears to be vulnerable to Mass Assignment attack. The original request was replayed by modifying admin param in request body. The application responded with 2XX success code in response. <b>Background:</b> Objects in modern applications might contain many properties. Some of these properties should be updated directly by the client (e.g., user.first_name or user.address) and some of them should not (e.g., user.is_vip flag).\n" "An API endpoint is vulnerable if it automatically converts client parameters into internal object properties, without considering the sensitivity and the exposure level of these properties. This could allow an attacker to update object properties that they should not have access to.\n" "Examples for sensitive properties: Permission-related properties: user.is_admin, user.is_vip should only be set by admins. Process-dependent properties: user.cash should only be set internally after payment verification. Internal properties: article.created_time should only be set internally by the application."

"The endpoint appears to be vulnerable to Mass Assignment attack. The original request was replayed by modifying admin param in request body. The application responded with 2XX success code in response. <b>Background:</b> Objects in modern applications might contain many properties. Some of these properties should be updated directly by the client (e.g., user.first_name or user.address) and some of them should not (e.g., user.is_vip flag).\n" "An API endpoint is vulnerable if it automatically converts client parameters into internal object properties, without considering the sensitivity and the exposure level of these properties. This could allow an attacker to update object properties that they should not have access to.\n" "Examples for sensitive properties: Permission-related properties: user.is_admin, user.is_vip should only be set by admins. Process-dependent properties: user.cash should only be set internally after payment verification. Internal properties: article.created_time should only be set internally by the application."

Impact of the vulnerability

Impact of the vulnerability

Exploitation can lead to privilege escalation.

Exploitation can lead to privilege escalation.

How this template works

APIs Selection

The template uses API selection filters to specify the criteria for selecting the API endpoints to test. It filters the endpoints based on the response code (between 200 and 299), the HTTP method (PUT, POST, or PATCH), and the presence of specific keywords (admin, superuser, or system) in the response payload.

Execute request

The template executes a single request by adding a body parameter called "admin_key" with a value of true. This request is sent to the selected API endpoints to test if they are vulnerable to the Mass Assignment attack. The purpose is to modify the "admin" parameter in the request body and check if the application responds with a 2XX success code.

Validation

After executing the request, the template validates the response received from the API endpoint. It checks if the response code is between 200 and 299, indicating a successful request. Additionally, it verifies that the response payload contains the "admin_key" parameter with a value of true, confirming that the Mass Assignment vulnerability exists.

Frequently asked questions

What is the purpose of the "Mass Assignment Change Admin Role" test

How does the test determine if an API endpoint is vulnerable to Mass Assignment

What are some examples of sensitive properties that should not be updated by clients

What is the impact of exploiting a Mass Assignment vulnerability

What are the selection filters used to determine which API endpoints to test

How does the test validate the vulnerability by modifying the "admin_key" parameter

Loved by security teams!

Loved by security teams!

Product Hunt Badge

"We are absolutely thrilled with the testing feature of Akto. We have used it on our graphQL endpoints and it performs flawlessly identifying common API security issues. It's truly a game-changer and we highly recommend Akto to anyone looking to effortlessly secure their API endpoints. With a user-friendly interface, it's the perfect solution for anyone looking to embrace custom rules with context to reduce false positives."

Loom Company logo

Security team,

Loom

"We are absolutely thrilled with the testing feature of Akto. We have used it on our graphQL endpoints and it performs flawlessly identifying common API security issues. It's truly a game-changer and we highly recommend Akto to anyone looking to effortlessly secure their API endpoints. With a user-friendly interface, it's the perfect solution for anyone looking to embrace custom rules with context to reduce false positives."

Loom Company logo

Security team,

Loom

"The text editor in Akto is absolutely remarkable. Its user-friendly YAML format strikes the perfect balance between simplicity and power. With intuitive features like 'API selection filter', 'Execute', Validate' creating test rules becomes incredibly easy. Akto's test editor is a game-changer, enabling seamless creation of highly personalized and effective tests that could meet the needs of any modern day organization. "

Rippling Company logo

Security team,

Rippling

Suggest API security tests

Suggest API security tests

We're actively building the test library. Suggest a test! If we like your suggestion, you will see it in the library in few days.

We're actively building the test library. Suggest a test! If we like your suggestion, you will see it in the library in few days.