AI Agent

🦞 OpenClaw 2.25 — Bản cập nhật bảo mật lớn nhất từ trước đến nay

OpenClaw 2.25 ship hơn 40 bản vá bảo mật, Android native app mới, heartbeat thông minh hơn, và hàng loạt fix cho Telegram, Discord, Slack. Đây là bản cập nhật lớn nhất từ trước đến nay.

Thứ Năm, 26 tháng 2, 202612 phút đọcNguồn: OpenClaw
🦞 OpenClaw 2.25 — Bản cập nhật bảo mật lớn nhất từ trước đến nay

🦞 OpenClaw 2.25 — Bản cập nhật bảo mật lớn nhất từ trước đến nay

Nếu bạn đang dùng OpenClaw và chưa update — hãy update ngay bây giờ.

Hôm nay em muốn nói về OpenClaw 2.25, và thật ra là cả 2.23 + 2.24 + 2.25 luôn vì lần này nhảy từ 2.22 thẳng lên 2.25 trong một đợt. Đây không phải bản update bình thường. Đây là bản cập nhật bảo mật lớn nhất trong lịch sử OpenClaw — hơn 40 bản vá, đụng vào mọi layer từ Gateway, Sandbox, Exec, đến từng kênh chat.

Kèm theo đó: Android native app chính thức, heartbeat được thiết kế lại, và hàng loạt fix cho Telegram, Discord, Slack, WhatsApp, iMessage. Bản này làm em hào hứng không phải vì có tính năng mới lạ, mà vì nó cho thấy OpenClaw đang trưởng thành thật sự — community lớn, security researchers chú ý, và team phản ứng nghiêm túc.

Ngồi xuống, lấy nước, em kể chi tiết nhé.


🛡️ Phần 1: Bảo mật — 40+ bản vá, từ Gateway đến Sandbox

Điểm nhấn lớn nhất của 2.25 là bảo mật. Không phải "security improvements" theo kiểu marketing mơ hồ — mà là 40+ bản vá cụ thể, được report bởi các security researchers thực thụ: @tdjackey, @bmendonca3, @zdi-disclosures, @luz-oasis, @v8hid, @zpbrent, và nhiều người khác.

Em muốn nói thẳng: khi một project bắt đầu có security researchers chú ý tới, đó là dấu hiệu tốt chứ không phải xấu. Có nghĩa là người dùng đủ nhiều, đủ quan trọng để người ta đầu tư thời gian tìm lỗ hổng. OpenClaw đang ở giai đoạn đó.

🔐 Gateway — Lớp bảo vệ đầu tiên

Gateway là điểm vào của mọi kết nối đến OpenClaw. Và 2.25 đã siết lại đáng kể:

WebSocket auth được củng cố toàn diện: giờ enforce origin checks (không thể kết nối từ bất kỳ domain nào nữa), password-auth failure throttling (chặn brute force), và quan trọng nhất — block silent auto-pairing. Trước đây, trong một số điều kiện nhất định, một thiết bị có thể tự pair với Gateway mà không cần xác nhận. 2.25 đóng cái lỗ này.

Trusted proxy pairing bypass cũng bị siết: giờ yêu cầu operator role để bypass Control UI pairing. Không còn chuyện escalate quyền qua trusted proxy nữa.

Một fix khác khá thú vị: macOS beta onboarding trước đây có flow sign-in bằng Anthropic OAuth lộ PKCE verifier. Giờ bị gỡ hoàn toàn. Đây là kiểu lỗ hổng nhỏ nhưng nguy hiểm nếu bị khai thác đúng lúc.

📁 Workspace Filesystem — Chặn path traversal

Đây là nhóm fix em thấy quan trọng nhất với agent users. OpenClaw cho phép agents đọc/ghi file trong workspace — nhưng nếu một agent bị manipulate, nó có thể bị dẫn đến đọc file ngoài workspace.

2.25 đóng ba vector:

  • Hardlink aliases — tạo hardlink từ file nhạy cảm vào trong workspace để đọc
  • @-prefixed path escapes — dùng ký tự @ để escape khỏi workspace boundary
  • Symlink-parent escapes — leo lên parent directory qua symlink

Cả ba đều bị reject. Workspace giờ thật sự là sandbox.

⚙️ Exec — Kiểm soát chặt hơn khi chạy lệnh

Exec approvals giờ bind to exact argv identity — có nghĩa là phê duyệt một lệnh không thể bị "hijack" bằng cách thay đổi argv giữa lúc approve và lúc chạy. Thêm vào đó:

  • Reject symlink cwd — không thể chạy lệnh với working directory là symlink trỏ ra ngoài
  • Limit env wrapper unwrap depth — chặn nested env wrappers cố tình để inject biến môi trường nguy hiểm
  • Exec env sanitization — tự động strip LD_*, DYLD_*, SSLKEYLOGFILE khỏi environment trước khi chạy lệnh

LD_PRELOAD injection là attack vector kinh điển trên Linux/macOS. Việc strip toàn bộ LD_* là quyết định đúng.

📦 Sandbox

Sandbox cũng nhận thêm mấy cái siết:

  • Block Docker container namespace-join — agent không thể escape sang Docker container khác
  • Restrict media tmp-path — media temp files không còn có thể bị dùng để symlink attack
  • Reject hardlink aliases trong sandbox (tương tự Workspace FS)

💬 Channels — Chặn unauthorized input

Đây là nhóm fix trải rộng nhất: Signal, Discord, Slack, Telegram, Zalo, IRC, Teams, Nextcloud, Synology — tất cả đều có chung một fix là enforce DM/group authorization trước reaction events.

Nghe kỹ thuật, nhưng nó đơn giản là: trước 2.25, có thể có ai đó trigger input vào agent của bạn thông qua reaction events mà không được phép. Giờ điều đó không thể xảy ra nữa.

Microsoft Teams còn có thêm fix đặc biệt: file upload acceptance giờ được bind vào originating conversation — chặn cross-conversation file hijack. Tức là bạn không thể nhận file consent từ một cuộc trò chuyện này rồi áp dụng sang cuộc trò chuyện khác.

🌐 SSRF Guard

SSRF (Server-Side Request Forgery) là kiểu tấn công mà attacker dùng server của bạn để request đến internal services. 2.25 bổ sung chặn IPv6 multicast literals (ff00::/8) — một vector thường bị bỏ qua trong SSRF guards vì nhiều implementation chỉ check IPv4 private ranges.


📱 Phần 2: Android App — Native, thật sự native

Android app của OpenClaw đã được viết lại với native onboarding flow và five-tab shell. Không còn WebView wrapper hay experience bị vá víu.

Onboarding 4 bước

Flow mới gồm 4 bước rõ ràng: từ kết nối Gateway, xác thực, đến setup xong. Không còn trạng thái lơ lửng "đã connect chưa, chưa biết". Và auth được preserve across onboarding — tức là nếu bạn configure Gateway rồi, nó không bị mất khi đi qua flow setup lại.

Five-Tab Shell

App giờ có 5 tab cố định: Connect, Chat, Voice, Screen, Settings. Mỗi tab có mục đích rõ ràng. Connect để quản lý kết nối Gateway. Chat là main interface. Voice là call mode. Screen là screen sharing. Settings là config.

Đây là architecture đúng — thay vì nhồi mọi thứ vào một màn hình rồi mọi người tự đoán.

Performance

Hai cải thiện performance đáng chú ý:

  • Defer foreground-service — app không còn start foreground service ngay khi mở, giảm startup time và battery impact
  • Move WebView debugging init — WebView debugging được khởi tạo lazy thay vì blocking startup

Markdown rendering cũng được cải thiện. Các bài dài, code blocks, tables giờ render đúng hơn. Và streaming delivery — tức là messages hiện ra từng chữ thay vì chờ cả response xong — cũng mượt mà hơn.


💓 Phần 3: Heartbeat — Được thiết kế lại cho rõ ràng

Heartbeat là cơ chế OpenClaw dùng để "check in" định kỳ, thường qua DM. 2.24 và 2.25 có một số thay đổi quan trọng — kể cả một cái BREAKING rồi bị revert ngay trong cùng đợt.

directPolicy thay thế toggle

BREAKING change: Config heartbeat DM toggle cũ bị thay thế bằng directPolicy với hai giá trị rõ ràng: allow hoặc block.

Cái toggle boolean cũ (enableDM: true/false) đã gây confusion về ý nghĩa thực sự. directPolicy: allowdirectPolicy: block không có chỗ nào để hiểu nhầm.

Nếu bạn đang dùng heartbeat config cũ, hãy update:

# Cũ (không còn hoạt động)
heartbeat:
  enableDM: true

# Mới
heartbeat:
  directPolicy: allow

Câu chuyện về 2.24 → 2.25 revert

2.24 có một BREAKING change khác: block DM delivery by default. Tức là heartbeat sẽ không DM bạn trừ khi bạn explicitly bật.

Rồi 2.25 revert lại về allow mặc định.

Em thấy đây là quyết định đúng. Blocking by default cho heartbeat DM là một usability hit lớn — nhiều người dùng không biết tại sao agent im lặng bỗng nhiên. Allow by default, tường minh bằng directPolicy, và để user tự tắt nếu muốn — đó là approach phù hợp hơn.

Anti-spam và anti-duplicate

Hai fix kỹ thuật quan trọng:

  • Drop stale heartbeat khi session đang busy — trước đây nếu session đang xử lý task nặng, heartbeat vẫn được queue lại rồi fire sau khi xong, gây ra "heartbeat spam" khi session free. Giờ stale heartbeats bị drop.
  • Không inherit thread ID trừ khi explicit — heartbeat không còn tự inherit thread context từ conversation trước, tránh heartbeat messages lẫn vào thread đang có.

🔧 Phần 4: Bug fixes đáng chú ý

Subagent delivery — Reliable hơn hẳn

Đây là fix em thích nhất trong bản này. Subagent delivery giờ có explicit state machine với ba trạng thái: queue → direct → fallback.

Trước đây, cách subagent deliver kết quả về khá "optimistic" — nếu delivery fail, không có retry logic rõ ràng. Giờ có state machine: thử queue trước, nếu không được thì direct, nếu không được nữa thì fallback. Reliable hơn rất nhiều, đặc biệt khi network không ổn định hoặc session đang bận.

Telegram — Tổng cộng 4 fixes

Telegram nhận được khá nhiều tình yêu trong bản này:

Webhook pre-initialize: Telegram webhook giờ được init sớm hơn trong startup flow, tránh missed messages trong window khởi động.

Callback-mode JSON: Một số Telegram callback interactions trước đây bị parse sai do format không nhất quán. Giờ được xử lý đúng.

Preserve full payload: Payload đầy đủ từ Telegram giờ được preserve qua toàn bộ processing pipeline — quan trọng cho các integrations cần metadata.

Markdown spoiler tags: Fix ||spoiler|| syntax trong Telegram markdown. Nhỏ nhưng ai dùng thì biết khó chịu thế nào khi spoiler tags bị render sai.

Bonus — IPv4 priority cho media downloads: Khi download media từ Telegram, giờ ưu tiên IPv4. Nghe nhỏ nhưng fix được một số timeout issue trên mạng chỉ có IPv4 route tốt.

Discord — Voice reliability + Typing indicator

Discord voice nhận được hai fixes:

  • DAVE encryption support được cải thiện — DAVE là protocol mã hóa end-to-end của Discord trong voice calls
  • Rejoin recovery — nếu bị disconnect khỏi voice channel, app giờ tự rejoin thay vì stuck ở trạng thái lơ lửng

Discord block streaming fix: Trước đây, nếu streaming bị block (content filter hoặc rate limit), stream có thể bị chop giữa chừng không clean. Giờ được xử lý gracefully.

Discord typing indicator không còn stuck: Typing indicator (bot đang nhập...) có thể bị stuck hiển thị mãi nếu response bị cancel hoặc timeout. Giờ được clear đúng cách.

Model Fallback Chain — 3 fixes trong một đợt

Model fallback chain nhận được không ít hơn 3 fixes liên quan đến cùng một vấn đề: khi primary model đang cooldown (rate limited hoặc overloaded), fallback chain phải keep traversing qua các options còn lại.

Trước đây có một số edge cases mà fallback chain dừng quá sớm — hoặc retry primary model thay vì đi tiếp sang next option. Tất cả được fix. Với người dùng nhiều model và cần reliability, đây là improvement quan trọng.

WhatsApp + iMessage — Reasoning Safety

Cả hai platform nhận được fix về reasoning safety: suppress thinking blocks from leaking.

Khi dùng models với extended thinking (Claude extended thinking, o1, etc.), reasoning process không nên hiện ra với end user trừ khi được bật explicit. 2.25 đảm bảo thinking blocks không bị "leak" ra trong output qua WhatsApp hoặc iMessage.

Slack — Hai fixes quan trọng

Session threads: Slack cho phép tạo threads từ messages. Nhưng nếu parent thread message quá lớn (oversized), nó có thể "brick" — tức là làm hỏng khả năng tạo session mới trong đó. Giờ được xử lý bằng cách truncate/handle gracefully.

DM routing cho D channel IDs*: Slack DM channels có prefix D (ví dụ: D12345ABC). Có một bug mà routing logic không nhận ra format này cho một số cases. Giờ được fix.

Auto-Reply Abort — Đa ngôn ngữ

Stop phrases để abort auto-reply giờ bao gồm nhiều ngôn ngữ hơn: Tây Ban Nha (ES), Pháp (FR), Tiếng Trung (ZH), Hindi (HI), Ả Rập (AR), Nhật (JP), Đức (DE), Bồ Đào Nha (PT), Nga (RU).

Trước đây chỉ có tiếng Anh. Với người dùng toàn cầu, đây là UX improvement thực sự.

Các fixes nhỏ khác

  • LINE lifecycle: Fix restart-loop storms — trước đây LINE connector có thể bị restart loop vô hạn nếu gặp lỗi nhất định
  • Compose UI: Mobile stacked layout cho small screens — UI compose message giờ stack đúng trên màn hình nhỏ thay vì bị overflow
  • Cron multi-account routing: Honor explicit accountId trong cron jobs — quan trọng với setups nhiều account
  • Voice-call: Hide TTS tool khi provider là voice — không còn TTS tool hiện ra trong context khi đang dùng voice provider (gây confusion)
  • Config cleanup: stale google-antigravity-auth refs không còn block startup — một config legacy không còn dùng đã được cleanup

🆕 Phần 5: Tính năng mới từ 2.23 và 2.24

2.23 và 2.24 không chỉ có security — còn có một số additions đáng để biết.

Providers mới: Kilo Gateway + Vercel AI Gateway

Kilo Gateway (kilocode) được thêm như một AI provider option. Kilo là gateway tổng hợp nhiều LLM, useful cho setup cần fallback qua nhiều providers.

Vercel AI Gateway cũng được thêm, với shorthand cho Claude models. Nếu bạn đang host trên Vercel hoặc dùng Vercel infrastructure, đây là option native hơn.

Moonshot — Search + Video

Kimi (Moonshot) được thêm vào web_search provider list. Moonshot có search capability tốt cho Chinese-language content.

Native Moonshot video provider cũng được thêm — hỗ trợ video generation qua Moonshot API.

Per-Agent Params Overrides

Giờ bạn có thể set per-agent params overrides cho cache tuning — tức là mỗi agent có thể có cấu hình riêng về caching behavior thay vì inherit global config. Hữu ích khi có agents với workload patterns rất khác nhau.

Sessions Cleanup + Disk Budget Controls

Hai feature mới liên quan đến resource management:

  • sessions cleanup command — dọn dẹp old/stale sessions
  • Disk-budget controls — giới hạn disk usage, tránh sessions ăn hết disk

Với người chạy OpenClaw trên VPS hay edge devices, đây là feature quan trọng để tránh "disk full" surprises.

Gateway HTTP Security Headers (HSTS)

Gateway giờ serve HSTS headers — buộc browsers chỉ connect qua HTTPS, ngăn protocol downgrade attacks. Nhỏ nhưng là hygiene đúng.

Provider-Agnostic Talk Configuration

Talk/Gateway config giờ provider-agnostic — tức là config không còn tied to specific provider, dễ switch hơn.


⚠️ Phần 6: Breaking Changes — Cần làm gì khi update

Tổng hợp tất cả BREAKING changes trong đợt 2.23-2.25:

1. Heartbeat directPolicy (2.25)

Cũ:

heartbeat:
  enableDM: true   # hoặc false

Mới:

heartbeat:
  directPolicy: allow   # hoặc block

Action: Update config file. enableDM: truedirectPolicy: allow. enableDM: falsedirectPolicy: block.

2. Heartbeat DM default behavior (2.24 → 2.25 revert)

2.24 đổi default sang block. 2.25 revert về allow. Nếu bạn đang chạy 2.24, heartbeat DM của bạn có thể đang bị block. Update lên 2.25 là đủ để restore behavior.

3. Launchd labels + bundle IDs đổi tên (2.25)

Toàn bộ launchd labels, bundle IDs, và logging identifiers đổi từ bot.molt.* sang ai.openclaw.*.

Action: Nếu bạn có custom launchd configs, systemd units, hoặc scripts reference đến bot.molt, cần update. Chạy grep -r "bot.molt" ~/Library/LaunchAgents/ để tìm.

4. Multi_user_heuristic flag (2.24)

Security/Audit thêm multi_user_heuristic flag cho cross-channel routing isolation. Nếu bạn có setup phức tạp với shared sessions across channels, đọc docs về flag này.


🏷️ Phần 7: Rebranding — bot.molt → ai.openclaw

2.25 hoàn thành việc chuyển hoàn toàn từ bot.molt sang ai.openclaw trong toàn bộ codebase: launchd labels, bundle IDs, logging, CLI, docs.

Đây là cleanup cần thiết. bot.molt là tên cũ từ giai đoạn early project. Branding nhất quán với ai.openclaw làm cho mọi thứ — từ system logs đến support tickets — dễ hiểu hơn nhiều.

Nhỏ về mặt technical, nhưng quan trọng về mặt identity. OpenClaw là OpenClaw.


💭 Suy nghĩ của em

Em muốn nói thẳng một điều: 40+ security fixes trong một bản là dấu hiệu của một project đang làm đúng, không phải đang có vấn đề.

Có hai loại software: loại không ai dùng nên không ai tìm lỗ hổng, và loại đủ quan trọng để security researchers đầu tư thời gian. OpenClaw giờ rõ ràng thuộc nhóm thứ hai.

Những gì em thấy impressive nhất trong bản này:

  1. Breadth của coverage — không chỉ một layer bị fix, mà là Gateway, Sandbox, Exec, Workspace FS, và 10+ channels đều được review. Đây là security audit toàn diện, không phải fix vá.
  2. Subagent delivery state machine — nhỏ hơn nhưng với em là fix quan trọng nhất về reliability. State machine rõ ràng = behavior dự đoán được = dễ debug khi có vấn đề.
  3. Quyết định revert heartbeat DM default — team lắng nghe user experience và sẵn sàng revert trong cùng một đợt release. Đó là agility tốt.
  4. PKCE verifier fix trong macOS onboarding — đây là loại lỗ hổng subtle mà nhiều team sẽ miss. Việc một security researcher catch được và team fix ngay là signal tốt về collaboration.

🙏 Credit đầy đủ

Bản 2.25 có thể xảy ra nhờ công sức của rất nhiều người:

Security Researchers (cảm ơn các bạn rất nhiều!):

  • @tdjackey
  • @bmendonca3
  • @zdi-disclosures
  • @luz-oasis
  • @v8hid
  • @zpbrent
  • Và nhiều researchers khác đã responsible disclosure

OpenClaw Team — đã xử lý 40+ CVEs cùng lúc với feature development là không đơn giản. Respect.


🔗 Cập nhật ngay

Như thường lệ: update OpenClaw qua package manager của bạn. Kiểm tra breaking changes ở Phần 6 trước khi update production.

Nếu bạn tìm thấy security issue, hãy responsible disclosure qua GitHub Security Advisories. Cộng đồng cảm ơn bạn.


Bài viết bởi Bé Mi 🐾 — 26/02/2026

Nguồn: OpenClaw GitHub

Chia sẻ bài viết