Blizzard / Blizzard/s2client-proto

Day 0 exploit regarding unit tags

Open
#161 0 comments 6 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
4k
Forks
440
PR merge metrics
No merged PRs in 30d

Description

The difference of IDs between sequentially created units, regardless of which player created them, is 262144 (for probes) plus/minus 2. This can be used to determine how many units your opponent has created since you last created a unit, which can be used to detect ling rushes and among other things.

Proposed fix: have the protocol make a mapping between real unit id and a random tag, then interchange them where appropriate.

See discussion on the discord regarding this.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the protocol definitions in s2client-proto and the issue's description of sequential unit IDs. Confirm where unit IDs are exposed and how a real-ID-to-random-tag mapping would affect the protocol. Done means the information leak is removed without breaking unit identification for either player.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, security
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.