Cisco BroadWorks Vulnerabilities CVE-2021–34785 & CVE-2021–34786
Describing Cisco's Broadworks bugs in more details and explaining the issue and the mitigation.
Last updated
Describing Cisco's Broadworks bugs in more details and explaining the issue and the mitigation.
Last updated
Hello Everyone! Today I will talk about my last findings at Cisco products BroadSoft BroadWorks, one of Cisco's products. I’ve discovered 2 CVEs at it and assigned them as
CVE-2021–34785: IDOR lead to privileges escalation “Admin account takeover”
CVE-2021-34786: IDOR lead to delete arbitrary admin user accounts
I will not talk about the full story or something similar because I hate these useless words 😅 So let’s get started directly with the exploits and the conditions.
At BroadWorks, we have an Admins group which have admins with write and read privileges and other admins with read-only privileges.
Read and Write: he can modify his data and other admins' data. Also, he can add users, change system preferences, delete users, and fully control the system
Read-only: he can modify his data and delete his account. He doesn’t have any other privileges “In my case”
I’ve got the second role (Read-only) and my task is trying to escalate my privileges to have Read and Write actions.
If you tried to view system users, we have 2 users: Admin
and PentestAdmin
. My user is PentestAdmin
which has low privileges, reads his data only. User Admin has full control of the system
I tried to enumerate the admin account to know what allowed functions, but unfortunately! There’s no allowed function to use at the Admin profile, I can view the data only, but at ll, I know the firstname
, lastname
and adminID
After that, I tried to enumerate my account and found that I have 2 allowed functions delete the account and change the password without asking you for your old password, weird right?!
I entered a new password and intercepted the request to know what’s the request parameters. I’ve found that we have firstname, lastname
and loginid
required parameters because I tried to delete loginid
but unfortunately! The request failed
At all, it’s not a problem because I have privileges to read all users' data, so I know this data from the admin profile.
The final step is replacing your data with Admin data and sending the request. It returns 200 OK and to check, I tried to log in with the new password, and Bingo! You take over the admin account by changing his password ❤
To make POC, I’ve created a new user SecmeterPOC
with writing and reading privileges.
After reviewing the Admin board
With the same methodology, I tried to delete my account and intercept the request.
We have the same required parameters firstname/lastname/loginid
and the same exploit, just replace them with Admin account data and send the request.
What are the results? The admin account was deleted 😈
At the change password function, it MUST ask me for the old password and if I forget it, it should ask me to contact the system administrator.
There’s no CSRF token attached with the user session to protect the system from performing the same attack using CSRF [I have tried it and successed]
To delete an account, it MUST ask the user to enter his password or any security question
Thanks for reading <3 Stay in touch