
CVE-2026-78997 の PoC。Android 版 UC Browser における Universal XSS。細工された URL ビルダー、コールバックディスパッチオラクル、および脆弱なブリッジを観察するための Frida フックを含みます。
CVE-2026-78997 の PoC 資料 — UC Browser for Android
(com.UCMobile.intl、バージョン 13.7.8.1314) におけるユニバーサル
クロスサイトスクリプティング。Omri Inbar (Novee) により開示。
ブリッジのホワイトリストに登録されたドメイン mtmsg.uc.cn 上の
リフレクテッド XSS により、特権的な ucapi JavaScript ブリッジへの
アクセスが可能になる。account.openLoginWindow ブリッジ API は、
攻撃者が制御する JavaScript 文字列をログイン/却下コールバックとして
ネイティブメモリに保存し、それらはページナビゲーションをまたいで
存続する。ユーザーが遷移先サイト上でネイティブのログインダイアログを
却下すると、コールバックは空の URL ガードとともにディスパッチされ、
ブラウザは読み込まれている任意のページのオリジンで
WebView.evaluateJavascript() を用いてそれを実行する —
これにより同一生成元ポリシーを回避する。
| File | Purpose |
|---|---|
poc_url_builder.py | 文書化されたとおりに細工された mtmsg.uc.cn URL を組み立てる (リフレクテッド email パラメータ、base64 ステージ 2、account.openLoginWindow 登録、ナビゲーション)。プリセット: alert (研究者のデモ)、demo (無害)、exfil (収集テンプレート)。文字列を組み立てるのみ — ホストに接続しない。 |
callback_oracle.py | 脆弱なコールバックディスパッチ機構の自己完結型ミニチュア (保存 → ナビゲート → 空の URL ガードでディスパッチ)。--fixed を付けて実行すると、オリジンに束縛された修正が同じチェーンをブロックする様子を確認できる。 |
frida_hooks.js | 所有するハードウェア上の実アプリでディスパッチを観察するための WebView.evaluateJavascript への Frida フック。 |
# 1. Build the crafted URL (string assembly only)
$ python3 poc_url_builder.py alert --victim https://www.google.com
# 2. Watch the mechanism (vulnerable vs. fixed dispatch)
$ python3 callback_oracle.py
$ python3 callback_oracle.py --fixed
# 3. Observe in the real app (device/emulator you own, vulnerable build)
$ frida -U -f com.UCMobile.intl -l frida_hooks.js --no-pause
脆弱なビルドの場合: 細工された URL を開き、被害者サイトへ ナビゲートさせ、その後ネイティブのログインダイアログを却下する (サインインオプションをタップして X を押すか、その他の方法で閉じる)。 保存されたコールバックが被害者サイトのオリジンで発火する。
URL ビルダーはネットワーク I/O を一切行わない。mtmsg.uc.cn の
リフレクションとブリッジの挙動は、研究者の公開開示 (以下に参照) に
文書化されている。自分が所有する、または明示的にテストを許可された
デバイスおよびネットワーク位置に対してのみテストすること。コンピュータ
システムへの不正アクセスは、ほとんどの法域で違法である。