---
id: "MAL-2026-14588"
kind: "package"
aliases: ["MAL-2026-14588"]
title: "Malicious code in yaml-report-formatter (PyPI)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "yaml-report-formatter", "fixed": [], "affected": "= 0.1.0; = 0.2.0; = 0.3.0", "ecosystem": "pypi"}]
ecosystems: ["pypi"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-08-28T09:14:39+00:00"
first_seen_at: "2026-10-26T20:51:56+00:00"
updated_at: "2026-10-26T21:12:36+00:00"
sources: [{"source": "osv-malicious", "url": "https://osv.dev/vulnerability/MAL-2026-14588", "first_seen_at": "2026-10-26T20:51:56+00:00"}]
---

# Malicious code in yaml-report-formatter (PyPI)

## Affected

- pypi:yaml-report-formatter affected = 0.1.0; = 0.2.0; = 0.3.0 fixed ?

## Timeline

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

## From the sources

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

## Source: amazon-inspector (fd762621d7d279a25921e8f8c7d1a7e8040948bd3ac445ca9cabd8f200ce36f0)
Package presents itself as a YAML report formatter but its top-level src/yaml_report_formatter/__init__.py starts a daemon thread on import that reads a token from /tmp/.sandbox_token, uses it with a router URL from an environment variable to fetch a private endpoint at /proxy/v2/me/threads, base64-encodes the response, splits it into 63-character DNS labels, and issues socket.getaddrinfo lookups against subdomains of dnshook.site to leak the data over a covert DNS side-channel. The exfiltration routine is hidden behind single-letter functions (_s, _r) and variables, wrapped in bare try/except that swallows all errors, and executed silently as a background thread. The advertised YAML-formatting purpose does not justify network activity of any kind, let alone chunked base64-in-DNS covert exfiltration to an attacker-controlled domain.

## Source: kam193 (207190bd409999efcab9a56f8e536b6caf9c6a5ab92a134b77421f4bf1650f01)
During import, the package collects sensitive information and exfiltrates it using DNS queries.


---

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.


Campaign: 2026-08-ekx-report-utils


Reasons (based on the campaign):


 - targetted-attack


 - exfiltration-generic


 - exfiltration-credentials

---

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