glass-of-waterPyPI
Advisory published Updated
glass-of-water is a confirmed malicious PyPI package (MAL-2026-4751) that steals credentials and exfiltrates sensitive data (malicious versions 1.0.1, 1.0.3). Do not install it — remove it immediately and rotate any exposed credentials.
Malicious code in glass-of-water (PyPI)
What this malware does
glass_of_water/init.py embeds 10 Google Gemini API keys (AIzaSy...) split across 5-part dictionaries and reassembled at runtime by _get_api_key() (L6-19). The split-and-reassemble pattern is a deliberate evasion of registry/secret scanners. The exported water(prompt,...) function unconditionally instantiates genai.Client(api_key=api_key) and calls client.models.generate_content(model='gemini-flash-latest', contents=system_instruction + prompt) (L36-41) — there is no env-var override or opt-in path for caller-supplied credentials. Two installer-relevant harms result: (1) live third-party credentials are redistributed to every installer, who can extract and abuse them against Google's Gemini API; (2) any caller of water() silently routes their prompt content to a Google project owned by the author, where it is billed and logged under the author's account. Author metadata is placeholder (Your Name <[email protected]>) and the description is generic, consistent with a low-effort publish rather than a maintained utility.
Malicious versions
Indicators of compromise (SHA-256)
Detection & response playbook
Credential / info stealerFind it
Search your lockfiles and build artifacts for glass-of-water (2 malicious versions).
If you installed it — respond
glass-of-water is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.
Did it already run?
If glass-of-water was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.
Frequently asked questions
Campaign
References
Credits
- Amazon Inspector · finder
Detect & block this
O3 blocks glass-of-water-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.