---
id: "MAL-2026-17193"
kind: "package"
aliases: ["MAL-2026-17193"]
title: "Malicious code in metrio (PyPI)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "metrio", "fixed": [], "affected": "= 999.0.0; = 1000.0.0; = 1001.0.0", "ecosystem": "pypi"}]
ecosystems: ["pypi"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-09-27T07:06:20+00:00"
first_seen_at: "2026-10-26T20:51:58+00:00"
updated_at: "2026-10-26T21:08:21+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-17193", "first_seen_at": "2026-10-26T20:51:58+00:00"}]
---

# Malicious code in metrio (PyPI)

## Affected

- pypi:metrio affected = 999.0.0; = 1000.0.0; = 1001.0.0 fixed ?

## Timeline

- 2026-10-26T20:51:58+00:00 osv-malicious https://osv.dev/vulnerability/MAL-2026-17193

## From the sources

---
_-= Per source details. Do not edit below this line.=-_

## Source: amazon-inspector (ce8ee66a844d7abed74f4b9d223c8ef8f35bae380104526f4f8bc57295c47320)
metrio 999.0.0 executes a hostname-exfiltration beacon from both setup.py (install time) and metrio/__init__.py (import time). The code reads the local machine's hostname, hex-encodes it, and embeds it as a subdomain of the attacker-controlled domain 84avt3516s4q1obsv9q0mh4u2l8dw3ks.x9.to, then triggers a DNS resolution via socket.gethostbyname and a plain-HTTP GET via urllib.request.urlopen against that host. The version number 999.0.0 and the self-described 'dependency-confusion PoC placeholder' summary are the canonical high-version dependency-confusion shape: the package is intended to win resolution against an internal package of the same name and beacon the resolving host back to the operator. Installer harm on `pip install metrio` or `import metrio` is disclosure of the installer's hostname to a third-party collector, and confirmation to the operator that this internal name resolves to the public index from the installer's build environment.

## Source: kam193 (f7b0289ef68f815e0fd296282739990dfc918c0070fb5acdae2787ca8eba23f3)
Installing the package or importing the module exfiltrates basic information about the host, and the package has no other purpose.


---

Category: PROBABLY_PENTEST - Packages looking like typical pentest packages, but also anything that looks like testing, exploring pre-prepared kits, research & co, with clearly low-harm possibilities.


Campaign: GENERIC-standard-pypi-install-pentest


Reasons (based on the campaign):


 - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.


 - The package overrides the install command in setup.py to execute malicious code during installation.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
