{"id":20778,"date":"2025-10-09T01:40:42","date_gmt":"2025-10-09T01:40:42","guid":{"rendered":"http:\/\/localhost\/?p=20778"},"modified":"2025-10-09T01:40:42","modified_gmt":"2025-10-09T01:40:42","slug":"curl-apple-sectrust-legacy-path-accepts-untrusted-certificates-on-pre-1014-macosios-when-built-with","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=20778","title":{"rendered":"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2025-10-09T06:25:44&#8243;,&#8221;description&#8221;:&#8221;## Summary:\\nWhen libcurl is built with USE_APPLE_SECTRUST and runs on Apple OS versions that lack SecTrustEvaluateWithError (macOS \\u003c10.14 \/ iOS \\u003c12), the legacy verification path miscompares OSStatus to SecTrustResultType and never checks the SecTrust result. This can cause untrusted certificates to be accepted.\\n\\n[Statement clarifying if an AI was used to find the issue or generate the report]\\nThis report was prepared with assistance from an AI code analysis tool; the core diagnosis and scope were validated by a combination of classical software, manual inspection of the code, and AI.\\n\\n## Affected version\\nReproduced on current master (as of 2025\u201110\u201107). Affects builds that enable `USE_APPLE_SECTRUST` and run on macOS \\u003c10.14 \/ iOS \\u003c12. The defect is in `lib\/vtls\/apple.c` and is independent of the TLS backend choice (it is reached via OpenSSL or GnuTLS when the native CA store is used).\\n\\n## Steps To Reproduce:\\n\\n### Code Verification (Any modern macOS):\\n\\n1. Inspect the vulnerable code in `lib\/vtls\/apple.c` lines 263-275\\n2. Observe the type confusion: `status` (OSStatus) is compared to `kSecTrustResultType` enum values\\n3. Create test program demonstrating the logic bug (see verification artifacts)\\n4. Create untrusted certificate and verify system curl rejects it\\n\\n### Runtime Exploitation (Requires macOS \\u003c10.14 or iOS \\u003c12):\\n\\n**Note:** This requires an actual legacy system. Building with \\n`-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13` on modern macOS will NOT trigger \\nthe bug at runtime due to `__builtin_available` checks.\\n\\n1. On a system running macOS 10.13.6 (High Sierra) or earlier, build curl:\\n   &#8220;`\\n   cmake -DUSE_APPLE_SECTRUST=ON -DCURL_USE_OPENSSL=ON \\\\\\n         -DCMAKE_BUILD_TYPE=Release ..\\n   &#8220;`\\n\\n2. Create untrusted certificates (as described)\\n\\n3. Start test server: `openssl s_server -accept 8443 -www -key leaf.key -cert leaf.pem`\\n\\n4. Test: `.\/src\/curl -v https:\/\/localhost:8443\/`\\n   &#8211; **Expected secure behavior:** Connection rejected\\n   &#8211; **Actual buggy behavior:** Connection succeeds\\n\\n### Alternative Verification Without Legacy Hardware:\\n\\nSince the bug is a clear logic error (comparing wrong variable), it can be \\nconfirmed through:\\n- Static code analysis (lines 270-271 compare `status` instead of `sec_result`)\\n- Logic demonstration (status=0 never equals kSecTrustResultUnspecified=4)\\n- The fact that `result` remains `CURLE_OK` when the conditions fail\\n\\n## Supporting Material\/References:\\n\\nProblematic code (legacy fallback uses SecTrustEvaluate; compares `status` to SecTrustResultType instead of checking `sec_result`):\\n\\n&#8220;`263:275:lib\/vtls\/apple.c\\n#ifndef REQUIRES_SecTrustEvaluateWithError\\nSecTrustResultType sec_result;\\nstatus = SecTrustEvaluate(trust, \\u0026sec_result);\\n\\nif(status != noErr) {\\n  failf(data, \\&#8221;Apple SecTrust verification failed: error %i\\&#8221;, (int)status);\\n}\\nelse if((status == kSecTrustResultUnspecified) ||\\n        (status == kSecTrustResultProceed)) {\\n  \/* \\&#8221;unspecified\\&#8221; means system-trusted with no explicit user setting *\/\\n  result = CURLE_OK;\\n}\\n#endif \/* REQUIRES_SecTrustEvaluateWithError *\/\\n&#8220;`\\n\\nCorrect modern code path (only available on 10.14+\/iOS 12+):\\n&#8220;`238:240:lib\/vtls\/apple.c\\nresult = SecTrustEvaluateWithError(trust, \\u0026error) ?\\n         CURLE_OK : CURLE_PEER_FAILED_VERIFICATION;\\n&#8220;`\\n\\nBehavioral gates where Apple SecTrust verification is invoked:\\n- OpenSSL:\\n&#8220;`5165:5177:lib\/vtls\/openssl.c\\nif(!verified \\u0026\\u0026\\n   conn_config-\\u003everifypeer \\u0026\\u0026 ssl_config-\\u003enative_ca_store \\u0026\\u0026\\n   (ossl_verify == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY)) {\\n  result = ossl_apple_verify(&#8230;, \\u0026verified);\\n  &#8230;\\n}\\n&#8220;`\\n- GnuTLS:\\n&#8220;`1666:1676:lib\/vtls\/gtls.c\\nif(!verified \\u0026\\u0026 ssl_config-\\u003enative_ca_store \\u0026\\u0026\\n   (verify_status \\u0026 GNUTLS_CERT_SIGNER_NOT_FOUND)) {\\n  result = glts_apple_verify(&#8230;, \\u0026verified);\\n  &#8230;\\n}\\n&#8220;`\\n&#8220;`\\n\\n## Impact\\n\\n## Summary:\\nOn affected configurations (USE_APPLE_SECTRUST builds running on pre\u201110.14 Apple OS with native CA verification engaged), an attacker can bypass TLS certificate validation. This enables Man\u2011in\u2011the\u2011Middle interception, compromising confidentiality and integrity of HTTPS and other TLS\u2011protected transfers.\\n\\nScope caveats:\\n- Feature is compile\u2011time gated (`USE_APPLE_SECTRUST`) and off by default in CMake.\\n- Runtime reachability depends on backend conditions (OpenSSL \u201cunable to get local issuer certificate\u201d or GnuTLS \u201csigner not found\u201d).\\n- The bug only affects older Apple OS versions that lack `SecTrustEvaluateWithError`; modern Apple OS uses the correct code path.&#8221;,&#8221;published&#8221;:&#8221;2025-10-07T15:37:19&#8243;,&#8221;modified&#8221;:&#8221;2025-10-09T06:22:03&#8243;,&#8221;type&#8221;:&#8221;hackerone&#8221;,&#8221;title&#8221;:&#8221;curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;H1:3374554&#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\/3374554&#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-10-09T06:25:44&#8243;,&#8221;description&#8221;:&#8221;## Summary:\\nWhen libcurl is built with USE_APPLE_SECTRUST and runs on Apple OS versions that lack SecTrustEvaluateWithError (macOS \\u003c10.14 \/ iOS \\u003c12), the legacy verification path&#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-20778","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: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554 - 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=20778\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2025-10-09T06:25:44&#8243;,&#8221;description&#8221;:&#8221;## Summary:nWhen libcurl is built with USE_APPLE_SECTRUST and runs on Apple OS versions that lack SecTrustEvaluateWithError (macOS u003c10.14 \/ iOS u003c12), the legacy verification path...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=20778\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-09T01:40:42+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=20778#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=20778\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\\\/iOS when built with USE_APPLE_SECTRUST_H1:3374554\",\"datePublished\":\"2025-10-09T01:40:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=20778\"},\"wordCount\":817,\"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=20778#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=20778\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=20778\",\"name\":\"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\\\/iOS when built with USE_APPLE_SECTRUST_H1:3374554 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2025-10-09T01:40:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=20778#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=20778\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=20778#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\\\/iOS when built with USE_APPLE_SECTRUST_H1:3374554\"}]},{\"@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: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554 - 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=20778","og_locale":"en_US","og_type":"article","og_title":"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2025-10-09T06:25:44&#8243;,&#8221;description&#8221;:&#8221;## Summary:nWhen libcurl is built with USE_APPLE_SECTRUST and runs on Apple OS versions that lack SecTrustEvaluateWithError (macOS u003c10.14 \/ iOS u003c12), the legacy verification path...","og_url":"https:\/\/zero.redgem.net\/?p=20778","og_site_name":"zero redgem","article_published_time":"2025-10-09T01:40:42+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=20778#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=20778"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554","datePublished":"2025-10-09T01:40:42+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=20778"},"wordCount":817,"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=20778#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=20778","url":"https:\/\/zero.redgem.net\/?p=20778","name":"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2025-10-09T01:40:42+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=20778#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=20778"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=20778#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"curl: Apple SecTrust legacy path accepts untrusted certificates on pre-10.14 macOS\/iOS when built with USE_APPLE_SECTRUST_H1:3374554"}]},{"@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\/20778","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=20778"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/20778\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20778"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20778"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}