- Community Home
- >
- Software
- >
- Security Research
- >
- Adobe's CVE-2015-5090 - Updating the Updater to become the bossman
-
Communities
-
Blogs
-
Quick LinksProtect724English
Adobe's CVE-2015-5090 - Updating the Updater to become the bossman
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Receive email notifications
- Email to a Friend
- Printer Friendly Page
- Report Inappropriate Content
Adobe's CVE-2015-5090 - Updating the Updater to become the bossman
Adobe's CVE-2015-5090 - Updating the Updater to become the bossman
Amongst the many bugs Adobe patched in July 2015, CVE-2015-5090 stands out as being worth a closer look. Adobe lists this vulnerability as a privilege escalation from low to medium integrity, but this doesn’t tell the whole story. In actuality, this bug can used to execute code with SYSTEM privileges, which could allow an attacker to completely take over a target. Since this affects the Adobe updater service, the bug exists in both Adobe Reader and Acrobat Pro. Both of these programs install the ARMSvc service (Updater) and both keep AdobeARM.exe/AdobeARMHelper.exe in c:\progra~1\common~1\Adobe\ARM\1.0.
Our exploit was specifically written for acrobat.exe, but it could be modified for Reader as well. Here’s a short video demonstrating the exploit.
Bug information:
ARMSvc.exe supports multiple user controls defined in the function HandlerProc in IDA:
Figure 1 – Handler function
Inside UserControls:
Figure 2 – Controls
The interesting switch cases for this exploit are:
170 - Creates a shared memory section
179 - Executes ELEVATE which in turn runs AdobeARMHelper.exe with arguments from the Shared Memory section.
The problem with user control 170 is that it creates a SharedMemory section with weak permissions. Any user can read and write to it, meaning an attacker can control the arguments passed to AdobeARMHelper.exe.
Looking into AdobeARMHelper.exe, we find sub_42A260. This routine finds the first file in a given directory. It will then check to verify the file is signed by Adobe. If it's signed by, Adobe sub_42A260 copies the file to the directory where AdobeARM.exe resides:
Figure 3 – Signature check
If this fails, it will bail out:
Figure 4 – Signature check failure
If it succeeds, it copies the file:
Figure 5 – Signature check successful
The function does NOT take into account the following items:
1. Path for the folder where the files is to be copied is not checked. An attacker can supply his own path where he wants a file to be copied.
2. When the first file is found, the file name is not checked.
3. When the first file is found, the file extension is not checked.
The function DOES check for:
1. Whether the first file found in a given directory is signed by Adobe.
Exploitation:
What we're able to do:
1. Control arguments passed to AdobeARMHelper/AdobeARM via the SM.
2. Execute AdobeARM.exe under system privileges whenever we want.
3. Overwrite AdobeARM.exe with *any* file as long as it's signed by Adobe.
What we NEED to do:
1. Have something NOT signed by Adobe get executed.
The strategy:
To exploit this bug, we need to overwrite AdobeARM.exe with something signed by Adobe, but something that would allow us to do interesting things.
For example, arh.exe is an Adobe AIR install wrapper. In theory, we can overwrite AdobeARM.exe with arh.exe (which is totally legit since it's signed), and then probably have arh.exe install an arbitrary AIR application. The only problem with this strategy is that arh.exe would not allow any extra arguments to be passed to it, so it will fail since some of the arguments passed from the SM are not directly controlled by us.
The best strategy would be overwriting AdobeARM.exe with a signed binary that won't complain when we pass extra arguments to it.
The exploit:
If we look closely at Acrobat Pro, we would notice that it contains a binary called AcrobatLauncher.exe.
This binary basically allows us to launch Acrobat.exe with a given PDF file. The nice thing about AcrobatLauncher.exe is that it ignores extra arguments and doesn't complain/bail out.
The command line argument is: AcrobatLauncher.exe -open PDF_FILE
Attack chain:
1. Trigger SM creation.
2. Write arguments to SM.
3. Trigger ELEVATE user control to copy AcrobatLauncher.exe (as AdobeARM.exe) to c:\progra~1\common~1\Adobe\ARM\1.0\AdobeARM.exe. This basically overwrites the updater.
4. Run the new AdobeARM.exe, which will execute Acrobat.exe with our PDF exploit. This step is automatically done with the ELEVATE control.
5. The PDF exploit should dump secur32.dll in c:\progra~1\common~1\Adobe\ARM\1.0. This is done using one of our JavaScript bypasses.
6. Clear the temp folder so AdobeARMHelper.exe won't copy anything from the temp folder when we call ELEVATE one more time.
7. Re-write to SM so it will execute our new AdobeARM.exe without any modifications.
8. Execute ELEVATE again which will execute AdobeARM.exe (which is in fact AcrobatLauncher.exe) with only the "-open" option which will load our secur32.dll and pop calc as SYSTEM.
As you can see, CVE-2015-5090 provides attackers a reliable method for executing code with system privileges. If you’re running either Adobe Reader or Acrobat Pro, you should definitely apply the patch that corrects this bug. Also, if you would like more details about JavaScript bypass described in Step 5, be sure to check out our upcoming DEFCON talk for more information.
We’ll see you in Vegas!
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Receive email notifications
- Email to a Friend
- Printer Friendly Page
- Report Inappropriate Content
- on: Analytics in security
- on: Subtle shift in Microsoft’s patching policy could have wide-reaching effect
- on: There and back again: a journey through bounty award and disclosure
- on: HP Security Briefing, Episode 22: The hidden dangers of inadequate patching strategies
- SasiSiddharth on: Analyzing CVE-2015-1635 from cause to cure
- on: Crypto Manifesto 2015
- on: Full details on CVE-2015-0096 and the failed MS10-046 Stuxnet fix
- on: HPSR, Microsoft, disclosure, and the $125,000 bug bounty
- on: Life after Windows Server 2003: Ready or not, here it comes
- on: POS malware - a look at Dexter and Decebal
-
0day
4 -
abap
1 -
access control
1 -
adobe
2 -
Altcoin
2 -
Android
1 -
antivirus
1 -
apache struts
2 -
Apple
1 -
Application Security
2 -
Appsec
1 -
April Fools
4 -
ArcSight Application View
1 -
Articles of interest
13 -
ASLR
1 -
Autonomy
1 -
Big Data
1 -
Bitcoin
4 -
Bitcoin ATM
1 -
Bitcoin Mining
1 -
bitcoinATM
1 -
Black Hat
3 -
bounty
3 -
CanSecWest
2 -
CESG
1 -
chrome
1 -
computer security
4 -
Conferences
1 -
crashes
1 -
credit card
1 -
Cryptocurrency
4 -
cryptography
2 -
CVE-2015-1635
1 -
cyber risk report
1 -
cybercrime
2 -
database
1 -
debugging
1 -
Denial of Service
1 -
DEP
1 -
Disclosure policy
1 -
django
1 -
DNS
1 -
drones
1 -
DVLabs
5 -
dynamic analysis
1 -
Dynamic Application Security Testing
1 -
Dynamic Web Application Security Testing
2 -
emet
1 -
Engineering
1 -
Enterprise Security
1 -
Exploit
17 -
exploits
2 -
FalseConnect
1 -
Field
1 -
Firefox
1 -
firmware
1 -
Flash
1 -
Fortify
3 -
Fortify Runtime
1 -
Fortify SCA
1 -
FREAK
1 -
galaxy
1 -
Google
1 -
GPS
1 -
heartbleed
1 -
HP
14 -
HP Application Defender
5 -
HP Atalla
1 -
HP Fortify
4 -
HP Fortify SCA
2 -
HP SecureBase
2 -
HP Security Research
2 -
HP Voltage
1 -
HP WebInspect
7 -
HPE Security Research
41 -
HPSR
114 -
HTTP.sys
1 -
ibatis
1 -
IE
2 -
IE0day
1 -
IIS
1 -
Infographic
1 -
Integer Overflow
1 -
Internet Explorer
1 -
Internet of Things
1 -
Intrusion prevention system IPS
1 -
iOS
2 -
IoT
1 -
Java
1 -
Languages
1 -
LDAP
1 -
Lists
1 -
localhost
1 -
Maltese
1 -
Malware
7 -
MemoryProtection
1 -
Microsoft
2 -
Microsoft Windows
1 -
mitigation bypass
2 -
Mobile
11 -
monthly patch review
2 -
MS15-034
1 -
mybatis
1 -
Network security
1 -
next-generation firewall NGFW
1 -
Nexus
1 -
NGFW
1 -
north korea
1 -
NSA
1 -
o-day
1 -
open source
1 -
openssl
1 -
OpSec
2 -
Oracle
1 -
orm
1 -
OSINT
9 -
OWASP
1 -
OWASP AppSec USA
1 -
Patch Tuesday
1 -
patches
4 -
POODLE
1 -
Privacy
3 -
proxy authentication
1 -
pwn2own
29 -
pwn4fun
1 -
python
3 -
Remote code Exection
1 -
Research
15 -
Reserach
1 -
reverse engineering
1 -
RFD
1 -
RISCS
1 -
risk report
1 -
RSA
1 -
ruby
1 -
rulepack
1 -
Safari
2 -
Samsung
3 -
sandboxbypass
1 -
SAP
1 -
SCA
1 -
SecOps
2 -
Security
44 -
security analytics
1 -
security conference
1 -
security intelligence
2 -
Security Research
15 -
security tools
1 -
seven pernicious kingdoms
2 -
SIEM
2 -
SOC
2 -
Software Security
2 -
Software Security Research
1 -
Sony
1 -
Sourceanalyzer
1 -
speaking
1 -
Spoofing
1 -
Spring
1 -
SQL Injection
1 -
SSC
1 -
SSR
10 -
static analysis
3 -
Static Analyzer
1 -
Struts1
1 -
Struts2
1 -
stuxnet
3 -
threat briefing
2 -
Threat Briefings
1 -
Threat Intelligence
9 -
threat modeling
2 -
Threatbriefings
21 -
threatmodeling
2 -
TippingPoint
4 -
Tools
2 -
Training
1 -
trojan
1 -
UAF
1 -
Unicorn
1 -
Vertica
1 -
Virus Bulletin
1 -
Vulnerabilities
7 -
Vulnerability
10 -
Vulnerability Analysis
1 -
Vulnerability Research
1 -
Web Framework Vulnerabilities
1 -
WebInspect
2 -
Windows Server 2003
1 -
ZDI
43 -
ZDI@10
2 -
Zero Day
1 -
Zero Day Initiative
14
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.