Safeguard
Vulnerability Analysis•

CVE-2025-34449: Critical Buffer Overflow in scrcpy up to 3.3.3

CVE-2025-34449 is a bounds check bug in scrcpy through 3.3.3 that a compromised device can trigger on the host. Update to a build with commit 3e40b24.

Safeguard Security Team
3 min read

CVE-2025-34449 is a critical bug (CVSS 9.1) in Genymobile scrcpy, the tool that mirrors and controls Android devices. Versions up to and including 3.3.3 mishandle a device message, so a compromised device can cause out of bounds reads on the host. The fix is commit 3e40b24.

What's affected

The record lists Genymobile scrcpy versions up to and including 3.3.3, prior to commit 3e40b24. The flaw is in the function sc_device_msg_deserialize(), which parses messages that the Android device sends back to the computer running scrcpy.

The upstream fix is a one line change to a bounds check in the message parsing code, with the commit message saying the check was incorrect. I could not confirm from the pages I read which release number first includes it. Check the scrcpy releases page and confirm that your version is newer than 3.3.3 and includes that commit.

How to check if you're exposed

Run the version command on every machine where scrcpy is installed:

scrcpy --version

If it prints 3.3.3 or lower, update. If you installed through a package manager, check whether your distribution has packaged a fixed build, since distributions often lag upstream. Package managers on Linux, Homebrew on macOS and Scoop on Windows each have their own query for the installed version.

The risk depends on the device. The record describes a compromised device sending crafted messages. If you only connect phones you own and trust, the exposure is lower than if you connect test devices, shared devices or devices from unknown sources.

What to do now

  1. List developer and test machines that have scrcpy installed.
  2. Update to a release newer than 3.3.3 that contains commit 3e40b24, or build from upstream source.
  3. Until updated, avoid mirroring untrusted or possibly compromised Android devices.
  4. Keep tooling versions in your software inventory so that the next advisory is a lookup, not a hunt.
  5. If scrcpy is bundled in another project or an internal image, update that copy too.

Why it matters

The record classifies the weakness as CWE-502, deserialization of untrusted data (CWE-502), although the description reads as a classic bounds checking bug in a parser. Whatever the label, the lesson is the same. A host application that parses bytes from a peer has to treat those bytes as hostile, even when the peer is a device the user plugged in.

The outcome in the record is out of bounds reads, which may mean memory corruption or a crash, and the record says it may allow further exploitation on the host. The record does not claim active exploitation, and it is not on the CISA Known Exploited Vulnerabilities list. Developer workstations are still valuable targets, because they hold source code and credentials.

The free in-browser dependency scan at gold.safeguard.sh/scan can help you find projects in your own repositories that vendor or depend on affected code.

Quick check

Which scrcpy versions are affected?

The record says versions up to and including 3.3.3, before commit 3e40b24.

Who can trigger it?

According to the record, a compromised device connected to scrcpy can send the crafted messages.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

We email you a link to confirm, and only then add you to the list. Unsubscribe in one click. Privacy

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.