API Security Weekly: Issue #30
Explore this week's API vulnerabilities.
Join the DZone community and get the full member experience.Join For Free
This week, there were a lot of API security vulnerabilities, including:
- Cisco (a whopping three of them!)
- Oracle WebLogic
- Millions of IoT devices based on iLnkP2P
We also look into what implications 5G transitioning to REST and HTTPS brings to API security.
Vulnerabilities and Breaches
Probably the highest profile issue of the week was the vulnerabilities in SupportAssist client, an automated update utility that Dell ships with every computer. This utility is a web server running on your machine, with an API designed to let Dell push and install updates on your computer.
The solution had multiple design flaws. For example, it didn’t even require the binaries to be signed. Yet in the end, the weakest link turned out to be the transport enforcement code.
The code was checking paths that the API received using a
StartsWith("http://") check. If the returned response was
true, the code replaced HTTP with HTTPS to download the binary over a secure connection. The utility also had a limited set of Dell-controlled domains from where it was fine to download the updates.
To take advantage of this, attackers could simply begin the path URL with
" http://", with an extra space in the beginning. The
StartsWith("http://") check then returned
false, and a HTTP connection was established. The attackers were then free to launch a successful man-in-the-middle attack and execute their own code.
A reminder that proper input sanitization, format enforcement, payload control, signatures, and encryption must be integral parts of any API.
Cisco had three API vulnerabilities that it had to patch this week:
- TelePresence Video Communication Server
- ASA 5500-X Series Firewalls
- Elastic Services Controller
In all three, the vulnerabilities were related to malformed payloads causing the APIs to misbehave.
With TelePresence, an unexpected, specifically crafted XML input caused the API to consume 100% of CPU, making the device unusable.
However, the vulnerability in Elastic Services Controller (ESC) was the worst of the three, with a Common Vulnerability Scoring System (CVSS) rating of 10/10.
This vulnerability of ESC REST API allowed any remote, unauthenticated attacker to send unexpected, specifically crafted requests that the backend couldn’t properly process. The attackers could then execute arbitrary actions on the system.
To avoid such breaches, you must lock down the payload definitions of your API and enforce these contracts strictly.
The Oracle WebLogic web server API breach is just as bad as the Cisco one. Here, too, the vulnerability allowed remote code execution using malformed payloads.
And this has already happened: ransomware and crypto-mining attacks are busily exploiting this vulnerability. WebLogic servers are quite widespread in enterprise, and they mostly run critical systems. This makes the attacks very lucrative.
About 41,000 WebLogic servers are publicly accessible from the internet. If you have one of them, make sure to patch as soon as possible. Again, API providers can prevent attacks like this one by clearly defining the API input and enforcing that definition.
This API vulnerability in iLnkP2P library affected about 2 million IoT devices that use the P2P library for discovery. The devices, such as security cameras and baby monitors, used the API to make it easy to start using them. Consumers could use a mobile app to scan a code on the device or type in the device ID to start managing the device.
The system authenticated devices using the device ID and a preset, hard-coded password. To make things worse, the device IDs and the backend API implementation allowed attackers to brute-force enumerate the IDs. The attackers could then find the devices that were online and take over them. Consumers had no chance to change the password or the device ID to protect themselves.
Lessons to learn: hard-coded passwords and IDs that can be enumerated are evil and must be avoided!
We have previously covered an API vulnerability in JustDial, India’s leading local search engine.
This week, the same researcher found another unprotected public API in JustDial that was leaking data. Now their reviews API leaked the reviewer’s name, mobile number, and location.
The bottom line here: just because your application doesn’t show some of the data that your API exposes, it doesn’t mean that attackers cannot access the API (and thus the data!) directly.
The recent DockerHub breach was not in itself related to an API but to unauthorized database access. However, its outcomes do include an API angle.
DockerHub integrates with code repository systems (like GitHub and Bitbucket) using OAuth2. Because of this, once DockerHub was compromised, the tokens of the code repository systems leaked too. Attackers could then use the leaked tokens to access these systems.
Once DockerHub found out about the breach, they have been very proactive in invalidating the leaked tokens.
5G mobile networks are coming. If you have not been paying close attention to them, the new technology stack behind might surprise you.
5G mobile networks are actually abandoning the traditional cellular networking stack. Instead, they are switching to micro-services and REST. This also brings changes in the security tools that telcos need for API security.
You can subscribe to this weekly newsletter at https://APIsecurity.io
Published at DZone with permission of Dmitry Sotnikov, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.