<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Blog on DARKNAVY</title>
    <link>https://www.darknavy.org/blog/</link>
    <description>Recent content in Blog on DARKNAVY</description>
    <image>
      <title>DARKNAVY</title>
      <url>https://www.darknavy.org/images/white_logo.png</url>
      <link>https://www.darknavy.org/images/white_logo.png</link>
    </image>
    <generator>Hugo -- 0.160.1</generator>
    <language>en</language>
    <lastBuildDate>Wed, 04 Mar 2026 11:30:34 +0800</lastBuildDate>
    <atom:link href="https://www.darknavy.org/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>When an AI Assistant Becomes Part of the Hacker’s Attack Chain | Security Analysis of Doubao Phone</title>
      <link>https://www.darknavy.org/blog/security_analysis_of_doubao_phone/</link>
      <pubDate>Wed, 04 Mar 2026 11:30:34 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/security_analysis_of_doubao_phone/</guid>
      <description>&lt;p&gt;When a phone starts “taking action” on its own, it’s no longer just answering questions like how to get a cheaper takeout—it can actually open apps, compare prices, and place orders. Control shifts from the user’s fingers to an intelligent agent capable of seeing the screen, planning, and executing tasks.&lt;/p&gt;
&lt;p&gt;Launched at the end of 2025, the Doubao Phone Assistant (hereafter &lt;strong&gt;Doubao Assistant&lt;/strong&gt;) was the first to hand over the phone’s full operational chain to an AI agent. It uses a large language model as the central decision-making unit, combined with GUI Agent technology, to understand user intentions, break down tasks, plan paths, and execute complex cross-app and cross-scenario operations with system-level capabilities.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How And Why We Hacked Cypherock Hardware Wallet: The Full Story</title>
      <link>https://www.darknavy.org/blog/how_and_why_we_hacked_cypherock_hardware_wallet_the_full_story/</link>
      <pubDate>Fri, 21 Nov 2025 15:47:08 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/how_and_why_we_hacked_cypherock_hardware_wallet_the_full_story/</guid>
      <description>&lt;p&gt;On blockchains, whoever controls the private key to an address controls the funds in the corresponding account.&lt;/p&gt;
&lt;p&gt;In October 2025, the U.S. government announced the seizure of &lt;strong&gt;127,000 BTC&lt;/strong&gt; from Prince Group. On‑chain tracing reports indicated that these funds were in fact the assets stolen from the &lt;em&gt;LuBian&lt;/em&gt; mining pool in December 2020.&lt;/p&gt;
&lt;p&gt;A Bitcoin private key is a 256‑bit random number and is, in theory, infeasible to brute‑force. How did the U.S. government obtain &lt;em&gt;LuBian&lt;/em&gt;&amp;rsquo;s wallet private key?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Argusee: A Multi-Agent Collaborative Architecture for Automated Vulnerability Discovery</title>
      <link>https://www.darknavy.org/blog/argusee_a_multi_agent_collaborative_architecture_for_automated_vulnerability_discovery/</link>
      <pubDate>Fri, 23 May 2025 11:09:50 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/argusee_a_multi_agent_collaborative_architecture_for_automated_vulnerability_discovery/</guid>
      <description>&lt;p&gt;As we envisioned in &lt;strong&gt;&lt;a href=&#34;https://www.darknavy.org/darknavy_insight/the_most_imaginative_new_applications_of_2024/&#34;&gt;DARKNAVY INSIGHT | The Most Imaginative New Applications of 2024&lt;/a&gt;&lt;/strong&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The next generation of AI agents will have excellent reasoning and generalization abilities and be skilled at using a variety of security research tools, inheriting a wealth of human expert knowledge. They will be able to discover more 0-day vulnerabilities in the real world, like top security experts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unsurprisingly, as Large Language Models (LLMs) demonstrate increasing proficiency in handling complex tasks, Agent technology is emerging as a new paradigm in the field of vulnerability discovery. Since Google Project Zero released Naptime[1] last year, an increasing number of Agent-based auditing tools are appearing. By providing LLMs with the necessary toolsets and source code for testing, these tools simulate the behaviour of security researchers to perform code audits and vulnerability confirmation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>If the Person Who Finds a Web3 Hardware Wallet is a Hacker</title>
      <link>https://www.darknavy.org/blog/if_the_person_who_finds_a_web3_hardware_wallet_is_a_hacker/</link>
      <pubDate>Sun, 30 Mar 2025 10:00:52 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/if_the_person_who_finds_a_web3_hardware_wallet_is_a_hacker/</guid>
      <description>&lt;p&gt;In 2024, Web3 security incidents caused by private key leaks have surged, resulting in estimated financial losses exceeding $855 million.&lt;/p&gt;
&lt;p&gt;Private keys function as the sole credentials for blockchain accounts, controlling access to all associated on-chain assets like cryptocurrencies and NFTs. Due to the decentralized nature of blockchain, losing the private key means permanently losing account control, while leakage typically results in asset theft. &lt;strong&gt;Hardware wallets&lt;/strong&gt;, utilizing techniques like offline private key storage and secure chips, have become the primary choice for asset protection.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A First Glimpse of the Starlink User Ternimal</title>
      <link>https://www.darknavy.org/blog/a_first_glimpse_of_the_starlink_user_ternimal/</link>
      <pubDate>Wed, 26 Mar 2025 10:10:22 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/a_first_glimpse_of_the_starlink_user_ternimal/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I think the human race has no future if it doesn&amp;rsquo;t go to space. —— Stephen Hawking&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Starlink is a low Earth orbit (LEO) satellite internet service provided by SpaceX. Users connect to near-Earth orbit satellites through a user terminal, which then connects to the internet via ground gateways.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Basic architecture of the Starlink system [1]&#34; loading=&#34;lazy&#34; src=&#34;https://www.darknavy.org/blog/a_first_glimpse_of_the_starlink_user_ternimal/attachments/d48521bc-861b-4050-82df-1366d6bc01d2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;As the new generation of satellites gradually incorporates laser links, some satellites can communicate with each other via laser. This both reduces reliance on ground stations and improves transmission efficiency, enhancing global coverage.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fatal Vulnerabilities Compromising DJI Control Devices</title>
      <link>https://www.darknavy.org/blog/fatal_vulnerabilities_compromising_dji_control_devices/</link>
      <pubDate>Fri, 21 Mar 2025 10:01:19 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/fatal_vulnerabilities_compromising_dji_control_devices/</guid>
      <description>&lt;p&gt;As logistics drones weave through buildings and surveying equipment delineates urban landscapes, the capillaries of the low-altitude economy are sketching the future with millimeter-level precision.&lt;/p&gt;
&lt;p&gt;DARKNAVY consistently focuses on the construction and breaching of drone security defenses. In this research, we discovered &lt;strong&gt;a fatal exploit chain in DJI remote control devices&lt;/strong&gt;, leading to the complete compromise of the security defenses within the DJI remote controller. How can we assist industry leader DJI in fortifying its security defenses? What potential risks do these vulnerabilities reveal? Welcome to read this article.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CVE-2024-5274: A Minor Flaw in V8 Parser Leading to Catastrophes</title>
      <link>https://www.darknavy.org/blog/cve_2024_5274_a_minor_flaw_in_v8_parser_leading_to_catastrophes/</link>
      <pubDate>Fri, 30 Aug 2024 10:09:29 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/cve_2024_5274_a_minor_flaw_in_v8_parser_leading_to_catastrophes/</guid>
      <description>&lt;p&gt;In May of this year, we noticed that Chrome fixed a V8 vulnerability that was being exploited in the wild in &lt;a href=&#34;https://chromereleases.googleblog.com/2024/05/stable-channel-update-for-desktop_23.html&#34;&gt;this update&lt;/a&gt;. We quickly pinpointed the fix for this vulnerability and discovered that it was a rare bug in the Parser module, which piqued our interest greatly. This led to the following research.&lt;/p&gt;
&lt;h2 id=&#34;from-patch-to-poc&#34;&gt;From Patch to PoC&lt;/h2&gt;
&lt;p&gt;First, let&amp;rsquo;s take a look at the &lt;a href=&#34;https://chromium-review.googlesource.com/c/v8/v8/&amp;#43;/5553030&#34;&gt;patch&lt;/a&gt; for this vulnerability:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-diff&#34; data-lang=&#34;diff&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;index 660fdd2e9ad..de4df35c0ad 100644
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;--- a/src/ast/scopes.cc
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+++ b/src/ast/scopes.cc
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;@@ -2447,7 +2447,7 @@ bool Scope::MustAllocate(Variable* var) {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     var-&amp;gt;set_is_used();
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     if (inner_scope_calls_eval_ &amp;amp;&amp;amp; !var-&amp;gt;is_this()) var-&amp;gt;SetMaybeAssigned();
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;-  DCHECK(!var-&amp;gt;has_forced_context_allocation() || var-&amp;gt;is_used());
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+  CHECK(!var-&amp;gt;has_forced_context_allocation() || var-&amp;gt;is_used());
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   // Global variables do not need to be allocated.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   return !var-&amp;gt;IsGlobalObjectProperty() &amp;amp;&amp;amp; var-&amp;gt;is_used();
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;index 40914d39a4f..65c338f343f 100644
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;--- a/src/parsing/parser-base.h
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+++ b/src/parsing/parser-base.h
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;@@ -2661,6 +2661,7 @@ typename ParserBase&amp;lt;Impl&amp;gt;::BlockT ParserBase&amp;lt;Impl&amp;gt;::ParseClassStaticBlock(
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   }
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   FunctionState initializer_state(&amp;amp;function_state_, &amp;amp;scope_, initializer_scope);
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+  FunctionParsingScope body_parsing_scope(impl());
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   AcceptINScope accept_in(this, true);
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   // Each static block has its own var and lexical scope, so make a new var
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The patch is very simple, the actual effective fix is just one line of code. This line introduces a variable of type &lt;code&gt;FunctionParsingScope&lt;/code&gt; when parsing the &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Static_initialization_blocks&#34;&gt;static initialization block&lt;/a&gt; of a class. Let&amp;rsquo;s examine what this newly introduced variable does:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exploiting Steam: Usual and Unusual Ways in the CEF Framework</title>
      <link>https://www.darknavy.org/blog/exploiting_steam_usual_and_unusual_ways_in_the_cef_framework/</link>
      <pubDate>Thu, 27 Jun 2024 11:39:32 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/exploiting_steam_usual_and_unusual_ways_in_the_cef_framework/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The Chromium Embedded Framework (CEF) is an open-source framework that allows developers to embed the Chromium engine in their applications. Although CEF is widely employed in a range of popular software, including WeChat and the Epic Games Launcher, there has been little security research on it. In this article, we will use the Steam Client Browser (a CEF-based application) as an example to present the vulnerabilities we found and how we exploited them to build three Remote Code Execution (RCE) chains.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AVSS Report: System Security Adversarial Capability Preliminary Evaluation of iOS, Android, and HarmonyOS - Kernel</title>
      <link>https://www.darknavy.org/blog/avss_report_kernel/</link>
      <pubDate>Tue, 11 Jun 2024 15:40:57 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/avss_report_kernel/</guid>
      <description>&lt;p&gt;As consumers, when faced with five different brands and models of smartphones or ten different smart cars, it&amp;rsquo;s difficult for us to determine which one can effectively prevent our privacy from being stolen or maliciously accessed, such as our location or even hearing our conversations inside the car.&lt;/p&gt;
&lt;p&gt;Even as ordinary consumers, we currently have no way of knowing. As technology professionals who have long studied in APT(Advanced Persistent Threat) attacks, we understand that these devices can ultimately be compromised in the face of advanced persistent attacks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Strengthening the Shield: MTE in Heap Allocators</title>
      <link>https://www.darknavy.org/blog/strengthening_the_shield_mte_in_memory_allocators/</link>
      <pubDate>Wed, 03 Jan 2024 16:19:13 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/strengthening_the_shield_mte_in_memory_allocators/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In 2018, with the release of ARMv8.5-A, a brand new chip security feature &lt;a href=&#34;https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Arm_Memory_Tagging_Extension_Whitepaper.pdf&#34;&gt;MTE&lt;/a&gt; (Memory Tagging Extensions) emerged. Five years later, in 2023, the first smartphone to support this feature was released — &lt;a href=&#34;https://blog.google/products/pixel/google-pixel-8-pro/&#34;&gt;Google Pixel 8&lt;/a&gt; — marking the official entry of MTE into the consumer market. Although this feature is not yet enabled by default, developers can &lt;a href=&#34;https://googleprojectzero.blogspot.com/2023/11/first-handset-with-mte-on-market.html&#34;&gt;turn it on&lt;/a&gt; themselves for testing.&lt;/p&gt;
&lt;p&gt;As a powerful defense against memory corruption, there has not yet been a comprehensive analysis of MTE&amp;rsquo;s defensive boundaries, capabilities, and its impact on performance on the internet. Previously, Google Project Zero published a series of &lt;a href=&#34;https://googleprojectzero.blogspot.com/2023/08/mte-as-implemented-part-1.html&#34;&gt;articles about MTE&lt;/a&gt;, focusing on the more low-level security aspects of MTE. However, the actual impact of MTE on real software security remains a mystery. To discuss this topic, heap allocators provide an excellent starting point. Heap memory corruption issues have gradually become the mainstream type of binary vulnerabilities. For reference, see the &lt;a href=&#34;https://github.com/microsoft/MSRC-Security-Research/blob/master/presentations/2019_09_CppCon/CppCon2019%20-%20Killing%20Uninitialized%20Memory.pdf&#34;&gt;presentation&lt;/a&gt; by MSRC at CppCon 2019:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exploiting the libwebp Vulnerability, Part 2: Diving into Chrome Blink</title>
      <link>https://www.darknavy.org/blog/exploiting_the_libwebp_vulnerability_part_2/</link>
      <pubDate>Fri, 03 Nov 2023 14:10:17 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/exploiting_the_libwebp_vulnerability_part_2/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;When we examine a third-party library vulnerability in a real environment, we often encounter numerous complex variables that exist within the vulnerability&amp;rsquo;s context. Exploiting such a vulnerability is not as easy as one might imagine.&lt;/p&gt;
&lt;p&gt;Here is the information we know:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The overflowed variable &lt;a href=&#34;https://source.chromium.org/chromium/chromium/src/&amp;#43;/d53886d694334f194b267db3af165e5cd61ef489:third_party/libwebp/src/src/dec/vp8l_dec.c;l=437&#34;&gt;huffman_tables&lt;/a&gt;, has a size of 0x2f28.&lt;/li&gt;
&lt;li&gt;The heap chunk is allocated in the renderer&amp;rsquo;s ThreadPool, while most objects are allocated in the main thread.&lt;/li&gt;
&lt;li&gt;We can write a partially controlled 4-byte integer with an offset that is a multiple of 8 bytes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In Chrome, different-sized heap chunks are stored in separate buckets, isolating objects of different sizes to ensure &lt;strong&gt;security&lt;/strong&gt;. Typically, achieving heap exploitation in Chrome requires identifying objects of the same size for layout purposes and then utilizing Use-After-Free (UAF) or Out-of-Bounds (OOB) techniques to manipulate other objects, leading to information disclosure or control-flow hijacking. In the following, we will share the objects we have discovered, as well as attempting to bypass this mechanism.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exploiting the libwebp Vulnerability, Part 1: Playing with Huffman Code</title>
      <link>https://www.darknavy.org/blog/exploiting_the_libwebp_vulnerability_part_1/</link>
      <pubDate>Fri, 03 Nov 2023 14:10:12 +0800</pubDate>
      <guid>https://www.darknavy.org/blog/exploiting_the_libwebp_vulnerability_part_1/</guid>
      <description>&lt;h2 id=&#34;vulnerability-localization&#34;&gt;Vulnerability Localization&lt;/h2&gt;
&lt;p&gt;In the initial phase of vulnerability analysis, due to the absence of readily available PoCs or detailed analysis reports, we first attempted to read and understand the &lt;a href=&#34;https://github.com/webmproject/libwebp/commit/902bc9190331343b2017211debcec8d2ab87e17a&#34;&gt;patch code&lt;/a&gt; for CVE-2023-4863 in the upstream repository of webmproject/libwebp. However, the WebM Project&amp;rsquo;s official patch was relatively complex, making it difficult for us to accurately pinpoint the root cause of the vulnerability.&lt;/p&gt;
&lt;p&gt;Thus, we turned our attention to Apple&amp;rsquo;s official patch for CVE-2023-41064, and performed a comparison of the ImageIO framework before and after the update using BinDiff. We noticed that Apple&amp;rsquo;s patch involved fewer code changes and was much easier to understand.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
