Skip to main content

Security Research - Dependency Confusion PoC

Project description

phabricator-client — Security Research / Dependency Confusion PoC

Version 99.0.0

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

This is a benign proof-of-concept. No malicious code is 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.1.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.1-py3-none-any.whl (2.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: phabricator_client-99.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 b276be6610fa02b5e211301ae20be68ec3d1ca46288f3ff7f58c3df00b812f40
MD5 b350d3861a0af917adf94984fbe9b804
BLAKE2b-256 ecf55d2de17e132fe4b7d2c9a9bd7dd03339d631cf2722e94b823a48fb6c9def

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for phabricator_client-99.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf4ae88553f5173d4214649dc244f3947611c8bf737d55d13c894fe11e9d71da
MD5 4e6a5e8ec2e75cc56072960e55f66452
BLAKE2b-256 1f94e34da9b24e425e0fba5548fc1062874f3bc63a5dc373fdea7a4e5a6afc6f

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