Security researchers have reverse-engineered two Yandex Android applications and uncovered extensive surveillance capabilities that affect millions of users across Samsung, Xiaomi, Honor, and Realme devices. The findings, presented in a multi-part series, detail how Yandex Search and Yandex Browser collect audio, location, payment, and contact data with minimal user visibility.
Audio Pre-Trigger Buffer
The voice assistant Alice continuously records microphone input into a ring buffer. When the wake word is detected, the application sends the preceding audio segment to Yandex servers. The buffer size is not fixed in code but is controlled remotely through parameters such as HasPreroll, buffer-size-ms, and loggingSoundLengthBeforeTriggerMs. Default configuration uses 48000 samples at 16 kHz, equaling three seconds, yet the server can extend this window arbitrarily or disable the feature entirely.
Audio flows from AudioRecord through the circular buffer, Opus or AAC encoding, and WebSocket transmission to wss://uniproxy.alice.yandex.net. The pre-trigger content is also used for biometric voiceprint construction.
WiFi Fingerprinting and Passive Geolocation
Applications scan nearby WiFi access points, collecting BSSID, SSID, and RSSI values. These data are sent to startup.mobile.yandex.net for server-side geolocation accurate to 10-50 meters indoors. The same mechanism registers a passive location provider that intercepts coordinates obtained by any other application on the device and records cellular tower identifiers including MCC, MNC, Cell ID, and LAC/TAC.
Payment Data Handling
Before tokenization, primary account number (PAN) and CVV values are transmitted to mobpayment.yandex.net. Researchers contrast this server-side approach with client-side tokenization used by Stripe, Braintree, and Adyen, noting that any logging failure or compromise of intermediate servers could expose card details.
JavaScript Bridge and Contact Exfiltration
Twenty-one addJavascriptInterface calls expose 94 @JavascriptInterface methods. Any cross-site scripting vulnerability on a yandex.ru subdomain grants attackers direct access to native device functions. Contact data are monitored in real time via ContentObserver on ContactsContract.Contacts.CONTENT_URI. Names, phone numbers, emails, organizations, photos, and call logs are serialized with protobuf and uploaded over HTTP POST with OAuth authorization. The application also reads numbers from WhatsApp, Telegram, and Viber using MIME-type filters.
Additional Surveillance Mechanisms
Runtime.getRuntime().exec("logcat -d") attempts to capture system logs, which are AES-encrypted and exfiltrated. PackageManager.getInstalledApplications and shell commands enumerate all installed applications, including banking apps, VPN clients, and content blockers. Hardcoded DNS servers 77.88.8.8 and 77.88.8.1 bypass system, VPN, and DoH configurations. A native library, libquarkenstein_daemons.so, implements audio pipelines, process manipulation, and encryption routines.
Remote configuration flags exceeding seventy allow the server to enable map saving, force Alice activation, or delay permission requests for years. The analysis concludes that these practices operate within the bounds of the published terms of service yet rely on architecture considered outdated by modern payment and privacy standards.

