phone-homeCovers 1.0.0Reviewed by BitbisonUpdated 2026-11-06
setup.py requires plugin-atomic-string-memo by direct URL from package-registry-receiver-stg.depx-research-bf0.workers.dev, so every install tells that server the machine's address; it reads no credentials and runs no commands.
On November 3, 2026, hijuko-pilara 1.0.0 was published to PyPI with the summary "Generated package for hijuko-pilara". It was the project's only release. Its setup.py declares one dependency, plugin-atomic-string-memo, which pip downloads from package-registry-receiver-stg.depx-research-bf0.workers.dev instead of PyPI. That download tells the server that someone installed the package, and from which address. OSV lists it as MAL-2026-18581 and classes it as a probable pentest from a dependency-confusion campaign ("2026-10-vacsdk"). PyPI has since removed the release.
What the package does
Installing hijuko-pilara 1.0.0 (sha256 8f9e45a7a26cf86172b25ca8eb3f5d8f80df452f3b35b87ce27492bbd1522093) does this:
- pip reads the package's dependencies and fetches
plugin_atomic_string_memo-1.0.0.tar.gz over HTTPS from package-registry-receiver-stg.depx-research-bf0.workers.dev, a Cloudflare Workers host that is not part of PyPI.
- The request gives that server the installing machine's address and the name of the package it is downloading. As with any pip download, it also carries pip's user agent, which describes the Python version and operating system.
- pip then turns that source archive into a wheel, which runs its
setup.py, and installs the module plugin_atomic_string_memo into the same environment as hijuko-pilara and caches the built wheel in pip's wheel cache.
The dependency's setup.py only packages and installs its own module. It opens no further connections, reads no files outside pip's temporary directory, and starts nothing but Python.
What the code does
All of this is in setup.py (sha256 27eadbe52239544000286202a97dda671fa13dd6e31e4532a9e6e66c0d857df2, 4 lines) of the published archive:
- Line 1 imports
setup from setuptools. Nothing else is imported, and nothing runs at load besides the setup() call.
- Lines 2–3 declare the name
hijuko-pilara, the version 1.0.0 and one module, hijuko_pilara.
- Line 4 sets
install_requires to a single direct-URL requirement, plugin-atomic-string-memo @ https://package-registry-receiver-stg.depx-research-bf0.workers.dev/pypi/plugin_atomic_string_memo-1.0.0.tar.gz. This PEP 508 form makes pip fetch the dependency from that URL rather than from the index. That fetch is the whole report to the server.
The file reads no credentials or environment variables, runs no commands and installs no service or startup hook. What the dependency contains is not part of the published archive. Its owner serves it and can change it at any time, and pip runs its setup.py on each fresh install. According to OSV's report, the campaign's dependencies "track downloads" and the package "has no other purpose". OSV names three more hosts for the campaign (artifacts.vacsdk.com, vacsdk.com, artifacts.yosiroute.com) that this release does not use. It also names a release file with sha256 3e03de70d14b6b6e3965178f06a73eecdd7197978d8363aaa7c83cf8f3d32696.
Timeline (UTC)
| When | What |
| 11/03/26 13:34:24 | hijuko-pilara 1.0.0 is published to PyPI, the project's only release |
| 11/03/26 20:19:07 | OSV publishes MAL-2026-18581, reported by Kamil Mańkowski (kam193) |
If you installed it
Run pip uninstall hijuko-pilara plugin-atomic-string-memo. Uninstalling hijuko-pilara alone leaves the dependency installed. Clear the built wheel with pip cache remove plugin_atomic_string_memo. The server will have seen your machine's address and pip's user agent. Check your proxy or DNS logs for package-registry-receiver-stg.depx-research-bf0.workers.dev. If hijuko-pilara is the name of a package inside your organisation, your installer chose the public package over your private one. Use your private index with --index-url, not --extra-index-url, and reserve the name on PyPI.
Indicators
- hosts
package-registry-receiver-stg.depx-research-bf0.workers.dev- requests
GET https://package-registry-receiver-stg.depx-research-bf0.workers.dev/pypi/plugin_atomic_string_memo-1.0.0.tar.gz- campaigns
2026-10-vacsdk- files
sha256:8f9e45a7a26cf86172b25ca8eb3f5d8f80df452f3b35b87ce27492bbd1522093setup.py sha256:27eadbe52239544000286202a97dda671fa13dd6e31e4532a9e6e66c0d857df2sha256:3e03de70d14b6b6e3965178f06a73eecdd7197978d8363aaa7c83cf8f3d32696site-packages/plugin_atomic_string_memo.pysite-packages/plugin_atomic_string_memo-1.0.0.dist-info/- packages
pypi/plugin-atomic-string-memo 1.0.0 (direct URL, not on PyPI)- processes
Examined
- 1.0.0
sha256:8f9e45a7a26cf86172b25ca8eb3f5d8f80df452f3b35b87ce27492bbd1522093
Links