mingw-w64 version 5.0.4 by default produces executables that opt in to ASLR, but are not compatible with ASLR. ASLR is an exploit mitigation technique used by modern Windows platforms. For ASLR to function, Windows executables must contain a relocations table. Despite containing the Dynamic base PE header, which indicates ASLR compatibility, Windows executables produced by mingw-w64 have the relocations table stripped from them by default. This means that executables produced by mingw-w64 are vulnerable to return-oriented programming (ROP) attacks. Windows executables generated by mingw-w64 claim to be ASLR compatible, but are not. Vulnerabilities in such executables are more easily exploitable as a result.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Mingw-w64 | Mingw | 5.0.4 (including) | 5.0.4 (including) |
Mingw-w64 | Ubuntu | bionic | * |
Mingw-w64 | Ubuntu | cosmic | * |
Mingw-w64 | Ubuntu | disco | * |
Mingw-w64 | Ubuntu | eoan | * |
Mingw-w64 | Ubuntu | groovy | * |
Mingw-w64 | Ubuntu | hirsute | * |
Mingw-w64 | Ubuntu | impish | * |
Mingw-w64 | Ubuntu | kinetic | * |
Mingw-w64 | Ubuntu | lunar | * |
Mingw-w64 | Ubuntu | mantic | * |
Mingw-w64 | Ubuntu | trusty | * |
Mingw-w64 | Ubuntu | xenial | * |