BeChain

Market Prices

BTC Bitcoin
$77,429.2 -5.16%
ETH Ethereum
$2,227.77 -5.78%
SOL Solana
$94.51 -7.70%
BNB BNB Chain
$698.97 -7.03%
XRP XRP Ledger
$1.25 -4.82%
DOGE Dogecoin
$0.0757 -5.54%
ADA Cardano
$0.1925 -6.19%
AVAX Avalanche
$8.28 -7.79%
DOT Polkadot
$0.9533 -5.75%
LINK Chainlink
$11.06 -7.24%

Event Calendar

{{年份}}
12
05
halving BCH Halving

Block reward halving event

08
04
upgrade Solana Firedancer

Independent validator client goes live on mainnet

10
05
upgrade Ethereum Pectra Upgrade

Raises validator limit and account abstraction

30
04
upgrade Celestia Mainnet Upgrade

Improves data availability sampling efficiency

22
03
unlock Optimism Unlock

Circulating supply increases by about 2%

28
03
unlock Arbitrum Token Unlock

92 million ARB released

15
04
halving Bitcoin Halving

Block reward reduced to 3.125 BTC

18
03
unlock Sui Token Unlock

Team and early investor shares released

Tools

All →

Altseason Index

41

Bitcoin Season

BTC Dominance Altseason

Market Cap

All →
# Coin Price
1
Bitcoin BTC
$77,429.2
1
Ethereum ETH
$2,227.77
1
Solana SOL
$94.51
1
BNB Chain BNB
$698.97
1
XRP Ledger XRP
$1.25
1
Dogecoin DOGE
$0.0757
1
Cardano ADA
$0.1925
1
Avalanche AVAX
$8.28
1
Polkadot DOT
$0.9533
1
Chainlink LINK
$11.06

🐋 Whale Tracker

🔵
0x8dba...ac65
5m ago
Stake
1,189,817 USDT
🔵
0xc46f...0ad4
2m ago
Stake
3,210,098 USDC
🔴
0x4b89...249e
1h ago
Out
27,896 BNB
Policy

OpenCode Shipped a 9.8 RCE as a 'Refactor' — and Your Scanner Will Never See It

SignalSignal

October 4. 06:00 UTC. Pillar Security drops the report. By 09:00 I have the PoC chain open on my second monitor, coffee going cold, and the number 9.8 sitting there like a bad omen.

Here is the sequence. A developer points OpenCode — an AI coding agent pulling 3 million npm downloads a week — at a remote MCP server. That server's discovery document declares an authorization_endpoint. The field is a string the server writes and the client trusts unconditionally. It travels: discovery doc → MCP SDK → oauth-provider.ts → mcp/index.ts → browser.ts → open() → PowerShell. On Windows, PowerShell expands $(...) inside double quotes. The open package escapes the application name but not the target URL. One string, one expansion, one local shell.

Chasing the alpha before the block closes — that is the job. But the alpha here is not the vulnerability. The vulnerability is dead. Version 1.18.33 shipped, sealed, three layers of protection. *The alpha is that the fix landed in a commit labeled refactor, with no CVE attached, and that means the entire automated detection stack your company paid for will never make a sound.*

That distinction is the whole story. Not RCE. Silence.

Context. Model Context Protocol became the connective tissue of agent tooling in about eighteen months. The pitch is elegant: a client discovers capabilities from a remote server at runtime, no hardcoded integration, no redeploy. That is also the flaw. Discovery is a trust boundary, and MCP pushes the decision across it in the wrong direction — it lets the authenticated party dictate the address of the authenticator. The authorization_endpoint string is filled by the server. The client then hands that string to a browser launcher. You have outsourced your security decision to the exact entity you were trying to verify.

I have watched this pattern before. In 2017 I built Telegram bots to watch the Ethereum mempool for 500 ETH moves, and the lesson that stuck was not about whales — it was that a system which trusts its inputs is a system waiting to be told what to do. MCP told OpenCode where to go. OpenCode went.

Core. The technical chain is self-consistent and code-verifiable, which is why I rate it high. CWE-78 command injection, CWE-88 argument injection, both accurate. The kill shot is escaping inconsistency: open sanitizes the app name, leaves the URL raw, and PowerShell does the rest.

The defenses that did not work matter more than the one that did. The MCP TypeScript SDK closed an http/https allowlist proposal in August 2025 and shipped a three-protocol denylist instead — javascript:, data:, vbscript:. Read that again. A denylist defaults to allow. The payload is a plain https:// URL. It walks through the blacklist without touching the sides. OpenCode's own new scheme validation, added alongside the fix, also waves it through. Only open@11.0.4's single-quote wrapping actually holds.

So if your threat model says we validate schemes, we're covered — you are wrong, and you are wrong in a way that no audit will surface.

Then the dependency lag. Affected builds pin open@10.1.2. Upstream fixed escaping in 11.0.0 on November 15. Downstream never followed. Classic npm transitive delay, except this time the delay was the vulnerability window.

The maturity split is brutal and clean. Argument-vector implementations — gemini-cli, Claude Code, github-mcp-server, Docker mcp-gateway — never touch a shell. Structurally immune. String-concat implementations — OpenCode, openmcp-client, sequa-mcp — keep getting hit. That is not luck. That is engineering culture, and it will be a procurement criterion within two quarters.

Sensing the shift before the chart confirms it: the detection blind spot is the mechanism nobody is pricing. SCA tools match on CVE and GHSA identifiers. No identifier, no alert. The only downstream signal is dependency version changed, and that change was described as a refactor. Dependabot, Snyk, Trivy — all blind, not by failure but by design.

Contrarian. Everyone is calling the missing CVE an oversight. I do not buy it. CVE-2025-6514 is not in my verification set — my knowledge stops well before that, and I will say so plainly — but the incentive math does not require verification. A CVSS 9.8 Critical enters every customer security questionnaire, every compliance audit line item, every procurement review, and permanently stains the version history. Merging as refactor is the low-friction path, and it costs nothing, and it violates no current rule.

Worse is the threat-model claim: malicious MCP servers are "outside their threat model." A product whose headline feature is auto-connecting to remote MCP servers cannot carve malicious remote MCP servers out of scope. The product boundary and the security promise have come apart, and that gap is more damning than the bug.

The report's real blank spot: macOS and Linux. open routes through xdg-open on Linux, which runs through sh -c. If the URL arrives unquoted there too, the exposed population multiplies overnight. Nobody has answered this. Somebody should.

Takeaway. Three weeks from private report to merge, zero weeks of machine-readable disclosure. Assume every agent client you run uses string concatenation until you have read its launcher. The blockchain doesn't sleep, but we must track — and right now the tracking layer has a hole shaped exactly like a patch.

Fear & Greed

30

Fear

Market Sentiment

Gas Tracker

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

💡 Smart Money

0xc639...8765
Market Maker
-$3.0M
62%
0x05be...22da
Arbitrage Bot
+$2.7M
70%
0x596b...1fdb
Top DeFi Miner
+$4.0M
90%