{"uuid": "84e1a206-be69-4509-9ffa-a97191c50c06", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2015-3864", "type": "seen", "source": "https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/android/browser/stagefright_mp4_tx3g_64bit.rb", "content": "{\"aliases\": [], \"arch\": \"armle\", \"author\": [\"jduck \", \"NorthBit\"], \"autofilter_ports\": [], \"autofilter_services\": [], \"check\": false, \"default_credential\": false, \"description\": \"This module exploits an integer overflow vulnerability in the Stagefright\\n          Library (libstagefright.so). The vulnerability occurs when parsing specially\\n          crafted MP4 files. While a wide variety of remote attack vectors exist, this\\n          particular exploit is designed to work within an HTML5 compliant browser.\\n\\n          Exploitation is done by supplying a specially crafted MP4 file with two\\n          tx3g atoms that, when their sizes are summed, cause an integer overflow when\\n          processing the second atom. As a result, a temporary buffer is allocated\\n          with insufficient size and a memcpy call leads to a heap overflow.\\n\\n          This version of the exploit uses a two-stage information leak based on\\n          corrupting the MetaData that the browser reads from mediaserver. This method\\n          is based on a technique published in NorthBit's Metaphor paper. First,\\n          we use a variant of their technique to read the address of a heap buffer\\n          located adjacent to a SampleIterator object as the video HTML element's\\n          videoHeight. Next, we read the vtable pointer from an empty Vector within\\n          the SampleIterator object using the video element's duration. This gives\\n          us a code address that we can use to determine the base address of\\n          libstagefright and construct a ROP chain dynamically.\\n\\n          NOTE: the mediaserver process on many Android devices (Nexus, for example) is\\n          constrained by SELinux and thus cannot use the execve system call. To avoid\\n          this problem, the original exploit uses a kernel exploit payload that disables\\n          SELinux and spawns a shell as root. Work is underway to make the framework\\n          more amenable to these types of situations. Until that work is complete, this\\n          exploit will only yield a shell on devices without SELinux or with SELinux in\\n          permissive mode.\", \"disclosure_date\": \"2015-08-13\", \"fullname\": \"exploit/android/browser/stagefright_mp4_tx3g_64bit\", \"is_install_path\": true, \"mod_time\": \"2025-04-26 01:28:35 +0000\", \"name\": \"Android Stagefright MP4 tx3g Integer Overflow\", \"needs_cleanup\": null, \"notes\": {\"AKA\": [\"stagefright\"], \"Reliability\": [\"unreliable-session\"], \"SideEffects\": [\"artifacts-on-disk\"], \"Stability\": [\"crash-service-down\"]}, \"path\": \"/modules/exploits/android/browser/stagefright_mp4_tx3g_64bit.rb\", \"platform\": \"Linux\", \"post_auth\": false, \"rank\": 300, \"ref_name\": \"android/browser/stagefright_mp4_tx3g_64bit\", \"references\": [\"CVE-2015-3864\", \"URL-https://blog.exodusintel.com/2015/08/13/stagefright-mission-accomplished/\", \"URL-https://googleprojectzero.blogspot.com/2015/09/stagefrightened.html\", \"URL-https://raw.githubusercontent.com/NorthBit/Public/master/NorthBit-Metaphor.pdf\", \"URL-https://github.com/NorthBit/Metaphor\", \"URL-https://web.archive.org/web/20160115042350/http://drops.wooyun.org/papers/7558\", \"URL-https://web.archive.org/web/20160331185650/http://translate.wooyun.io/2015/08/08/Stagefright-Vulnerability-Disclosure.html\", \"URL-https://web.archive.org/web/20160304015534/https://www.nccgroup.trust/globalassets/our-research/uk/whitepapers/2016/01/libstagefright-exploit-notespdf/\"], \"rport\": null, \"session_types\": false, \"targets\": [\"Automatic\", \"Nexus 7 (Wi-Fi) (razor) with Android 5.0 (LRX21P)\", \"Nexus 7 (Wi-Fi) (razor) with Android 5.0.1 (LRX22C)\", \"Nexus 7 (Wi-Fi) (razor) with Android 5.0.2 (LRX22G)\", \"Nexus 7 (Wi-Fi) (razor) with Android 5.1 (LMY47O)\", \"Nexus 7 (Wi-Fi) (razor) with Android 5.1.1 (LMY47V)\", \"Nexus 7 (Wi-Fi) (razor) with Android 5.1.1 (LMY48G)\", \"Nexus 7 (Wi-Fi) (razor) with Android 5.1.1 (LMY48I)\", \"Nexus 7 (Mobile) (razorg) with Android 5.0.2 (LRX22G)\", \"Nexus 7 (Mobile) (razorg) with Android 5.1 (LMY47O)\", \"Nexus 7 (Mobile) (razorg) with Android 5.1.1 (LMY47V)\", \"Nexus 5 (hammerhead) with Android 5.0 (LRX21O)\", \"Nexus 5 (hammerhead) with Android 5.0.1 (LRX22C)\", \"Nexus 5 (hammerhead) with Android 5.1 (LMY47D)\", \"Nexus 5 (hammerhead) with Android 5.1 (LMY47I)\", \"Nexus 5 (hammerhead) with Android 5.1.1 (LMY48B)\", \"Nexus 5 (hammerhead) with Android 5.1.1 (LMY48I)\", \"Nexus 6 (shamu) with Android 5.0 (LRX21O)\", \"Nexus 6 (shamu) with Android 5.0.1 (LRX22C)\", \"Nexus 6 (shamu) with Android 5.1 (LMY47D)\", \"Nexus 6 (shamu) with Android 5.1 (LMY47E)\", \"Nexus 6 (shamu) with Android 5.1 (LMY47I)\", \"Nexus 6 (shamu) with Android 5.1.1 (LYZ28E)\", \"Nexus 6 (shamu) with Android 5.1 (LMY47M)\", \"Nexus 6 (shamu) with Android 5.1.1 (LMY47Z)\", \"Nexus 6 (shamu) with Android 5.1.1 (LVY48C)\", \"Nexus 6 (shamu) with Android 5.1.1 (LMY48I)\", \"Nexus 6 (shamu) with Android 5.1.1 (LYZ28J)\", \"Nexus 6 (shamu) with Android 5.1.1 (LVY48E)\", \"Samsung Galaxy S5 (VZW SM-G900V) with Android 5.0 (LRX21T)\"], \"type\": \"exploit\"}", "creation_timestamp": "2026-09-08T06:48:16.466842Z"}