Add similarity service to publish extension and namespace workflow#1501
Merged
netomi merged 3 commits intoeclipse:security-improvementsfrom Dec 21, 2025
Merged
Conversation
netomi
reviewed
Dec 18, 2025
netomi
reviewed
Dec 18, 2025
a334f7c to
6b7f838
Compare
netomi
approved these changes
Dec 21, 2025
Contributor
|
I will merge this into the target branch, please keep the original branch alive in case we need to do changes. When finally merging the change to master, we will do it from the original branch afaict. |
netomi
pushed a commit
that referenced
this pull request
Jan 7, 2026
…1501) * Add similarity service to publish extension workflow * Add javadoc to similarity configuration * Refactor similarity service to allow reuse independent of publishing check configuration
netomi
pushed a commit
that referenced
this pull request
Jan 29, 2026
…1501) * Add similarity service to publish extension workflow * Add javadoc to similarity configuration * Refactor similarity service to allow reuse independent of publishing check configuration
netomi
pushed a commit
that referenced
this pull request
Feb 5, 2026
…1501) * Add similarity service to publish extension workflow * Add javadoc to similarity configuration * Refactor similarity service to allow reuse independent of publishing check configuration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Similarity Service to Prevent Namesquatting
#1396
This PR introduces a similarity-checking service designed to detect and block extensions whose names are too close to existing ones.
Summary
fuzzystrmatch) to evaluate similarity across extension names, namespaces, and display names.Technical Changes
SimilarityServicewhich supports searches that uses Levensthein distance queries to find similar extensions and namespaces.SimilarityConfigandSimilarityCheckServicewhich is the policy enforcement layer that applies all configuration-based gates (enabled/disabled, threshold, exclusions, etc.). This is the single entry point for publishing workflows.fuzzystrmatchthrough a database migration.Design Considerations
What about existing extensions:
Similarity checks can be enabled to only run on extensions with no pre-existing version. This allows some flexibility for rollout to allow existing publishers to keep names/namespaces while a migration plan is coordinated.
Same-publisher similarity exceptions:
Extensions within namespaces that the publisher owns can be exempt through the configuration. Publishers often maintain multiple variants with intentionally similar names (e.g., language specific versions like
redhat.vscode-extension-dmn-editorandredhat.vscode-extension-bpmn-editor) which are outside the threat model.Verified-publishers:
Similarity checks for verified publishers can be toggled on or off. This reduces disruption for legitimate publishers during rollout. Once awareness increases, it can be tightened but would require coordination with verified publishers for migration of namespaces/names that are too similar.
Using verified-only comparison sets:
Limiting the comparison pool to verified extensions reduces false positives by prioritizing established publishers and improves performance by shrinking the candidate set for Levenshtein evaluation.
Example configuration