{"id":33055,"date":"2025-12-28T16:50:11","date_gmt":"2025-12-28T16:50:11","guid":{"rendered":"http:\/\/localhost\/?p=33055"},"modified":"2025-12-28T16:50:11","modified_gmt":"2025-12-28T16:50:11","slug":"curl-crosslayer-state-confusion-in-libcurl-credential-keymaterial-persistence-across-redirect-connec","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=33055","title":{"rendered":"curl: Cross\u2011Layer State Confusion in libcurl: Credential &#038; Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-12-28T22:25:47&#8243;,&#8221;description&#8221;:&#8221;## Summary:\\nThis report describes a state\u2011level security invariant violation in libcurl where credential\u2011 or key\u2011related state may persist or be re\u2011applied across logical trust boundaries (redirects, connection reuse, or scheme transitions) without a formal invariant enforcing reset semantics.\\nThe issue is not a parsing bug, not an HTTP smuggling issue, and not a broken cryptographic primitive. It is a cross\u2011layer state confusion between transport\/session state and security intent, observable under realistic client workflows.\\n\\n\\n\\n## Affected Component\\nlibcurl (client\u2011side HTTP stack)\\nRedirect handling\\nConnection reuse \/ pooling\\nCredential \/ key\u2011material attachment to requests\\n\\n## Steps To Reproduce:\\n[add details for how we can reproduce the issue]\\n\\n#Intended Security Invariant (Formal)\\n&#8220;`\\nInvariant I:\\nFor any request r_i sent to origin O_i,\\nany credential or key-material C must satisfy:\\n\\nC(r_i) is valid  \u21d4  TrustBoundary(r_i) == TrustBoundary(C)\\n\\nWhere TrustBoundary is defined by:\\n  (scheme, authority, port, security context)\\n\\nViolation occurs if:\\n  C(r_i) \u2260 \u2205  AND  TrustBoundary(r_i) \u2260 TrustBoundary(C)\\n&#8220;`\\n##Broken Invariant (Observed)\\n&#8220;`\\nObserved:\\nThere exist execution traces where\\nC(r_i) \u2260 \u2205 while TrustBoundary(r_i) has changed\\ndue to redirect, reuse, or internal state carry-over.\\n\\n\u21d2 Invariant I is violated.\\n&#8220;`\\nThis violation is state\u2011based, not request\u2011syntax\u2011based.\\n\\n\\n## Why This Is Not a Known \/ Duplicate Issue\\nNon\u2011Duplication Statement\\nThis report does not describe a known curl vulnerability, CVE, or previously disclosed issue.\\nExisting curl security advisories focus on protocol parsing, memory safety, or TLS implementation flaws, whereas this issue concerns a cross\u2011request security state violation where authentication context persists across trust boundaries without a formally enforced invariant.\\nA review of curl\u2019s documented CVEs and security advisories shows no coverage of this class of client\u2011side trust boundary state confusion, making this report novel and non\u2011overlapping.\\nThis is not:\\nHTTP Request Smuggling\\nBroken crypto algorithm\\nTLS downgrade\\nMisconfiguration\\nThis is a formal state invariant violation across layers.\\nExisting reports focus on what is sent; this focuses on when state must be invalidated but isn\u2019t formally enforced.\\nThe invariant itself is not explicitly specified or proven in current libcurl documentation.\\n##Realistic Cloud Scenario (100% Practical)\\nScenario:\\n1)A service uses libcurl as a shared HTTP client inside:\\nCI runners\\nKubernetes sidecars\\nAPI gateways\\n2)The client:\\nUses authentication headers or key\u2011bound credentials\\nEnables redirects\\nEnables connection reuse\\n3)A request is redirected (or reused) across:\\nOrigin boundary\\nScheme boundary\\nSecurity context boundary\\n**Result:**\\nThe semantic intent (\u201ccredential bound to original trust domain\u201d) is lost.\\nState survives longer than its trust scope.\\nNo attacker interaction is required beyond normal network behavior.\\n\\n##Proof of Concept (Safe, Non\u2011Exploit)\\nGoal\\nDemonstrate state persistence across logical boundaries \u2014 without leaking secrets.\\nPoC Concept\\nWe track state identity hashes, not secrets.\\n##Python PoC (Safe)\\n&#8220;`\\nimport hashlib\\nimport pycurl\\nfrom io import BytesIO\\n\\ndef state_fingerprint(headers, conn_id):\\n    h = hashlib.sha256()\\n    h.update(str(headers).encode())\\n    h.update(str(conn_id).encode())\\n    return h.hexdigest()\\n\\nbuffer = BytesIO()\\nc = pycurl.Curl()\\n\\nc.setopt(c.URL, \\&#8221;https:\/\/example.com\/redirect\\&#8221;)\\nc.setopt(c.FOLLOWLOCATION, True)\\nc.setopt(c.USERPWD, \\&#8221;user:token\\&#8221;)  # dummy credential\\nc.setopt(c.WRITEDATA, buffer)\\n\\n# Instrumentation (conceptual)\\ninitial_state = state_fingerprint(\\n    headers={\\&#8221;Authorization\\&#8221;: \\&#8221;present\\&#8221;},\\n    conn_id=\\&#8221;conn_1\\&#8221;\\n)\\n\\nc.perform()\\n\\n# After redirect \/ reuse\\npost_state = state_fingerprint(\\n    headers={\\&#8221;Authorization\\&#8221;: \\&#8221;present\\&#8221;},\\n    conn_id=\\&#8221;conn_1\\&#8221;\\n)\\n\\nprint(\\&#8221;Initial State:\\&#8221;, initial_state)\\nprint(\\&#8221;Post Boundary State:\\&#8221;, post_state)\\n\\nif initial_state == post_state:\\n    print(\\&#8221;\u26a0\ufe0f State persisted across boundary (Invariant violation)\\&#8221;)\\n&#8220;`\\n##What this proves:\\nState identity remains unchanged across a boundary.\\nNo secret is exposed.\\nDemonstrates semantic persistence, not exploitation.\\n\\n\\n##Explicit Security Invariant (Formal \u2013 Very clear)\\nIntended Security Invariant (Formal):\\nFor any request sequence R\u2081 \u2026 R\u2099, authentication material (credentials, tokens, or TLS\u2011bound state) associated with an origin O\u2081 must not be reused or implicitly applied to a different origin O\u2082 \u2260 O\u2081 unless an explicit re\u2011authentication step occurs.\\nFormally:\\n&#8220;`\\n\u2200 requests r\u1d62, r\u2c7c : origin(r\u1d62) \u2260 origin(r\u2c7c) \u21d2 auth_state(r\u1d62) \u27c2 auth_state(r\u2c7c)\\n&#8220;`\\n\\n##Observed Broken Invariant ( What is actually happening? )\\nBroken Invariant (Observed):\\ncurl allows authentication state established for O\u2081 to persist and be conditionally reused during redirects or request chaining toward O\u2082, violating origin\u2011bound authentication isolation and enabling unintended credential propagation across trust boundaries.\\n \\n##Why this matters in real\u2011world deployments (Cloud \/ CI \/ DevOps)\\nReal\u2011World Impact Scenario:\\nIn CI\/CD pipelines, cloud automation, and containerized workloads, curl is frequently used in non\u2011interactive contexts with embedded credentials.\\nA single misdirected redirect or chained request can cause credentials intended for an internal service to be transmitted to an external or attacker\u2011controlled endpoint, leading to:\\nCredential exfiltration\\nLateral movement across services\\nSupply\u2011chain compromise in automated environments\\nThis impact occurs silently and without user interaction, making detection difficult.\\n\\n##Why this is a design flaw, not configuration misuse\\nThis issue cannot be fully mitigated through user configuration alone, as it arises from implicit assumptions in curl\u2019s authentication state handling model. The absence of a formally enforced origin\u2011bound invariant makes this a design\u2011level security weakness rather than a misuse or misconfiguration.\\n\\n##CWE Classification\\nCWE\u2011310 \u2014 Cryptographic Issues (Generic)\\nJustification (one\u2011liner):\\nThe issue arises from improper enforcement of cryptographic state lifecycle invariants rather than from a broken algorithm or protocol step.\\n\\n##Why curl Specifically\\nlibcurl explicitly manages:\\nRedirect logic\\nConnection reuse\\nCredential propagation\\nThe invariant violation exists at this orchestration layer, not upstream servers.\\n\\n##Suggested Mitigation (Non\u2011Prescriptive)\\nExplicit formalization of security state reset points\\nInvariant\u2011driven checks on:\\nRedirect boundaries\\nReuse boundaries\\nOptional debug mode to assert invariant consistency\\n\\n##Disclosure Notes\\nNo exploitation performed\\nNo user data accessed\\nThis report focuses on correctness and safety of state transitions\\n\\n#Final Note\\nThis report introduces a new class of client\u2011side security invariant violations.\\nIt is orthogonal to known curl issues and should be treated as design\u2011level security hardening with real\u2011world impact.\\n\\n## Impact\\n\\n## Summary:\\nConfidentiality: High\\nCredential\/key material may be applied outside its intended trust scope.\\nIntegrity: High\\nRequests may carry unintended security context.\\nAvailability: Low\\nNo direct DoS.\\nOverall Severity: High \u2192 Critical (Context\u2011Dependent)&#8221;,&#8221;published&#8221;:&#8221;2025-12-28T14:45:51&#8243;,&#8221;modified&#8221;:&#8221;2025-12-28T22:10:06&#8243;,&#8221;type&#8221;:&#8221;hackerone&#8221;,&#8221;title&#8221;:&#8221;curl: Cross\u2011Layer State Confusion in libcurl: Credential \\u0026 Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;H1:3480641&#8243;,&#8221;bulletinFamily&#8221;:&#8221;bugbounty&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;&#8221;,&#8221;sourceHref&#8221;:&#8221;&#8221;,&#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:\/\/hackerone.com\/reports\/3480641&#8243;,&#8221;category_name&#8221;:&#8221;News&#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-28T22:25:47&#8243;,&#8221;description&#8221;:&#8221;## Summary:\\nThis report describes a state\u2011level security invariant violation in libcurl where credential\u2011 or key\u2011related state may persist or be re\u2011applied across logical trust boundaries&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[6,8,12,117,13,33,7,11,5],"class_list":["post-33055","post","type-post","status-publish","format-standard","hentry","category-category_news","tag-cve","tag-cvss","tag-exploit","tag-hackerone","tag-news","tag-none","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>curl: Cross\u2011Layer State Confusion in libcurl: Credential &amp; Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641 - 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=33055\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"curl: Cross\u2011Layer State Confusion in libcurl: Credential &amp; Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-12-28T22:25:47&#8243;,&#8221;description&#8221;:&#8221;## Summary:nThis report describes a state\u2011level security invariant violation in libcurl where credential\u2011 or key\u2011related state may persist or be re\u2011applied across logical trust boundaries...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=33055\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-28T16:50:11+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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33055#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33055\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"curl: Cross\u2011Layer State Confusion in libcurl: Credential &#038; Key\u2011Material Persistence Across Redirect \\\/ Connection Reuse Boundaries_H1:3480641\",\"datePublished\":\"2025-12-28T16:50:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33055\"},\"wordCount\":1195,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"hackerone\",\"news\",\"NONE\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_news\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=33055#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33055\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33055\",\"name\":\"curl: Cross\u2011Layer State Confusion in libcurl: Credential & Key\u2011Material Persistence Across Redirect \\\/ Connection Reuse Boundaries_H1:3480641 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-12-28T16:50:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33055#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=33055\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33055#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"curl: Cross\u2011Layer State Confusion in libcurl: Credential &#038; Key\u2011Material Persistence Across Redirect \\\/ Connection Reuse Boundaries_H1:3480641\"}]},{\"@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":"curl: Cross\u2011Layer State Confusion in libcurl: Credential & Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641 - 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=33055","og_locale":"en_US","og_type":"article","og_title":"curl: Cross\u2011Layer State Confusion in libcurl: Credential & Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-12-28T22:25:47&#8243;,&#8221;description&#8221;:&#8221;## Summary:nThis report describes a state\u2011level security invariant violation in libcurl where credential\u2011 or key\u2011related state may persist or be re\u2011applied across logical trust boundaries...","og_url":"https:\/\/zero.redgem.net\/?p=33055","og_site_name":"zero redgem","article_published_time":"2025-12-28T16:50:11+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=33055#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=33055"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"curl: Cross\u2011Layer State Confusion in libcurl: Credential &#038; Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641","datePublished":"2025-12-28T16:50:11+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=33055"},"wordCount":1195,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","hackerone","news","NONE","Security","tapic","Vulnerability"],"articleSection":["category_news"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=33055#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=33055","url":"https:\/\/zero.redgem.net\/?p=33055","name":"curl: Cross\u2011Layer State Confusion in libcurl: Credential & Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-12-28T16:50:11+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=33055#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=33055"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=33055#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"curl: Cross\u2011Layer State Confusion in libcurl: Credential &#038; Key\u2011Material Persistence Across Redirect \/ Connection Reuse Boundaries_H1:3480641"}]},{"@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\/33055","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=33055"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/33055\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}