{"id":33675,"date":"2026-01-01T17:54:09","date_gmt":"2026-01-01T17:54:09","guid":{"rendered":"http:\/\/localhost\/?p=33675"},"modified":"2026-01-01T17:54:09","modified_gmt":"2026-01-01T17:54:09","slug":"curl-mqtt-protocol-violation-integer-overflow-in-libcurl","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=33675","title":{"rendered":"curl: MQTT Protocol Violation &#038; Integer Overflow in libcurl_H1:3484319"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-01-01T23:25:46&#8243;,&#8221;description&#8221;:&#8221;## Executive Summary\\n\\n**Vulnerability Type:** CWE-190\\n**Component:** lib\/mqtt.c  \\n**Function:** mqtt_decode_len  \\n\\n**Affected Architectures:**\\n- **All architectures:** Protocol non-compliance leading to stream desynchronization\\n- **32-bit architectures:** Deterministic integer overflow in length decoding\\n\\nlibcurl does not correctly enforce the MQTT v3.1.1 specification limit for the \u201cRemaining Length\u201d field when decoding incoming packets. This allows malformed MQTT packets to be parsed incorrectly, leading to protocol desynchronization and potential denial of service. On 32-bit systems, the decoding logic additionally allows a deterministic integer overflow.\\n\\n&#8212;\\n\\n## Root Cause: Inconsistent Length Handling\\n\\nThe issue is caused by an inconsistency within `lib\/mqtt.c`.  \\nThe encoder correctly enforces the MQTT specification limit, while the decoder does not.\\n\\n### Correct Behavior (Encoding)\\n\\nIn `mqtt_encode_len`, the implementation explicitly limits the Remaining Length field to four bytes, as required by the specification:\\n\\n&#8220;`c\\nfor(i = 0; (len \\u003e 0) \\u0026\\u0026 (i \\u003c 4); i++) {\\n  unsigned char encoded;\\n  encoded = len % 0x80;\\n  \/* &#8230; *\/\\n}\\n&#8220;&#8220;\\n\\nThis ensures protocol compliance.\\n\\n### Incorrect Behavior (Decoding)\\n\\nIn contrast, `mqtt_decode_len` does not enforce the same limit:\\n\\n&#8220;`c\\nfor(i = 0; (i \\u003c buflen) \\u0026\\u0026 (encoded \\u0026 128); i++) {\\n  encoded = buf[i];\\n  len += (encoded \\u0026 127) * mult;\\n  mult *= 128;\\n}\\n&#8220;`\\n\\nThe loop continues as long as the continuation bit is set and input is available, allowing more than four bytes to be consumed as part of the Remaining Length field.\\n\\n&#8212;\\n\\n## Specification Violation\\n\\nAccording to the MQTT v3.1.1 specification, Section 2.2.3 (Remaining Length):\\n\\n\\u003e \u201cThe number of bytes in the Remaining Length field MUST NOT exceed four bytes.\u201d\\n\\nBy accepting and processing length fields longer than four bytes, libcurl violates the MQTT specification and enters an undefined protocol state.\\n\\n&#8212;\\n\\n## Integer Overflow on 32-bit Systems\\n\\nOn 32-bit architectures, `size_t` is a 32-bit unsigned integer.\\nThe variable `mult` is repeatedly multiplied by 128 during decoding.\\n\\nExample progression on a 32-bit system:\\n\\n| Iteration | mult value  | Operation | Result           |\\n| &#8212;&#8212;&#8211;: | &#8212;&#8212;&#8212;&#8211; | &#8212;&#8212;&#8212; | &#8212;&#8212;&#8212;&#8212;&#8212;- |\\n|         0 | 1           | 1 \u00d7 128   | 128              |\\n|         1 | 128         | 128 \u00d7 128 | 16,384           |\\n|         2 | 16,384      | \u00d7 128     | 2,097,152        |\\n|         3 | 2,097,152   | \u00d7 128     | 268,435,456      |\\n|         4 | 268,435,456 | \u00d7 128     | **Overflow \u2192 0** |\\n\\nAfter the overflow, `mult` becomes zero, and any further bytes consumed contribute nothing to the decoded length. This allows a large or malformed Remaining Length field to be partially \u201chidden\u201d while still advancing the input pointer.\\n\\n&#8212;\\n\\n## Impact\\n\\n# Impact\\n\\n### Protocol Desynchronization (All Architectures)\\n\\nBy consuming more than four bytes for the Remaining Length field, libcurl can become desynchronized from the MQTT stream. Bytes intended to be part of the payload or subsequent packets may instead be interpreted as length data, causing incorrect parsing of later packets.\\n\\n### Denial of Service\\n\\nThis desynchronization can result in malformed packet handling, unexpected connection termination, or repeated protocol errors such as `CURLE_WEIRD_SERVER_REPLY`.\\n\\nNo memory corruption or code execution is claimed.\\n\\n&#8212;\\n\\n## Recommended Fix\\n\\nThe decoding logic should explicitly enforce the four-byte limit defined by the MQTT specification.\\n\\nExample fix:\\n\\n&#8220;`c\\nfor(i = 0; (i \\u003c buflen) \\u0026\\u0026 (encoded \\u0026 128); i++) {\\n  if(i \\u003e= 4) {\\n    \/* Malformed Remaining Length *\/\\n    return 0; \/* or propagate an error to the caller *\/\\n  }\\n  encoded = buf[i];\\n  len += (encoded \\u0026 127) * mult;\\n  mult *= 128;\\n}\\n&#8220;`\\n\\nOptionally, the decoded length can also be checked against the implementation limit:\\n\\n&#8220;`c\\nif(len \\u003e MAX_MQTT_MESSAGE_SIZE)\\n  return 0;\\n&#8220;`\\n\\n&#8212;\\n\\n## Verification Notes\\n\\nThe issue was verified through code inspection and logic simulation, confirming that `mqtt_decode_len` accepts more than four bytes for the Remaining Length field and allows arithmetic overflow on 32-bit systems. Runtime exploitation was not required to demonstrate the protocol violation.\\n\\n&#8212;\\n\\n## Conclusion\\n\\nThis is a protocol parsing bug caused by missing enforcement of a mandatory MQTT specification limit. While it does not directly result in memory corruption, it allows malformed MQTT packets to desynchronize the client\u2019s protocol state and cause denial of service. Aligning the decoder with the existing encoder logic resolves the issue cleanly.\\n\\n&#8220;`&#8221;,&#8221;published&#8221;:&#8221;2026-01-01T21:51:13&#8243;,&#8221;modified&#8221;:&#8221;2026-01-01T22:50:02&#8243;,&#8221;type&#8221;:&#8221;hackerone&#8221;,&#8221;title&#8221;:&#8221;curl: MQTT Protocol Violation \\u0026 Integer Overflow in libcurl&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;H1:3484319&#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\/3484319&#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-01-01T23:25:46&#8243;,&#8221;description&#8221;:&#8221;## Executive Summary\\n\\n**Vulnerability Type:** CWE-190\\n**Component:** lib\/mqtt.c \\n**Function:** mqtt_decode_len \\n\\n**Affected Architectures:**\\n- **All architectures:** Protocol non-compliance leading to stream desynchronization\\n- **32-bit architectures:** Deterministic integer overflow in length&#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-33675","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: MQTT Protocol Violation &amp; Integer Overflow in libcurl_H1:3484319 - 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=33675\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"curl: MQTT Protocol Violation &amp; Integer Overflow in libcurl_H1:3484319 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-01-01T23:25:46&#8243;,&#8221;description&#8221;:&#8221;## Executive Summarynn**Vulnerability Type:** CWE-190n**Component:** lib\/mqtt.c n**Function:** mqtt_decode_len nn**Affected Architectures:**n- **All architectures:** Protocol non-compliance leading to stream desynchronizationn- **32-bit architectures:** Deterministic integer overflow in length...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=33675\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-01T17:54:09+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=33675#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33675\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"curl: MQTT Protocol Violation &#038; Integer Overflow in libcurl_H1:3484319\",\"datePublished\":\"2026-01-01T17:54:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33675\"},\"wordCount\":808,\"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=33675#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33675\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33675\",\"name\":\"curl: MQTT Protocol Violation & Integer Overflow in libcurl_H1:3484319 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-01-01T17:54:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33675#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=33675\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=33675#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"curl: MQTT Protocol Violation &#038; Integer Overflow in libcurl_H1:3484319\"}]},{\"@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: MQTT Protocol Violation & Integer Overflow in libcurl_H1:3484319 - 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=33675","og_locale":"en_US","og_type":"article","og_title":"curl: MQTT Protocol Violation & Integer Overflow in libcurl_H1:3484319 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-01-01T23:25:46&#8243;,&#8221;description&#8221;:&#8221;## Executive Summarynn**Vulnerability Type:** CWE-190n**Component:** lib\/mqtt.c n**Function:** mqtt_decode_len nn**Affected Architectures:**n- **All architectures:** Protocol non-compliance leading to stream desynchronizationn- **32-bit architectures:** Deterministic integer overflow in length...","og_url":"https:\/\/zero.redgem.net\/?p=33675","og_site_name":"zero redgem","article_published_time":"2026-01-01T17:54:09+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=33675#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=33675"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"curl: MQTT Protocol Violation &#038; Integer Overflow in libcurl_H1:3484319","datePublished":"2026-01-01T17:54:09+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=33675"},"wordCount":808,"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=33675#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=33675","url":"https:\/\/zero.redgem.net\/?p=33675","name":"curl: MQTT Protocol Violation & Integer Overflow in libcurl_H1:3484319 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-01-01T17:54:09+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=33675#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=33675"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=33675#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"curl: MQTT Protocol Violation &#038; Integer Overflow in libcurl_H1:3484319"}]},{"@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\/33675","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=33675"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/33675\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}