Skip to content

πŸ”’οΈ fix: rename packages to prevent dependency confusion attacks#8

Merged
wortmanb merged 4 commits intoelastic:mainfrom
wortmanb:fix/dependency-confusion-rename
Mar 26, 2026
Merged

πŸ”’οΈ fix: rename packages to prevent dependency confusion attacks#8
wortmanb merged 4 commits intoelastic:mainfrom
wortmanb:fix/dependency-confusion-rename

Conversation

@wortmanb
Copy link
Copy Markdown
Collaborator

BREAKING CHANGE: Package names changed to include 'elastic-' prefix

  • deepfreeze-core β†’ elastic-deepfreeze-core
  • deepfreeze-cli β†’ elastic-deepfreeze-cli
  • deepfreeze_core module β†’ elastic_deepfreeze_core
  • deepfreeze module β†’ elastic_deepfreeze

The original names were vulnerable to dependency confusion attacks. The 'deepfreeze-core' name was already squatted on PyPI by an unknown party (author: 'AI Research Team Ai-model@example.com').

By using the 'elastic-' prefix which we control, pip install will fetch authentic packages from the Elastic organization.

The CLI command remains 'deepfreeze' for user convenience.

Migration:

  • Update imports: from deepfreeze_core β†’ from elastic_deepfreeze_core
  • Update imports: from deepfreeze β†’ from elastic_deepfreeze
  • Update pip install: elastic-deepfreeze-cli instead of deepfreeze-cli

Fixes

Describe the problem, bug, or feature being proposed

Proposed Changes

Describe what changes you made

API changes

If these changes alter the API in anyway, detail that here.

Bret Wortman added 4 commits March 26, 2026 07:28
BREAKING CHANGE: Package names changed to include 'elastic-' prefix

- deepfreeze-core β†’ elastic-deepfreeze-core
- deepfreeze-cli β†’ elastic-deepfreeze-cli
- deepfreeze_core module β†’ elastic_deepfreeze_core
- deepfreeze module β†’ elastic_deepfreeze

The original names were vulnerable to dependency confusion attacks.
The 'deepfreeze-core' name was already squatted on PyPI by an unknown
party (author: 'AI Research Team <Ai-model@example.com>').

By using the 'elastic-' prefix which we control, pip install will
fetch authentic packages from the Elastic organization.

The CLI command remains 'deepfreeze' for user convenience.

Migration:
- Update imports: from deepfreeze_core β†’ from elastic_deepfreeze_core
- Update imports: from deepfreeze β†’ from elastic_deepfreeze
- Update pip install: elastic-deepfreeze-cli instead of deepfreeze-cli
- Fix import sorting in cli/main.py and validators/__init__.py
- Remove [tool.ruff.lint] nested tables for older ruff compatibility
- Update remaining 'from deepfreeze' imports to 'from elastic_deepfreeze'
- Fix cli/__init__.py: from deepfreeze.cli.main β†’ from elastic_deepfreeze.cli.main
- Fix double-prefix typos: elastic_elastic_deepfreeze_core β†’ elastic_deepfreeze_core
- Fix NameError: use elastic_deepfreeze variable after importing it
- Fix version test: expect 'deepfreeze' (CLI command name) not 'elastic_deepfreeze'
@wortmanb wortmanb merged commit 65cf3ab into elastic:main Mar 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant