{"id":819,"date":"2016-11-16T16:01:32","date_gmt":"2016-11-16T14:01:32","guid":{"rendered":"http:\/\/blogs.gentoo.org\/ago\/?p=819"},"modified":"2016-11-17T11:31:23","modified_gmt":"2016-11-17T09:31:23","slug":"jasper-multiple-assertion-failure","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/ago\/2016\/11\/16\/jasper-multiple-assertion-failure\/","title":{"rendered":"jasper: multiple Assertion failure"},"content":{"rendered":"<p><strong>Description<\/strong>:<br \/>\n<a href=\"http:\/\/www.ece.uvic.ca\/~frodo\/jasper\/\">jasper<\/a> is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard.<\/p>\n<p>A fuzzing revealed multiple assertion failures.<br \/>\nSince the jasper&#8217;s maintainer releases frequently, the fuzzing was done across multiple versions. The &#8220;affected version&#8221; tag means that it was tested and discovered on that version, so previously versions may be affected too.<br \/>\nThe latest failures are unfixed. I will update the post when upstream will work on them.<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.12<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.12\/work\/jasper-1.900.12\/src\/libjasper\/base\/jas_seq.c:90: jas_matrix&lt;= yend&#039; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/d91198abd00fc435a397fe6bad906a4c1748e9cf\">https:\/\/github.com\/mdadams\/jasper\/commit\/d91198abd00fc435a397fe6bad906a4c1748e9cf<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00003-jasper-assert-jas_matrix_t\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00003-jasper-assert-jas_matrix_t<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9387<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\n\/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/ras\/ras_dec.c:330: int ras_getcmap(jas_stream_t *, ras_hdr_t *, ras_cmap_t *): Assertion `numcolors &lt;= 256&#039; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/411a4068f8c464e883358bf403a3e25158863823\">https:\/\/github.com\/mdadams\/jasper\/commit\/411a4068f8c464e883358bf403a3e25158863823<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.14<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00005-jasper-assert-ras_getcmap\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00005-jasper-assert-ras_getcmap<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9388<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/jpc\/jpc_mct.c:146: void jpc_irct(jas_matrix_t *, jas_matrix_t *, jas_matrix_t *): Assertion `((c1)-&gt;numrows_) == numrows &amp;&amp; ((c1)-&gt;numcols_) == numcols &amp;&amp; ((c2)-&gt;numrows_) == numrows &amp;&amp; ((c2)-&gt;numcols_) == numcols&#8217; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/dee11ec440d7908d1daf69f40a3324b27cf213ba\">https:\/\/github.com\/mdadams\/jasper\/commit\/dee11ec440d7908d1daf69f40a3324b27cf213ba<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.14<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00006-jasper-assert-jpc_irct\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00006-jasper-assert-jpc_irct<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9389<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\ntype = 0xff76 (UNKNOWN); len = 20;10 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 imginfo: \/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/jpc\/jpc_mct.c:233: void jpc_iict(jas_matrix_t *, jas_matrix_t *, jas_matrix_t *): Assertion `((c1)-&gt;numcols_) == numcols &amp;&amp; ((c2)-&gt;numcols_) == numcols&#8217; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/dee11ec440d7908d1daf69f40a3324b27cf213ba\">https:\/\/github.com\/mdadams\/jasper\/commit\/dee11ec440d7908d1daf69f40a3324b27cf213ba<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.14<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00008-jasper-assert-jpc_iict\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00008-jasper-assert-jpc_iict<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9389<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/base\/jas_seq.c:90: jas_matrix_t *jas_seq2d_create(int, int, int, int): Assertion `xstart &lt;= xend &amp;&amp; ystart &lt;= yend&#039; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/ba2b9d000660313af7b692542afbd374c5685865\">https:\/\/github.com\/mdadams\/jasper\/commit\/ba2b9d000660313af7b692542afbd374c5685865<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.14<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00007-jasper-assert-jas_matrix_t\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00007-jasper-assert-jas_matrix_t<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9390<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\ntype = 0xff05 (UNKNOWN); len = 20;01 40 40 00 f0 00 00 00 00 00 00 00 00 00 00 00 00 00 imginfo: \/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/jpc\/jpc_bs.c:197: long jpc_bitstream_getbits(jpc_bitstream_t *, int): Assertion `n &gt;= 0 &amp;&amp; n &lt; 32&#039; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/1e84674d95353c64e5c4c0e7232ae86fd6ea813b\">https:\/\/github.com\/mdadams\/jasper\/commit\/1e84674d95353c64e5c4c0e7232ae86fd6ea813b<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.14<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00014-jasper-assert-jpc_bitstream_getbits\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00014-jasper-assert-jpc_bitstream_getbits<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9391<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/jpc\/jpc_dec.c:1637: void calcstepsizes(uint_fast16_t, int, uint_fast16_t *): Assertion `!((expn + (numrlvls &#8211; 1) &#8211; (numrlvls &#8211; 1 &#8211; ((bandno &gt; 0) ? ((bandno + 2) \/ 3) : (0)))) &amp; (~0x1f))&#8217; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/f7038068550fba0e41e1d0c355787f1dcd5bf330\">https:\/\/github.com\/mdadams\/jasper\/commit\/f7038068550fba0e41e1d0c355787f1dcd5bf330<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.17<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00012-jasper-assert-calcstepsizes\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00012-jasper-assert-calcstepsizes<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9392<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\ntype = 0xff41 (UNKNOWN); len = 20;02 40 40 00 00 00 00 ee ff 00 00 00 00 24 00 00 00 00 imginfo: \/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/jpc\/jpc_t2cod.c:297: int jpc_pi_nextrpcl(jpc_pi_t *): Assertion `pi-&gt;prcno pirlvl-&gt;numprcs&#8217; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/f7038068550fba0e41e1d0c355787f1dcd5bf330\">https:\/\/github.com\/mdadams\/jasper\/commit\/f7038068550fba0e41e1d0c355787f1dcd5bf330<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.17<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00013-jasper-assert-jpc_pi_nextrpcl\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00013-jasper-assert-jpc_pi_nextrpcl<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9393<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.15<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.15\/work\/jasper-1.900.15\/src\/libjasper\/base\/jas_seq.c:90: jas_matrix_t *jas_seq2d_create(int, int, int, int): Assertion `xstart &lt;= xend &amp;&amp; ystart &lt;= yend&#039; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/f7038068550fba0e41e1d0c355787f1dcd5bf330\">https:\/\/github.com\/mdadams\/jasper\/commit\/f7038068550fba0e41e1d0c355787f1dcd5bf330<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.17<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00016-jasper-assert-jas_matrix_t\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00016-jasper-assert-jas_matrix_t<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9394<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.22<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nwarning: trailing garbage in marker segment (9 bytes)<br \/>\nwarning: trailing garbage in marker segment (40 bytes)<br \/>\nwarning: ignoring unknown marker segment (0xffee)<br \/>\ntype = 0xffee (UNKNOWN); len = 23;1f 32 ff ff ff 00 10 00 3d 4d 00 01 32 ff 00 e4 00 10 00 00 4f warning: trailing garbage in marker segment (34 bytes)<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.22\/work\/jasper-1.900.22\/src\/libjasper\/base\/jas_seq.c:90: jas_matrix_t *jas_seq2d_create(int, int, int, int): Assertion `xstart &lt;= xend &amp;&amp; ystart &lt;= yend&#039; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/mdadams\/jasper\/commit\/d42b2388f7f8e0332c846675133acea151fc557a\">https:\/\/github.com\/mdadams\/jasper\/commit\/d42b2388f7f8e0332c846675133acea151fc557a<\/a><br \/>\n<strong>Fixed version<\/strong>:<br \/>\n1.900.25<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00043-jasper-assert-jas_matrix_t\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00043-jasper-assert-jas_matrix_t<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9395<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\n\/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/jpc\/jpc_t1cod.c:144: int JPC_NOMINALGAIN(int, int, int, int): Assertion `qmfbid == 0x01&#8242; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Fixed version<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00004-jasper-assert-JPC_NOMINALGAIN\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00004-jasper-assert-JPC_NOMINALGAIN<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9396<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.13<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\ntype = 0xff76 (UNKNOWN); len = 20;00 40 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 imginfo: \/tmp\/portage\/media-libs\/jasper-1.900.13\/work\/jasper-1.900.13\/src\/libjasper\/jpc\/jpc_dec.c:1817: void jpc_dequantize(jas_matrix_t *, jpc_fix_t): Assertion `absstepsize &gt;= 0&#8242; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Fixed version<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00010-jasper-assert-jpc_dequantize\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00010-jasper-assert-jpc_dequantize<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9397<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.17<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.17\/work\/jasper-1.900.17\/src\/libjasper\/jpc\/jpc_math.c:94: int jpc_floorlog2(int): Assertion `x &gt; 0&#8242; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Fixed version<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00023-jasper-assert-jpc_floorlog2\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00023-jasper-assert-jpc_floorlog2<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9398<\/p>\n<p>######################################################<\/p>\n<p><strong>Affected version<\/strong>:<br \/>\n1.900.22<br \/>\n<strong>Output\/failure<\/strong>:<br \/>\nwarning: trailing garbage in marker segment (9 bytes)<br \/>\nwarning: trailing garbage in marker segment (28 bytes)<br \/>\nwarning: trailing garbage in marker segment (40 bytes)<br \/>\nwarning: ignoring unknown marker segment (0xffee)<br \/>\ntype = 0xffee (UNKNOWN); len = 23;1f 32 ff ff ff 00 10 00 3d 4d 00 01 32 40 e4 e4 00 10 00 00 4f warning: trailing garbage in marker segment (12 bytes)<br \/>\nimginfo: \/tmp\/portage\/media-libs\/jasper-1.900.22\/work\/jasper-1.900.22\/src\/libjasper\/jpc\/jpc_dec.c:1650: void calcstepsizes(uint_fast16_t, int, uint_fast16_t *): Assertion `!((expn + (numrlvls &#8211; 1) &#8211; (numrlvls &#8211; 1 &#8211; ((bandno &gt; 0) ? ((bandno + 2) \/ 3) : (0)))) &amp; (~0x1f))&#8217; failed.<br \/>\n<strong>Commit fix<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Fixed version<\/strong>:<br \/>\nN\/A<br \/>\n<strong>Testcase<\/strong>:<br \/>\n<a href=\"https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00044-jasper-assert-calcstepsizes\">https:\/\/github.com\/asarubbo\/poc\/blob\/master\/00044-jasper-assert-calcstepsizes<\/a><br \/>\n<strong>CVE:<\/strong><br \/>\nCVE-2016-9399<\/p>\n<p><strong>Credit:<\/strong><br \/>\nThis bug was discovered by Agostino Sarubbo of Gentoo.<\/p>\n<p><strong>Timeline:<\/strong><br \/>\n2016-10-23: start to report to upstream the issues<br \/>\n2016-11-16: blog post about the issue<br \/>\n2016-11-17: CVE assigned<\/p>\n<p><strong>Note:<\/strong><br \/>\nThese bugs were found with <a href=\"http:\/\/lcamtuf.coredump.cx\/afl\">American Fuzzy Lop<\/a>.<\/p>\n<p><strong>Permalink:<\/strong><\/p>\n<blockquote data-secret=\"VWFDouM1al\" class=\"wp-embedded-content\"><p><a href=\"http:\/\/blogs.gentoo.org\/ago\/2016\/11\/16\/jasper-multiple-assertion-failure\/\">jasper: multiple Assertion failure<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"http:\/\/blogs.gentoo.org\/ago\/2016\/11\/16\/jasper-multiple-assertion-failure\/embed\/#?secret=VWFDouM1al\" data-secret=\"VWFDouM1al\" width=\"600\" height=\"338\" title=\"&#8220;jasper: multiple Assertion failure&#8221; &#8212; agostino&#039;s blog\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Description: jasper is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard. A fuzzing revealed multiple assertion failures. Since the jasper&#8217;s maintainer releases frequently, the fuzzing was done across multiple &hellip; <a href=\"https:\/\/blogs.gentoo.org\/ago\/2016\/11\/16\/jasper-multiple-assertion-failure\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":140,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[12,10],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2EaBc-dd","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/posts\/819"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/users\/140"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/comments?post=819"}],"version-history":[{"count":16,"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/posts\/819\/revisions"}],"predecessor-version":[{"id":910,"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/posts\/819\/revisions\/910"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/media?parent=819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/categories?post=819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/ago\/wp-json\/wp\/v2\/tags?post=819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}