

Privilege escalation聽聽ZYXEL
CVE-2024-12398: Privilege Escalation in ZYXEL Access Point
I found a privilege escalation vulnerability in the WBE product series, allowing unauthorized administrative access under certain conditions.
Never attribute to malice that which is adequately explained by incompetence.
馃搶 Note
This is an excerpt from the official writeup sent to ZYXEL.
Summary
During my audit on the WBE product series, I noticed that when a user with "limited-admin" privileges attempts to upload a custom configuration file, a popup is displayed, informing the user that the upload is prohibited due to insufficient privileges. However, this restriction can be bypassed under certain conditions, allowing unauthorized administrative access.
Limited-admin attempting to upload a custom config file
Alert
This popup is managed by the script ZyFunction.js, located in /ext-js/common/, which checks the local variable isAdmin. If the variable is set to False, the warning message is displayed.
jsvar dumpMsgIfLimitedAdmin = function() { if (!isAdmin) { Ext.MessageBox.show({ msg: "This action is not allowed due to limited-admin privielege insufficent.", buttons: Ext.MessageBox.OK, icon: Ext.MessageBox.WARNING }); } return !isAdmin; }
However, by manipulating isAdmin variable, it is possible to attempt the upload, bypassing the client side check.
Alert
The CGI script in backend does not verify the identity of the requester, allowing a limited user to upload customized configuration files.
Alert
If the limited user attempts to upload the startup-config.conf, the device will reboot and load the provided configuration, thereby allowing the attacker to gain full control of the device.
Disclosure Timeline
- 2024-12-03ZYXEL was notified via <security@zyxel.com.tw>
- 2024-12-04ZYXEL acknowledged my vulnerability report.
- 2024-12-10ZYXEL assigned CVE-2024-12398 to the reported issues and informed me of their intention to publish their security advisory on 2025-01-14.
- 2025-01-14ZYXEL published their security advisory, following our coordinated disclosure timeline.
If this writeup saved you an evening, you can buy me a coffee.
Buy me a coffee