A browser marketed as the fastest, most private, safest way to browse — independently reported to behave like malware, and tied to the illegal-gambling cybercrime economy of Southeast Asia. Below: what researchers found, and what I verified directly against the live site, the Windows launcher and the Android package.
Do not install this, and treat ub66.com as unsafe.
In October 2025 the network-security firm Infoblox, working with the
UN Office on Drugs and Crime (UNODC), published research finding the
Windows build covertly installs background programs, behaves like a keylogger, disables
browser security features, routes traffic through China, and is distributed through a
network of illegal gambling sites. My own inspection of the current build (below) confirms
the operator identity, the China-hosted proxy infrastructure and a cluster of dangerous
engineering choices — including a publicly distributed APK that is debuggable.
The landing page is a single static screen with three promises and a download button:
| Claim on ub66.com | Original Chinese |
|---|---|
| "Fastest Browser — use unique technology to improve the internet speed" | 浏览速度更快 · 寰宇独家线路加速技术 |
| "Best Secure — keep you away from danger" | 最佳的安全性 · 保护您远离危险 |
| "Most Private — simple settings to avoid privacy leaks" | 最高级别的隐私保护 · 免设置,隐私不外露 |
It is served in five languages — Simplified Chinese, Traditional Chinese, English, Korean and Vietnamese — which matches the audience the researchers describe: users across Asia trying to reach sites blocked or illegal in their own jurisdiction.
Infoblox and UNODC reverse-engineered the Windows build. Their findings were covered by WIRED, Android Authority and Gadgets 360. Their conclusion: the features are "consistent with remote access trojans (RATs) and other malware."
| Finding | What it means |
|---|---|
| Keylogging | Records keystrokes typed by the user. |
| Traffic via China | All browsing inside the browser is routed through servers in China. |
| Silent background installs | Covertly installs several programs that run in the background. |
| Tampering with the device | Alters the device's network connections and settings. |
| Security features removed | Right-click, settings and developer tools disabled; the browser runs with flags that disable sandboxing and legacy-SSL protections. |
| Screenshot exfiltration | Installs an extension able to upload screenshots to domains linked to the browser. |
| Environment probing | On launch, checks the user's location, language, and whether it is running inside a virtual machine / sandbox. |
Infoblox traced the browser's web infrastructure to BBIN (also Baoying Group), an iGaming software supplier founded in Taiwan in 1999 and now based largely in the Philippines — grouped by researchers as threat actor "Vault Viper", connected to money laundering, illegal online gambling, human trafficking and forced-labour scam compounds. Researchers say the browser was advertised only on the domains Vault Viper controls, typically linked at the bottom of casino sites next to the BBIN logo — and that in criminal hands it would be "the perfect tool to identify wealthy players and obtain access to their machine."
Independent inspection of the live site and the current binaries on 19 October 2026, without executing anything. This section is my own evidence; it corroborates the research above and adds detail the press coverage did not have.
| Item | Observation |
|---|---|
| www.ub66.com | HTTP 200 but no ordinary web server: response headers are Google Cloud Storage (x-goog-generation, server: UploadServer) served through CloudFront (x-amz-cf-pop: HKG1). The site is a static bucket, not an operated web application. |
| DNS | Resolves to AWS CloudFront edge IPs (54.230.70.x); name servers are AWS Route 53. |
| WHOIS | Registered 2014-03-17 via GoDaddy, expires 2027-03-17, registrant redacted. Mail handled by GoDaddy (smtp.secureserver.net). |
| Analytics | Two Google Analytics properties on every page: legacy UA-105143657-1 and GA4 G-CE11RD4VBG. |
The download button does not link to a file. It goes to a gate page that runs a fake CAPTCHA and then looks up the payload path from a JSON manifest:
What files/files.json currently returns:
{"windows": "files/2lDT9zYtHf2hdZvAarEhmA/UB-Launcher.exe",
"android": "files/2lDT9zYtHf2hdZvAarEhmA/UniverseBrowser.apk",
"ios": "https://apps.apple.com/cn/app/…id1541131030"}
download.html generates a 4-digit code in
JavaScript (getRandomNumber()), draws it to a canvas, and compares your input
against the same variable in the same page. No server is asked. It stops nothing except
crawlers and sandbox scanners that won't solve it.
getRandomTime()) after a correct code, and retry limits are surfaced as
server errors. This is sandbox-evasion pacing, not user experience.
cdn.n4dhx7bt.com is an eight-character random domain registered
2021-09-29 at GoDaddy, delegated to throwaway-looking name servers
(snm1z3c.88ylccne.com), fronted by CloudFront. Requesting the same APK three times
in six seconds:
| Request | Last-Modified returned | Actual time |
|---|---|---|
| 1st | Mon, 19-Oct-2026 15:11:38 GMT | 15:11:5x |
| 2nd | Mon, 19-Oct-2026 15:11:41 GMT | 15:11:5x |
| 3rd | Mon, 19-Oct-2026 15:11:58 GMT | 15:11:5x |
The file does not change (identical Content-Length every time) — the header is
generated from the clock at request time. The effect: every download looks like a
freshly built, never-before-seen file. Cache validation, "have I seen this binary" reputation
lookups and timestamp correlation against a known sample all stop working. This is a
deliberate anti-forensics measure, and it is not something a legitimate software CDN does.
| Property | Result |
|---|---|
| Filename | UB-Launcher.exe |
| Type | PE32 executable (GUI) Intel 80386, UPX compressed, stripped to external PDB |
| Size | 4,806,656 bytes |
| SHA-256 | 0592aad472bbadeb6edc55573d7bcd2cff560504de5c94d8e1600188f143e523 |
| Signature | none no code-signing certificate — Windows will warn on execution |
| Imports visible | WS2_32 (network), CRYPT32, ADVAPI32, SHELL32, OPENGL32, OLEAUT32 |
The file is named a launcher and is packaged with UPX, which compresses the executable so its real code and strings are not visible until it decompresses itself in memory. UPX is a legitimate packer, but on a consumer download with no code signature it is the standard way to make static analysis and signature-based antivirus fail. This matches the researchers' observation that the browser "covertly installs several programs" — a launcher is exactly the component that fetches and installs the rest.
UniverseBrowser.apk is 131,428,100 bytes, 6,078 files, built on a Chromium base
(lib/arm64-v8a/libchrome.so, SplitChromeApplication) — version string
120.0.0.2102. Its identity fields resolve the ownership question outright:
| Field | Value | Note |
|---|---|---|
| Package name | bbin.mobile.browser | BBIN the company name is the package namespace |
| Signing certificate | O=bbin, OU=bbin, CN=kingsley, C=tw | self-signed an individual developer cert, not an organisational one |
| SHA-256 | 9aa99f839ef5fc2fc12c85fb46898aad1dc886b1282d9cf7684c9d46170ab4a6 | |
debuggable | true | critical a production build left debuggable — anyone with ADB can attach a debugger and run code in the app's context |
allowBackup | false | app data deliberately not exportable |
The certificate and the package name are hard, first-party evidence for the link the researchers established from web infrastructure: the app is a BBIN product, signed by a developer in Taiwan. There is no third party to blame here.
A browser needs the network, storage and notifications. This one also asks for:
| Permission | Why it matters in a browser |
|---|---|
| READ_CONTACTS GET_ACCOUNTS MANAGE_ACCOUNTS USE_CREDENTIALS | danger Read the address book and enumerate/manage the accounts on the device. No browsing feature requires this. |
| ACCESS_FINE_LOCATION ACCESS_COARSE_LOCATION | danger Precise location — matching the researchers' finding that the app checks where you are. |
| CREDENTIAL_MANAGER_* | danger Participate in the platform credential flow — the code path that hands saved passwords to apps and sites. |
| DOWNLOAD_WITHOUT_NOTIFICATION | danger Download files without showing the user a notification. |
| REQUEST_INSTALL_PACKAGES | danger Prompt the user to install other APKs. Together with the line above this is the classic dropper combination. |
| QUERY_ALL_PACKAGES | high Enumerate every app installed on the phone — a fingerprinting and targeting signal. |
| RECORD_AUDIO · CAMERA | high Microphone and camera access. |
| RECEIVE_BOOT_COMPLETED FOREGROUND_SERVICE | high Start itself at boot and keep running in the foreground. |
| READ/WRITE_EXTERNAL_STORAGE READ_MEDIA_IMAGES/VIDEO/AUDIO | high Broad access to the phone's files and media. |
| NFC · BLUETOOTH_* | Peripheral access a browser has no reason to want. |
Taken one at a time each has a story. Taken together — contacts, accounts, credentials, precise location, silent downloads, ability to install further apps, autostart — the set describes a data-collection and payload-delivery platform that happens to render web pages.
The claimed "寰宇独家线路加速技术" (exclusive line-acceleration technology) is
lib/arm64-v8a/libgojni.so — a 14 MB Go library whose internal package paths
(normally stripped in release builds) are intact:
/gomobile/src/ub66.com/HttpProxy/dududu/pkg/tunnel/ssh.go
/gomobile/src/ub66.com/HttpProxy/dududu/pkg/tunnel/tunnel.go
/gomobile/src/ub66.com/HttpProxy/dududu/pkg/failover/txt_lookup.go
/gomobile/src/ub66.com/HttpProxy/dududu/pkg/secretutil/rc4.go
/gomobile/src/ub66.com/HttpProxy/dududu/pkg/secretutil/teapotparser.go
/gomobile/src/ub66.com/HttpProxy/dududu/pkg/route/route.go
/gomobile/src/ub66.com/HttpProxy/dududu/pkg/forwarder/forwarder.go
Read together, that is the whole architecture, and none of it is "acceleration":
tunnel/ssh.go — the proxy is carried over SSH tunnels (it links golang.org/x/crypto/ssh). Your HTTP traffic is wrapped in an SSH session to their server, so it leaves your network looking like an SSH connection, not a web request.secretutil/rc4.go + teapotparser.go — a custom framing protocol internally called "teapot" with RC4 obfuscation. RC4 is cryptographically broken and deprecated everywhere else; here its job is to hide the traffic from inspection, not to protect it.failover/txt_lookup.go — the client finds its proxy servers through DNS TXT records. That is a takedown-resistance design: block or seize a host, change one TXT record, every installed client migrates. It also means the server list is invisible in the page source, the store listing, and to anyone who doesn't query TXT.route/route.go — maintains a local database of the domains you visit (formatAndHashDomain, getRootDomain, an SQLite store). The client keeps a record of your browsing destinations on disk.dig ub66.com TXT currently returns two opaque 33-character tokens:
"hhpnzkm1dcgb4jgds9w5kk41c8k8qf63"
"vggo8v3u1fs7rv3or2fhc7rmej"
These are not SPF, DKIM or domain-verification records — they are not in the formats those use.
They are the kind of payload the txt_lookup failover path is built to consume.
The library contains hardcoded server addresses and a bootstrap resolver. Geolocating them:
| Address | Location | Operator | Role |
|---|---|---|---|
| 223.5.5.5:53 | Hangzhou, Zhejiang, China | Aliyun (Alibaba) | bootstrap DNS AliDNS, used to resolve before the tunnel is up |
| 47.107.54.97 | Shenzhen, Guangdong, China | Aliyun (AS37963) | tunnel endpoint |
| 47.107.59.28 | Shenzhen, Guangdong, China | Aliyun (AS37963) | tunnel endpoint |
| 47.243.69.88 | Hong Kong | Alibaba Cloud HK (AS45102) | tunnel endpoint |
This is the concrete form of the researchers' "routes traffic through servers in China": at least two hardcoded proxy endpoints sit on Alibaba Cloud in Shenzhen, mainland China, with a Hong Kong node and a Chinese DNS resolver baked in. Combined with the SSH + RC4 + TXT design, the picture is a private, obfuscated, China-rooted tunnel that the operator can re-point at will — and every byte you browse inside this browser passes through it in the clear at the exit.
Headlines saying it "routes all internet traffic through China" are easy to misread. I
checked the manifest for a VpnService, accessibility service or device-admin
receiver — none are declared. The proxy is
org.chromium.base.local_proxy.ProtectorService, a Chromium component that redirects
this browser's own traffic into the Go tunnel. So: pages you open in Universe Browser
go through their servers; the rest of your phone's traffic does not. That is a meaningful limit
on the damage — and it is still more than enough to expose everything you do in the app they
built to be the thing you browse with.
| Field | Value |
|---|---|
| App Store name | 寰宇浏览器安全版 ("safe version") |
| Seller | CYBERLAND GAME STUDIO CO., LTD. — a "game studio" publishing a browser |
| Bundle ID | com.bbin.Titanic |
| Version / updated | 28.110.10 · released 2026-10-14 (actively maintained) |
| Rating | 2.99 / 5 from 620 ratings |
| Older iOS app (id1109296472) | gone no longer returned by the App Store lookup API — delisted |
| Google Play | absent Android distribution is sideloaded APKs only |
The bundle identifier com.bbin.Titanic and the developer certificate
O=bbin agree: the iOS app is BBIN's too, published under a game-studio entity. The
older listing having disappeared while the "safe version" replaced it is consistent with an app
that gets removed and re-published rather than one that sits in a store on its merits. That it
is not on Google Play is the single loudest signal here — sideloading is how Android
malware is delivered, because it skips store review entirely.
Three distinct groups, with different exposure:
A byte-faithful archive of the live landing page, captured 19 October 2026, running in a phone frame. It is the real page — same HTML, CSS, images and JavaScript — with three deliberate changes, because a live malicious-adjacent page should not be republished with its wires attached:
guard.js): cross-origin requests, WebSockets
and beacons fail. Verified: zero external requests on load.
Try the buttons — the archive refuses, and the bar at the bottom of the frame marks it as a
stored copy. The download gate page (download.html) is archived too, including its
fake canvas CAPTCHA, but its payload lookup is blocked.
What I did: fetched the site and its assets with a desktop Chrome user-agent; read the shipped JavaScript (including the download gate); resolved DNS and WHOIS; fetched the APK and the Windows launcher over HTTPS and analysed them statically only — file type, hashes, PE metadata, the compiled manifest, the signing certificate and embedded strings. Nothing was executed, installed, or run in a sandbox with network access.
| Artifact | Bytes | SHA-256 |
|---|---|---|
| index.html (live, original bytes) | 3,571 | efb29a5f7500ea006b3a865dc9110ce7783b7a742dd7eebe9beeca0085084a59 |
| download.html (live) | 6,253 | 2a2bb560c23aa327f0df96d4a4f75770bffe320b0e9668d6cc3a68e683836b21 |
| UB-Launcher.exe | 4,806,656 | 0592aad472bbadeb6edc55573d7bcd2cff560504de5c94d8e1600188f143e523 |
| UniverseBrowser.apk | 131,428,100 | 9aa99f839ef5fc2fc12c85fb46898aad1dc886b1282d9cf7684c9d46170ab4a6 |
bbin.*, certificate O=bbin), not on the page.txt_lookup failover design and are not standard SPF/DKIM/verification formats, but I have not decrypted them, so I present that as strong inference rather than proof.Last-Modified header is a fact I measured. Why it is done is my inference — a legitimate CDN has no reason to do it.
This exhibit archives a public marketing page. It deliberately does not host,
mirror or re-share UB-Launcher.exe or UniverseBrowser.apk. The hashes
and file sizes are published so anyone can identify a copy they encounter; the files themselves
stay where they are. Analysing a sample is not the same as distributing it.