---
id: "MAL-2026-15488"
kind: "package"
aliases: ["MAL-2026-15488"]
title: "Malicious code in calcboxlite (PyPI)"
severity: "critical"
cvss: null
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "calcboxlite", "fixed": [], "affected": "= 1.0", "ecosystem": "pypi"}]
ecosystems: ["pypi"]
tags: ["malicious", "package"]
not_affected_if: []
published_at: "2026-08-28T17:02:12+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-15488", "first_seen_at": "2026-10-26T20:51:56+00:00"}]
---

# Malicious code in calcboxlite (PyPI)

## Affected

- pypi:calcboxlite affected = 1.0 fixed ?

## Timeline

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

## From the sources

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

## Source: amazon-inspector (227fe04d85516bd5348dea2c0c25078d057eacb4f439fd6a241ea0409b7afd09)
setup.py and calcboxlite/__init__.py both invoke a top-level `_report()` function that reads `getpass.getuser()` and `socket.gethostname()` and POSTs them as JSON to a hardcoded remote collector at https://k4m2qhx7ptv9nzcr3bwe8syd6ljfa0gu1.oast.invalid/collect. The beacon fires automatically on `pip install` and again on every `import calcboxlite`, so consumers in sandboxed builds, CI runners, REPLs, or downstream libraries all transmit installer identity to the endpoint. The destination host is unrelated to any advertised calculator functionality and is characteristic of an out-of-band interaction collector used for identifying vulnerable installers.

---

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