[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PayPal Inc #86 iOS 4.6 - Validation & Design Vulnerability
PayPal Inc #86 iOS 4.6 - Validation & Design Vulnerability
PayPal Security UID: eff8aq
Vulnerability Laboratory ID (VL-ID):
Common Vulnerability Scoring System:
Product & Service Introduction:
PayPal is a global e-commerce business allowing payments and money transfers to be made through the Internet. Online money
transfers serve as electronic alternatives to paying with traditional paper methods, such as checks and money orders. Originally,
a PayPal account could be funded with an electronic debit from a bank account or by a credit card at the payer s choice. But some
time in 2010 or early 2011, PayPal began to require a verified bank account after the account holder exceeded a predetermined
spending limit. After that point, PayPal will attempt to take funds for a purchase from funding sources according to a specified
funding hierarchy. If you set one of the funding sources as Primary, it will default to that, within that level of the hierarchy
(for example, if your credit card ending in 4567 is set as the Primary over 1234, it will still attempt to pay money out of your
PayPal balance, before it attempts to charge your credit card). The funding hierarchy is a balance in the PayPal account; a
PayPal credit account, PayPal Extras, PayPal SmartConnect, PayPal Extras Master Card or Bill Me Later (if selected as primary
funding source) (It can bypass the Balance); a verified bank account; other funding sources, such as non-PayPal credit cards.
The recipient of a PayPal transfer can either request a check from PayPal, establish their own PayPal deposit account or request
a transfer to their bank account.
PayPal is an acquirer, performing payment processing for online vendors, auction sites, and other commercial users, for which it
charges a fee. It may also charge a fee for receiving money, proportional to the amount received. The fees depend on the currency
used, the payment option used, the country of the sender, the country of the recipient, the amount sent and the recipient s account
type. In addition, eBay purchases made by credit card through PayPal may incur extra fees if the buyer and seller use different currencies.
On October 3, 2002, PayPal became a wholly owned subsidiary of eBay. Its corporate headquarters are in San Jose, California, United
States at eBay s North First Street satellite office campus. The company also has significant operations in Omaha, Nebraska, Scottsdale,
Arizona, and Austin, Texas, in the United States, Chennai, Dublin, Kleinmachnow (near Berlin) and Tel Aviv. As of July 2007, across
Europe, PayPal also operates as a Luxembourg-based bank.
On March 17, 2010, PayPal entered into an agreement with China UnionPay (CUP), China s bankcard association, to allow Chinese consumers
to use PayPal to shop online.PayPal is planning to expand its workforce in Asia to 2,000 by the end of the year 2010.
Between December 4ñ9, 2010, PayPal services were attacked in a series of denial-of-service attacks organized by Anonymous in retaliation
(Copy of the Homepage: www.paypal.com) [http://en.wikipedia.org/wiki/PayPal]
Abstract Advisory Information:
The Vulnerability Laboratory Research Team discovered a form validation bug and design vulnerability in the PayPal Inc iOS Mobile v4.6.0 Application for iPhones & iPads.
Vulnerability Disclosure Timeline:
2014-09-30: Public Disclosure (Vulnerability Laboratory)
Product: iOS Mobile Application - Banking 4.6.0
Technical Details & Description:
A design misconfiguration and a input validation issue has been discovered in the PayPal Inc iOS v4.6.0 mobile web-application.
The misconfiguration of the input validation is located in the `Betrag` (Amount) module of the paypal mobile application iOS v4.6.0.
The regular validation of the input form in the main app of paypal, allows on inputs of money the following chars together `.``,` `00`.
During the transaction process of an amount i found a way to include a valid string with incorrect values to the payment procedure.
The incorrect values with a very high amount of money in euro resulted in the block of a non verified account because the api of the app
was sending the request and opened it up. Normally the validation should see the person uses different kind of special chars in the transaction
to high up the amount. The block was only the result of the opened transaction with confusing high (impossible) amount.
Amount Transaction: €111111111.101.011.101.019,00,00
A design misconfiguration is also connected to the wrong input validation problem which does not show anymore in the first or last 2 integers
of an transaction. In the screenshots of the listing you can see the problem with the bug in the item amounts last positions.
[+] Amount (Input Fields)
[+] Amount Listing (Index) - Main & Detailed Transactions
Proof of Concept (PoC):
The validation and design bug can be exploited by local attackers with low privileged or shared paypal account with low user interaction.
For security demonstration or to reproduce the security vulnerability follow the provided information and steps below to continue.
Manually steps to reproduce the security vulnerability ...
#1 Explains the validation problem of the amount size inside of the validation combined with , . 00
#2 Explains a connected bug which does not display the first or last 2 chars of the transaction amount
1. Register a paypal account
2. Activate for mobile access and download the new ipad or iphone paypal software v4.6.0
3. Make a send money transaction or request transaction with a paypal account in the mobile app
4. Open the money send and include for example a wrong amount like €11.101.011.101.019,00,00 and save the context
5. The app asks you to confirm the transaction of the money send or request, click confirm to accept
6. The transaction will be successful send but the app does not recognize the wrong request to block
7. The test account will be blocked because of a wrong declared amount and validation in the input of the amount.
8. Now, the attacker went back to the application and look to the transaction listing
9. The transaction amount is larger then the input listing bar of the api app template and the last or first 2 numbers of the amount are not inside the same line and broken displaye/invisble
10. Both successful reproduce of both local reported issues!
Solution - Fix & Patch:
Restrict the input of the money amount to a secure limit. Restrict the input to disallow special chars.
Encode the input to prevent further script code executions. Implement a exception that prevent execution of wrong inputs and patch the design flaw.
The security risk of the mobile validation form misconfiguration and the design bug is estimated as medium.
Credits & Authors:
Vulnerability Laboratory [Research Team] - Benjamin Kunz Mejri (bkm@xxxxxxxxxxxxxxxxx) [www.vulnerability-lab.com]
Disclaimer & Information:
The information provided in this advisory is provided as it is without any warranty. Vulnerability Lab disclaims all warranties, either
expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-Lab or its suppliers
are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business profits or special damages, even
if Vulnerability-Lab or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation
of liability for consequential or incidental damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break
any vendor licenses, policies, deface websites, hack into databases or trade with fraud/stolen material.
Domains: www.vulnerability-lab.com - www.vuln-lab.com - www.evolution-sec.com
Contact: admin@xxxxxxxxxxxxxxxxxxxxx - research@xxxxxxxxxxxxxxxxxxxxx - admin@xxxxxxxxxxxxxxxxx
Section: dev.vulnerability-db.com - forum.vulnerability-db.com - magazine.vulnerability-db.com
Social: twitter.com/#!/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab
Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php
Programs: vulnerability-lab.com/submit.php - vulnerability-lab.com/list-of-bug-bounty-programs.php - vulnerability-lab.com/register/
Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability Laboratory. Permission to
electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of other media, are reserved by
Vulnerability-Lab Research Team or its suppliers. All pictures, texts, advisories, source code, videos and other information on this website
is trademark of vulnerability-lab team & the specific authors or managers. To record, list (feed), modify, use or edit our material contact
(admin@xxxxxxxxxxxxxxxxxxxxx or research@xxxxxxxxxxxxxxxxxxxxx) to get a permission.
Copyright © 2014 | Vulnerability Laboratory [Evolution Security]
VULNERABILITY LABORATORY RESEARCH TEAM