{"id":2273,"date":"2026-10-26T00:51:55","date_gmt":"2026-10-25T15:51:55","guid":{"rendered":"https:\/\/blog.coppe.jp\/?p=2273"},"modified":"2026-10-29T11:08:33","modified_gmt":"2026-10-29T02:08:33","slug":"cve-2026-111497-brotli-mamp-php","status":"publish","type":"post","link":"https:\/\/blog.coppe.jp\/en\/2026\/10\/26\/cve-2026-111497-brotli-mamp-php\/","title":{"rendered":"This document outlines how to address CVE-2026-111497 (Brotli) and how to fix the PHP vulnerability in the free version of MAMP locally on a Mac."},"content":{"rendered":"<p class=\"wp-block-paragraph\">The last update was <a href=\"https:\/\/blog.coppe.jp\/en\/2020\/07\/25\/chrome%e3%81%aeneterr_cert_invalid%e3%81%a7%e5%85%88%e3%81%ab%e9%80%b2%e3%82%81%e3%81%aa%e3%81%84\/\">July 2020<\/a> So, I realized it&#039;s been quite a while. Development and operations continued even though I wasn&#039;t writing, but I just didn&#039;t have the time to summarize it on the blog. Right now, there&#039;s been a string of serious PHP vulnerabilities and related security information coming out, and there&#039;s a strong sense of needing to review everything, including the runtime environment of the development machine. I&#039;ve also taken stock of my own environment, so I&#039;m taking this opportunity to resume writing, in order to document the process.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In October 2026, as an out-of-bounds write for the Brotli decoder <a href=\"https:\/\/nodejs.org\/en\/blog\/vulnerability\/october-2026-security-releases\" target=\"_blank\" rel=\"noopener\">CVE-2026-111497<\/a> This became a hot topic. The affected versions are Brotli 1.0.3 to 1.2.0. For Node.js, versions 22.23.4, 24.22.1, and 26.12.1 and later are the corrected versions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Upon checking my own environment, I found that my public server (CentOS Stream 9 + Apache + PHP-FPM) did not have Node.js installed, and was not on a typical high-risk path. On the other hand, my Mac (M2) has Node.js installed. <strong>v22.14.0<\/strong>(Built-in Brotli 1.1.0) and Homebrew Brotli <strong>1.2.0<\/strong> This was the case. The situation was such that the local server needed to be fixed before the public server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Incidentally, I also checked PHP, and it seems to be the so-called php2shell (<a href=\"https:\/\/www.php.net\/archive\/2026.php\" target=\"_blank\" rel=\"noopener\">CVE-2026-109618 \/ CVE-2026-109619<\/a>Regarding this issue, Homebrew&#039;s PHP version 8.5.12 has already been fixed. However, the PHP included with MAMP remained outdated. Since it is sometimes temporarily released via ngrok, this has also been addressed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, I&#039;ll show you the steps I actually took on my Mac locally.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">environment<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mac (M2 \/ Apple Silicon)<\/li>\n\n\n\n<li>macOS 27.x<\/li>\n\n\n\n<li>Homebrew<\/li>\n\n\n\n<li>MAMP (free version) 7.4<\/li>\n\n\n\n<li>Before update: Node.js 22.14.0, brotli 1.2.0, MAMP bundled PHP uncorrected.<\/li>\n\n\n\n<li>After update: Node.js <strong>24.22.1<\/strong>, brotli <strong>1.2.1<\/strong>MAMP instance PHP <strong>8.5.12<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">1. CVE-2026-111497 \u2014 Update Node.js using the official installer.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Since I originally installed it using the official .pkg file, it&#039;s quickest to overwrite it using the same method.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2460 <a href=\"https:\/\/nodejs.org\/en\" target=\"_blank\" rel=\"noopener\">https:\/\/nodejs.org\/en<\/a> Open it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2461 For everyday use <strong>LTS<\/strong> Choose (as of the time of this article) <strong>v24.22.1<\/strong>\uff09\u3002<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"529\" data-id=\"2268\" src=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/01-nodejs-download.jpg\" alt=\"\" class=\"wp-image-2268\" srcset=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/01-nodejs-download.jpg 1024w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/01-nodejs-download-300x155.jpg 300w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/01-nodejs-download-768x397.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Download screen. The orange banner that says &quot;October 2026 security releases are available&quot; is an announcement of this security fix. You don&#039;t need to click the banner; simply installing the 24.22.1 .pkg file will achieve your goal.<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u2462 Not the Version \/ OS \/ Method at the top of the page, but a little further down <strong>\u201cOr get a prebuilt Node.js\u00ae for\u2026\u201d<\/strong> Look at it.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OS: <strong>macOS<\/strong><\/li>\n\n\n\n<li>architecture: <strong>ARM64<\/strong>(Apple Silicon \/ M2)<\/li>\n\n\n\n<li>format: <strong>macOS Installer (.pkg)<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">* Don&#039;t worry if the Method at the top is set to nvm. For Method A (official pkg), you don&#039;t need to use that command; simply downloading the .pkg file is sufficient.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2463 Open the downloaded .pkg file, then click Continue \u2192 Agree \u2192 Install. Enter your administrator password.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2464 After installation is complete,<strong>New terminal<\/strong>Open it and check.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ node -v\n$ npm -v\n$ which node\n$ node -p \"process.versions.brotli\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2465 In my environment, it was as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">v24.22.1\n11.19.1\n\/usr\/local\/bin\/node\n1.2.0\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><code data-no-translation=\"\">process.versions.brotli<\/code> \u304c <code data-no-translation=\"\">1.2.0<\/code> It&#039;s fine to leave it as is. Node 24.22.1 incorporates the fixes but doesn&#039;t increment the version number of the built-in Brotli. The important thing is <strong>Node version 24.22.1 or higher<\/strong>Being.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Change Homebrew&#039;s brotli to version 1.2.1<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you also have a version of brotli installed via Homebrew in addition to the one built into Node, please upload that as well.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ brew upgrade brotli\n$ brew list --versions brotli\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2460 Execute.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">brotli 1.2.1\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2461 Version 1.2.1 is OK. If it&#039;s already the latest version... <code data-no-translation=\"\">Warning: brotli X.X.X already installed<\/code> And that&#039;s the end.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This completes the local response for CVE-2026-111497.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Checking for PHP vulnerabilities (php2shell and upload_progress)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">While I was at it with Brotli, I also checked PHP on the same Mac. The patched version for the critical vulnerability (the so-called php2shell) that was disclosed around October 21, 2026 is as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>8.5.12 \/ 8.4.27 \/ 8.3.36 \/ 8.2.35<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ which php\n$ php -v\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2460 on PATH <code data-no-translation=\"\">php<\/code>Check (Homebrew).<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">\/opt\/homebrew\/bin\/php\nPHP 8.5.12 (cli) ...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2461 Homebrew has already fixed the issue. On the other hand, the MAMP bundled at the time included versions such as 8.5.0 \/ 8.4.15 \/ 8.3.28.<strong>uncensored<\/strong>That was the case.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In addition, as a temporary workaround for another issue (related to upload_progress) that only occurs in rare configurations, the official PHP documentation recommends the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">session.upload_progress.enabled=0\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2462 Edit the php.ini file in Homebrew.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ nano \/opt\/homebrew\/etc\/php\/8.5\/php.ini\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2463 Turn the corresponding row Off (add it if it doesn&#039;t exist).<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">session.upload_progress.enabled = Off\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2464 Confirm that the changes have been reflected.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ php -i | grep upload_progress.enabled\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">session.upload_progress.enabled =&gt; Off =&gt; Off\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Since it&#039;s CLI PHP, a service restart is not necessary.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Update MAMP to version 7.4 and use the corrected PHP.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The free version of MAMP does not include the corrected version of php2shell (8.5.12, etc.) at the time of writing. A practical alternative to purchasing additional PHP for MAMP PRO is...<strong>Insert Homebrew&#039;s PHP 8.5.12 into a folder name that MAMP recognizes.<\/strong>I made it happen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Simply being connected to the internet doesn&#039;t automatically mean you&#039;re in danger. <strong>The moment I started Apache on MAMP<\/strong>This means that vulnerable PHP will start running for web use. If you&#039;re using ngrok, it&#039;s safer to update it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2460 Reinstall MAMP 7.4 from the official website (installing it over an existing installation is fine).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2461 Check the location of the included PHP file.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ ls \/Applications\/MAMP\/bin\/php\/\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">php7.3.33\nphp7.4.33\nphp8.3.30\nphp8.4.17\nphp8.5.2\n...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2462 Versions that can be selected in the free version UI (Example: <strong>8.3.30<\/strong>)of <code data-no-translation=\"\">bin<\/code> Replace it with Homebrew&#039;s PHP. Make a backup before doing so.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ PHPDIR=\/Applications\/MAMP\/bin\/php\/php8.3.30\n$ BREWPHP=$(brew --prefix php)\n\n$ mkdir -p \"$PHPDIR\/bin.bak\"\n$ mv \"$PHPDIR\/bin\/php\" \"$PHPDIR\/bin\/php-cgi\" \"$PHPDIR\/bin\/phpize\" \\\n    \"$PHPDIR\/bin\/php-config\" \"$PHPDIR\/bin\/phpdbg\" \"$PHPDIR\/bin.bak\/\" 2&gt;\/dev\/null\n\n$ ln -sf \"$BREWPHP\/bin\/php\"        \"$PHPDIR\/bin\/php\"\n$ ln -sf \"$BREWPHP\/bin\/php-cgi\"    \"$PHPDIR\/bin\/php-cgi\"\n$ ln -sf \"$BREWPHP\/bin\/phpize\"     \"$PHPDIR\/bin\/phpize\"\n$ ln -sf \"$BREWPHP\/bin\/php-config\" \"$PHPDIR\/bin\/php-config\"\n$ ln -sf \"$BREWPHP\/bin\/phpdbg\"     \"$PHPDIR\/bin\/phpdbg\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2463 In the php.ini file for MAMP, also turn off upload_progress.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ nano \/Applications\/MAMP\/bin\/php\/php8.3.30\/conf\/php.ini\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">session.upload_progress.enabled = Off\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u2464 Start MAMP and in Preferences, enable PHP. <strong>8.3.30<\/strong>Confirm that the version selected for your environment is selected. Start Apache.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1072\" height=\"868\" src=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/03-mamp-php-8330.png\" alt=\"\" class=\"wp-image-2275\" srcset=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/03-mamp-php-8330.png 1072w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/03-mamp-php-8330-300x243.png 300w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/03-mamp-php-8330-1024x829.png 1024w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/03-mamp-php-8330-768x622.png 768w\" sizes=\"auto, (max-width: 1072px) 100vw, 1072px\" \/><figcaption class=\"wp-element-caption\">The free version has a limited selection of versions available in the dropdown menu. The display can remain as &quot;8.3.30&quot;. The actual version can be verified next.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u2465 Check the version of the actual file.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ \/Applications\/MAMP\/bin\/php\/php8.3.30\/bin\/php -v\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">PHP 8.5.12 (cli) ...\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Alternatively, in the document root <code data-no-translation=\"\">phpinfo.php<\/code> Place it and open it in your browser.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">&lt;?php phpinfo();\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>PHP Version is 8.5.12<\/strong> Then it was a success. The reason the UI display and the actual contents don&#039;t match is because the free MAMP compares the server-side allow list with the folder name.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"566\" src=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/02-mamp-php-error.png\" alt=\"\" class=\"wp-image-2269\" srcset=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/02-mamp-php-error.png 940w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/02-mamp-php-error-300x181.png 300w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/02-mamp-php-error-768x462.png 768w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><figcaption class=\"wp-element-caption\">If you arbitrarily rename the folder to just &quot;php8.5.12&quot;, you will get this error at startup. The key is to leave a name that the free version recognizes (e.g., php8.3.30) and only replace the contents.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u2466 The MAMP start page may sometimes display deprecated warnings due to outdated code (e.g., <code data-no-translation=\"\">curl_close()<\/code>This is also proof that it&#039;s running on PHP 8.5. If it bothers you, you can either fix the relevant part or simply avoid opening the start page.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"360\" src=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/04-mamp-start-deprecated.jpg\" alt=\"\" class=\"wp-image-2271\" srcset=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/04-mamp-start-deprecated.jpg 1024w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/04-mamp-start-deprecated-300x105.jpg 300w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/04-mamp-start-deprecated-768x270.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">https:\/\/blog.coppe.jp\/MAMP\/ \u3067\u51fa\u308b\u8b66\u544a\u4f8b\u3002\u672c\u4f53\u306e\u30b5\u30a4\u30c8\u52d5\u4f5c\u3068\u306f\u5225\u4ef6\u3002<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">5. Final Checklist<\/h3>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\"><code data-no-translation=\"\">$ node -v\n# =&gt; v24.22.1 \u4ee5\u4e0a\n\n$ brew list --versions brotli\n# =&gt; brotli 1.2.1\n\n$ php -v\n# =&gt; PHP 8.5.12\uff08Homebrew\uff09\n\n$ php -i | grep upload_progress.enabled\n# =&gt; Off =&gt; Off\n\n$ \/Applications\/MAMP\/bin\/php\/php8.3.30\/bin\/php -v\n# =&gt; PHP 8.5.12\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">After starting MAMP, also verify that the version is 8.5.12 in your browser&#039;s phpinfo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"202\" src=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/05-phpinfo-8512.png\" alt=\"\" class=\"wp-image-2272\" srcset=\"https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/05-phpinfo-8512.png 960w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/05-phpinfo-8512-300x63.png 300w, https:\/\/blog.coppe.jp\/app\/uploads\/2026\/10\/05-phpinfo-8512-768x162.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><figcaption class=\"wp-element-caption\">At https:\/\/blog.coppe.jp\/en\/admin\/reports\/status\/php, I confirmed that PHP Version 8.5.12 and Build Provider: Homebrew. Although the UI shows 8.3.30, it is actually running on the corrected version.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Supplementary notes\/notes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>libbrotli on the public server<\/strong> Even if the distribution hasn&#039;t fixed it yet, the risk of actual harm via the public Drupal route is often low if there are no Nodes or similar. <code data-no-translation=\"\">dnf update<\/code> Sometimes, simply adding it is sufficient.<\/li>\n\n\n\n<li><strong>When I update the MAMP app, the symbolic links I replaced disappear.<\/strong>Sometimes this happens. After the update, repeat steps \u2462 through \u2465.<\/li>\n\n\n\n<li>Homebrew PHP may be missing some extensions included with MAMP (such as the older imagick). Add them as needed.<\/li>\n\n\n\n<li>If you want the UI to display version 8.5.12 in the free version, you will need the additional PHP features of MAMP PRO.<\/li>\n\n\n\n<li>Do not use PHP 7.x, which is at end of life. Do not select it even if it remains in the startup options.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">That&#039;s all. The Brotli CVE was a good opportunity to take stock of even the local PHP I don&#039;t usually touch. I want to be more mindful of the version of the bundled runtime, especially on development machines that I send externally using ngrok.<\/p>","protected":false},"excerpt":{"rendered":"<p>The last update was in July 2020, so it&#039;s been quite a while...<\/p>","protected":false},"author":2,"featured_media":2268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/posts\/2273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/comments?post=2273"}],"version-history":[{"count":6,"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/posts\/2273\/revisions"}],"predecessor-version":[{"id":2281,"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/posts\/2273\/revisions\/2281"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/media\/2268"}],"wp:attachment":[{"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/media?parent=2273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/categories?post=2273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.coppe.jp\/en\/wp-json\/wp\/v2\/tags?post=2273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}