Skip to main content

Security Research - Dependency Confusion PoC

Project description

phabricator-client — Dependency Confusion PoC

Package takeover by @sh3d0w for security research / PoC only.

Version 99.0.2

This package is published for security research purposes only as a proof-of-concept for a Dependency Confusion / Supply Chain vulnerability.

The package name was found unclaimed on the Python Package Index (PyPI) as an internal/workspace-only package that was never published publicly. This is a classic dependency confusion scenario where an attacker can register the missing package name and achieve code execution on any system that depends on it.

Why Dependency Confusion Works

When projects declare dependencies in pyproject.toml, setup.py, or requirements.txt, package managers like pip resolve the package name against the public registry (PyPI). If a package name is:

  1. Declared as a dependency in a public repository
  2. Referenced as a workspace/internal member but never published
  3. Not pinned to a specific version or registry

→ Any attacker can register the missing name on PyPI and have their code executed by anyone installing the parent project.

The [tool.uv.sources] or workspace-only configuration only protects uv users within the monorepo. Standard tools like pip, poetry, and pipenv ignore these directives and resolve from PyPI — where the package did not exist until now.

Impact

Capability Severity
Remote Code Execution during pip install CRITICAL
Supply chain contamination of CI/CD pipelines CRITICAL
Credential / token theft from build environments CRITICAL
Persistent access as the dependency owner HIGH

Remediation

  • Publish the legitimate package to PyPI under an organization account
  • Pin dependencies with version constraints
  • Use a private/scoped package registry for internal packages
  • Implement automated dependency confusion scanning in CI/CD

Benign proof-of-concept. No malicious code included.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phabricator_client-99.0.2.tar.gz (2.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

phabricator_client-99.0.2-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

Details for the file phabricator_client-99.0.2.tar.gz.

File metadata

  • Download URL: phabricator_client-99.0.2.tar.gz
  • Upload date:
  • Size: 2.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for phabricator_client-99.0.2.tar.gz
Algorithm Hash digest
SHA256 6a92f41f0aa38eac8c09c2d91c8a5e7c69feb2b45f40b51c0e0c0f4b8ad2955a
MD5 99fadc1b5994aaa3643264c29d7bba0d
BLAKE2b-256 0e51bf2d157bb0e8be3429c30768dd8436abd4f4c18e7af267006a9bb96208e4

See more details on using hashes here.

File details

Details for the file phabricator_client-99.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for phabricator_client-99.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4007d60fd6f162bc56c8a618845f7157f98713e38d2452386c194a6699266c76
MD5 6e0c83178ef09aa806ccb471b56e91d4
BLAKE2b-256 b5edadf0d3f8d87c717935177e352f527515bed673944e30aa1d8ea87cac23c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page