[Original post here:
https://wwws.nightwatchcybersecurity.com/2018/07/09/advisory-crashing-facebook-messenger-for-android-with-an-mitm-attack/]

SUMMARY

Facebook Messenger for Android can be crashed via the application’s
status check. This can be exploited by an MITM attacker via
intercepting that call and returning a large amount of data. This
happens because this status check is not done over SSL and the
application did not contain logic for checking if the returned data is
very large.

The vendor has no immediate plans to fix this issue.

VULNERABILITY DETAILS

Facebook Messenger for Android is a messaging application provided by
Facebook. While monitoring network traffic of a test device running
Android, we observed that the application made network calls for
checking server status. This call was done over HTTP without the use
of SSL / TLS. Example URL:

http://portal.fb.com/mobile/status.php

We were successful in crashing the application by injecting a large
packet because the application doesn’t handle large data coming back
correctly and doesn’t use SSL for this call.

It is also important to note this would allow someone to block
Messenger from being used but without the users realizing they are
being blocked, since they will attribute the app crashing to a bug
rather than a block.

STEPS TO REPLICATE (on Ubuntu 18.04)

1. Install the application on the Android device.
2. Install dnsmasq and NGINX on the Linux host:
sudo apt-get install dnsmasq nginx

3. Modify the /etc/hosts file to add the following entry to map PIA’s
domain name to the Linux host:
192.168.1.x portal.fb.com

4. Configure /etc/dnsmasq.conf file to listen on the IP and restart DNSMASQ
listen-address=192.168.1.x
sudo /etc/init.d/dnsmasq restart

5. Use mkdir and fallocate to create a large server file in
“/var/www/html/” (you may need to use sudo):
cd /var/www/html
mkdir mobile
cd mobile
fallocate -l 2.5G status.php

6. Setup a WiFi access point and set the DNS server setting on the
access point to the Linux computer (“192.168.1.x”)

6. Connect the test device to the access point – Android will resolve
now DNS against the Linux computer.

7. Re-open the app and try to activate with a phone number. Observe
the crash – note that the application and launcher crashes but not the
device itself

All testing was done on v169.0.0.27.76 of the Android application
using a Linux host running Ubuntu v18.04 and Android test devices
running Android v7 and v8.1.

VENDOR RESPONSE

The vendor doesn’t consider this to be a security issue and doesn’t
have immediate plans to fix it:

"After talking to the product team, we’ve determined that the crash is
due to OOM and the security risk here is not significant enough to
qualify for a bounty. The impact here is a denial of service on very
specific users on the attacker’s wifi network, which arguably can be
done via other local network attacks which we ultimately cannot
control. While we agree that this is a software bug and we may
consider making changes in the future to prevent this behavior, this
issue does not qualify as a part of our bounty program."

REFERENCES

CVE-ID: no CVE assigned
CWE: CWE-400 – Uncontrolled Resource Consumption (‘Resource Exhaustion’)

CREDITS

Text of the advisory written by Yakov Shafranovich.

TIMELINE

2018-06-05: Initial email to the vendor as part of another issue; POC sent
2018-06-12: Initial report triaged by vendor and sent to product team
2018-06-20: Vendor response received
2018-06-25: Draft advisory provided to vendor for review
2018-07-09: Public disclosure

_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/

Reply via email to