Document Title: =============== GetPocket - Multiple Persistent Web Vulnerabilities Date: ===== 2018-06-13 References: =========== http://www.vulnerability-lab.com/get_content.php?id=1722 VL-ID: ===== 1722 Common Vulnerability Scoring System: ==================================== 4.6 Vulnerability Class: ==================== Cross Site Scripting - Persistent Introduction: ============= Pocket is your place to quickly save, discover, and recommend the stories that interest you. (Copy of the Vendor Homepage: https://getpocket.com/ ) Abstract: ========= The vulnerability laboratory core research team discovered multiple input validation web vulnerabilities in the official GetPocket online service web-application. Report-Timeline: ================ 2018-06-14: Non-Public Disclosure (Vulnerability Laboratory - Shared Customer Research Feed) Status: ======== Published Affected Products: ================== Exploitation-Technique: ======================= Remote Severity: ========= Medium Details: ======== Multiple application-side input validation vulnerabilities has been discovered in the official GetPocket online service web-application. The security vulnerability allows remote attackers to inject own script code on the application-side of the affected application module. A cross site request forgery vulnerability has been discovered which allows an attacker to add a malicious Website with manipulated tags. The first vulnerability is located in the GET parameter of the official login url. Remote attackers with low privileged web-applocation user accounts are able to inject own malicious script code or redirect the user to a malicious website/phishing page. The injection point is the vulnerable `route` parameter. The parameter primaly acts as a redirect but can also beeing exploited with malicous cross site script. The second vulnerability is located in the GET Parameter of the official authorization URL. Remote attackers with low privileged web-applocation user accounts are able to inject own malicious script code or redirect the user to a malicious website/phishing page. The injection point is the vulnerable `redirect_uri` parameter. The parameter primaly acts as a redirect but can also beeing exploited with malicous cross site script. The third vulnerabiliy is located in the GET Parameter of the official getPocket widget generator. Remote attackers with low privileged web-applocation user accounts are able to inject own malicious script code. The injection point is the vulnerable `align` parameter. The vulnerability is classified as cross site scripting vulnerability. The last vulnerability is located in the GET Parameter of the Edit/Add Url Module in the official GetPocket online service web-application. Remote attackers without web-application user accounts are able to add or modify existent Links or tags from the victim. The vulnerability exists because proper cross site request forgery token is missing. The Script is not detecting if the request is made by an attacker or the user itself. The vulnerability is classified as cross site request forgery vulnerability. All vulnerabilities are located in the application-sides of the vulnerable services. The security risk of the application-side input validation vulnerabilities are estimated as medium with a cvss (common vulnerability scoring system) count of 4.6. Exploitation of thr input validation web vulnerabilities requires a low privilege web-application user account and low or medium user interaction. Successful exploitation of the vulnerabilities results in session hijacking, phishing attacks, external redirects to malicious source and persistent manipulation of affected or connected application modules. Request Method(s): [+] GET Vulnerable Service(s): [+] getpocket.com Vulnerable Module(s): [+] Login [+] Authorisation [+] Widgets [+] Edit URL Vulnerable Parameter(s): [+] route [+] redirect_uri [+] align [+] url and tags Proof of Concept: ================= The security vulnerability can be exploited by remote attackers with low privileged web-application user account and low or medium user interaction. For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue. The input validation vulnerabilities can be exploited by preparing the payload as base64 encoded string. For example: data:text/html;base64,PHNjcmlwdD5hbGVydCgiWFNTIik8L3NjcmlwdD4= To exploit the vulnerabilities as redirect vulnerability insert the URL. https://getpocket.com/login?route=data:text/html;base64,PHNjcmlwdD5hbGVydCgiWFNTIik8L3NjcmlwdD4= https://getpocket.com/auth/authorize?request_token=6db6b137-a8af-db62-f4d6-fc8bf7&redirect_uri=data:text/html;base64,PHNjcmlwdD5hbGVydCgiWFNTIik8L3NjcmlwdD4= https://widgets.getpocket.com/v1/button?label=&align=%22%20onmouseover=%22alert%28document.cookie%29 The cross site request forgery can be exploited by placing the prepared link on a target website. The URL will be accessed in background an url and tags will be added. Reference(s): https://getpocket.com/login?route=data:text/html;base64,PHNjcmlwdD5hbGVydCgiWFNTIik8L3NjcmlwdD4= https://getpocket.com/auth/authorize?request_token=6db6b137-a8af-db62-f4d6-fc8bf7&redirect_uri=data:text/html;base64,PHNjcmlwdD5hbGVydCgiWFNTIik8L3NjcmlwdD4= https://widgets.getpocket.com/v1/button?label=&align=%22%20onmouseover=%22alert%28document.cookie%29 Solution: ========= The vulnerabilities can be patched by a secure parse and input restriction of the vulnerable parameters. Restrict the input and disallow usage of special chars. Filter and setup a secure exception handling that prevents the persistent execution in the output location. Several patches and fixes resolved the security issues during 2017 Q1 - Q4. The disclosure process took about 12 month after the patch was established. Risk: ===== The security risk of application-side input validation web vulnerability in the frontend of the getPocket web-application is estimated as medium (CVSS 4.6). Credits: ======== Vulnerability-Lab [research@vulnerability-lab.com] - https://www.vulnerability-lab.com/show.php?user=Vulnerability-Lab Disclaimer: =========== 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 Labs or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability mainly for incidental or consequential damages so the foregoing limitation may not apply. We do not approve or encourage anybody to break any licenses, policies, deface websites, hack into databases or trade with stolen data. We have no need for criminal activities or membership requests. We do not publish advisories or vulnerabilities of religious-, militant- and racist- hacker/analyst/researcher groups or individuals. We do not publish trade researcher mails, phone numbers, conversations or anything else to journalists, investigative authorities or private individuals. Domains: www.vulnerability-lab.com - www.vulnerability-db.com - www.evolution-sec.com Programs: vulnerability-lab.com/submit.php - vulnerability-lab.com/list-of-bug-bounty-programs.php - vulnerability-lab.com/register.php Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php Social: twitter.com/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab Any modified copy or reproduction, including partially usages, of this file, resources or information 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, modify, use or edit our material contact (admin@) to get an ask permission. Copyright © 2018 | Vulnerability Laboratory - [Evolution Security GmbH]™