{"id":66080,"date":"2026-06-26T10:41:10","date_gmt":"2026-06-26T10:41:10","guid":{"rendered":"https:\/\/zero.redgem.net\/?p=66080"},"modified":"2026-06-26T10:41:10","modified_gmt":"2026-06-26T10:41:10","slug":"curl-mbedtls-wolfssl-rustls-backends-silently-skip-hostname-verification-when-curloptsslverifypeer0","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=66080","title":{"rendered":"curl: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-06-26T14:36:52&#8243;,&#8221;description&#8221;:&#8221;## Summary\\n\\nWhen an application sets `CURLOPT_SSL_VERIFYPEER=0` while keeping\\n`CURLOPT_SSL_VERIFYHOST=2` (the default), the mbedTLS, wolfSSL, and rustls\\nTLS backends silently skip the hostname-vs-certificate check. The OpenSSL,\\nGnuTLS, and Schannel backends correctly preserve hostname checking under\\nthe same configuration.\\n\\n`docs\/libcurl\/opts\/CURLOPT_SSL_VERIFYPEER.md` lines 57-59 explicitly state:\\n\\n\\u003e *\\&#8221;The check that the host name in the certificate is valid for the\\n\\u003e hostname you are connecting to is **done independently of the\\n\\u003e CURLOPT_SSL_VERIFYPEER(3) option**.\\&#8221;*\\n\\nResult: an MITM holding any valid certificate (the CN does not need to\\nmatch the requested host) can intercept TLS sessions to any HTTPS target\\nwhen an application disables peer chain verification \u2014 a common pattern\\nwith self-signed \/ internal-CA deployments. `Authorization`, `Cookie`, and\\nPOST bodies all leak to the attacker.\\n\\n## Affected backends\\n\\n&#8220;`\\n$ src\/curl &#8211;version    # all four built from the same source tree\\ncurl 8.21.1-DEV (x86_64-pc-linux-gnu) libcurl\/8.21.1-DEV OpenSSL\/3.5.6   \u2190 rc=60 (correct)\\ncurl 8.21.1-DEV (x86_64-pc-linux-gnu) libcurl\/8.21.1-DEV mbedTLS\/3.6.5    \u2190 rc=0 (BUG)\\ncurl 8.21.1-DEV (x86_64-pc-linux-gnu) libcurl\/8.21.1-DEV wolfSSL\/5.7.2    \u2190 rc=0 (BUG)\\ncurl 8.21.1-DEV (x86_64-pc-linux-gnu) libcurl\/8.21.1-DEV rustls-ffi\/0.15.3 \u2190 rc=0 (BUG)\\n&#8220;`\\n\\nAffected versions: **all curl releases through HEAD master** for the\\nmbedTLS, wolfSSL, and rustls backends. The mbedTLS code path traces to\\ncommit `88cae145509` (2024-08-17, \\&#8221;mbedtls: add more informative logging\\&#8221;),\\nshipped in 8.10.0 and unchanged through current master.\\n\\nThe relevant code sites:\\n\\n- **mbedTLS** \u2014 `lib\/vtls\/mbedtls.c::mbed_verify_cb`:\\n  &#8220;`c\\n  if(!conn_config-\\u003everifypeer)\\n      *flags = 0;                \/* clears CN_MISMATCH along with chain flags *\/\\n  else if(!conn_config-\\u003everifyhost)\\n      *flags \\u0026= ~MBEDTLS_X509_BADCERT_CN_MISMATCH;\\n  &#8220;`\\n  `*flags = 0` zeroes the entire mbedTLS verify-flag bitmap, including\\n  `MBEDTLS_X509_BADCERT_CN_MISMATCH`. mbedTLS uses\\n  `MBEDTLS_SSL_VERIFY_REQUIRED` and trusts whatever flags this callback\\n  returns.\\n\\n- **wolfSSL** \u2014 `lib\/vtls\/wolfssl.c::Curl_wssl_ctx_init`:\\n  &#8220;`c\\n  wolfSSL_CTX_set_verify(wctx-\\u003essl_ctx, conn_config-\\u003everifypeer ?\\n                         WOLFSSL_VERIFY_PEER : WOLFSSL_VERIFY_NONE, NULL);\\n  &#8220;`\\n  When `verifypeer=0`, `WOLFSSL_VERIFY_NONE` makes wolfSSL skip the entire\\n  certificate-validation pipeline including the hostname check registered\\n  by `wolfSSL_check_domain_name` further down.\\n\\n- **rustls** \u2014 `lib\/vtls\/rustls.c::cr_init_backend` (line 1048-1050):\\n  &#8220;`c\\n  if(!conn_config-\\u003everifypeer) {\\n      rustls_client_config_builder_dangerous_set_certificate_verifier(\\n          config_builder, cr_verify_none);\\n  }\\n  &#8220;`\\n  `cr_verify_none` (line 389) is a callback that returns `RUSTLS_RESULT_OK`\\n  unconditionally. It replaces rustls&#8217;s default `ServerCertVerifier`, which\\n  in rustls performs both chain validation **and** hostname matching against\\n  the SNI value passed to `rustls_client_connection_new`. Replacing it\\n  disables both at once.\\n\\n## Steps to reproduce\\n\\nA self-contained Docker reproduction package is attached\\n(`verifyhost-repro.tar.gz`). It pulls the latest curl source from\\n`github.com\/curl\/curl.git`, builds four libcurls from the same source tree\\n(OpenSSL, mbedTLS, wolfSSL, rustls backends), runs a TLS server presenting\\na wrong-CN certificate, and drives a libcurl client at all four backends.\\n\\n&#8220;`sh\\ntar xzf verifyhost-repro.tar.gz\\ncd docker\\n.\/build_and_run.sh\\n&#8220;`\\n\\n(Pass a tag\/branch\/SHA as arg to pin: `.\/build_and_run.sh curl-8_21_0`.)\\n\\nExpected output:\\n\\n&#8220;`\\n================================================================\\n  curl source commit:       \\u003cSHA from official curl\/curl repo\\u003e\\n  OpenSSL curl &#8211;version:   curl 8.21.1-DEV libcurl\/8.21.1-DEV OpenSSL\/3.5.6 &#8230;\\n  mbedTLS curl &#8211;version:   curl 8.21.1-DEV libcurl\/8.21.1-DEV mbedTLS\/3.6.5 &#8230;\\n  wolfSSL curl &#8211;version:   curl 8.21.1-DEV libcurl\/8.21.1-DEV wolfSSL\/5.7.2 &#8230;\\n  rustls  curl &#8211;version:   curl 8.21.1-DEV libcurl\/8.21.1-DEV rustls-ffi\/0.15.3 &#8230;\\n================================================================\\n\\n============== OpenSSL backend (control) \u2014 expect rc=60 ==============\\n* SSL: certificate subject name &#8216;wrong.example.com&#8217; does not match target hostname &#8216;target.example.com&#8217;\\n=== RESULT: rc=60 (SSL peer certificate or SSH remote key was not OK) ===\\n\\n============== mbedTLS backend \u2014 expect rc=0 (BUG) ==============\\n\\u003c HTTP\/1.1 200 OK\\n\\u003c Content-Length: 7\\n=== RESULT: rc=0 (No error) ===\\n\\n============== wolfSSL backend \u2014 expect rc=0 (BUG) ==============\\n\\u003c HTTP\/1.1 200 OK\\n=== RESULT: rc=0 (No error) ===\\n\\n============== rustls backend \u2014 expect rc=0 (BUG) ==============\\n\\u003c HTTP\/1.1 200 OK\\n=== RESULT: rc=0 (No error) ===\\n&#8220;`\\n\\nThe OpenSSL run is the control: same source tree, same flags, same PoC\\ncode \u2014 only the TLS backend differs. Its `rc=60` confirms that the PoC\\ncorrectly enforces `verifyhost=2` and that the `rc=0` on the other three\\nbackends is a backend defect, not a PoC mistake.\\n\\n## Files in the package\\n\\n- `Dockerfile` \u2014 Debian trixie + mbedTLS 3.6.5 + OpenSSL 3.x + wolfSSL 5.7.2 + rustls-ffi 0.15.3\\n- `build_and_run.sh` \u2014 wrapper: `docker build` then `docker run`\\n- `run.sh` \u2014 entrypoint inside container; drives all four scenarios\\n- `poc.c` \u2014 minimal libcurl PoC\\n- `poc_server.py` \u2014 Python TLS server presenting CN=wrong.example.com\\n\\n## Credits\\nReported by: b1gtang on hackerone (SecBuddyF @ Tencent KeenLab)\\n\\n## Impact\\n\\n## Summary:\\n\\nAn MITM on the network path can fully impersonate the intended HTTPS\\nserver using any certificate (no need to match the requested hostname),\\ndecrypting and modifying the entire TLS session. The application has\\nopted out of chain verification but explicitly kept hostname verification\\non per the documented contract; libcurl silently disables both.&#8221;,&#8221;published&#8221;:&#8221;2026-06-26T08:40:39&#8243;,&#8221;modified&#8221;:&#8221;2026-06-26T14:34:51&#8243;,&#8221;type&#8221;:&#8221;hackerone&#8221;,&#8221;title&#8221;:&#8221;curl: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0&#8243;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;H1:3826199&#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\/3826199&#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;2026-06-26T14:36:52&#8243;,&#8221;description&#8221;:&#8221;## Summary\\n\\nWhen an application sets `CURLOPT_SSL_VERIFYPEER=0` while keeping\\n`CURLOPT_SSL_VERIFYHOST=2` (the default), the mbedTLS, wolfSSL, and rustls\\nTLS backends silently skip the hostname-vs-certificate check. The OpenSSL,\\nGnuTLS, and Schannel&#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-66080","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: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199 - 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=66080\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"curl: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-06-26T14:36:52&#8243;,&#8221;description&#8221;:&#8221;## SummarynnWhen an application sets `CURLOPT_SSL_VERIFYPEER=0` while keepingn`CURLOPT_SSL_VERIFYHOST=2` (the default), the mbedTLS, wolfSSL, and rustlsnTLS backends silently skip the hostname-vs-certificate check. The OpenSSL,nGnuTLS, and Schannel...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=66080\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-26T10:41:10+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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66080#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66080\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"curl: mbedTLS \\\/ wolfSSL \\\/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199\",\"datePublished\":\"2026-06-26T10:41:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66080\"},\"wordCount\":990,\"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=66080#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66080\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66080\",\"name\":\"curl: mbedTLS \\\/ wolfSSL \\\/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-06-26T10:41:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66080#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=66080\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=66080#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"curl: mbedTLS \\\/ wolfSSL \\\/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199\"}]},{\"@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: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199 - 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=66080","og_locale":"en_US","og_type":"article","og_title":"curl: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-06-26T14:36:52&#8243;,&#8221;description&#8221;:&#8221;## SummarynnWhen an application sets `CURLOPT_SSL_VERIFYPEER=0` while keepingn`CURLOPT_SSL_VERIFYHOST=2` (the default), the mbedTLS, wolfSSL, and rustlsnTLS backends silently skip the hostname-vs-certificate check. The OpenSSL,nGnuTLS, and Schannel...","og_url":"https:\/\/zero.redgem.net\/?p=66080","og_site_name":"zero redgem","article_published_time":"2026-06-26T10:41:10+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=66080#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=66080"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"curl: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199","datePublished":"2026-06-26T10:41:10+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=66080"},"wordCount":990,"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=66080#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=66080","url":"https:\/\/zero.redgem.net\/?p=66080","name":"curl: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-06-26T10:41:10+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=66080#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=66080"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=66080#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"curl: mbedTLS \/ wolfSSL \/ rustls backends silently skip hostname verification when CURLOPT_SSL_VERIFYPEER=0_H1:3826199"}]},{"@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\/66080","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=66080"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/66080\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}