Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New version: RegistryCI v6.4.0 #30164

Merged
merged 1 commit into from
Feb 16, 2021

Conversation

JuliaRegistrator
Copy link
Contributor

UUID: 0c95cc5-2f7e-43fe-82dd-79dbcba86b32
Repo: https://github.com/JuliaRegistries/RegistryCI.jl.git
Tree: 812d707a1f6db127297032ca9f267881a9859251

Registrator tree SHA: e934b8c55381f28735124f23e8f7e96d09b20416
JuliaRegistrator referenced this pull request in JuliaRegistries/RegistryCI.jl Feb 16, 2021
348: Mitigate dependency confusion r=GunnarFarneback a=GunnarFarneback

This PR adds a dependency confusion mitigation mechanism for public registries beside General, which are particularly exposed to the vulnerability since their UUIDs are, well, public.

The idea, once this PR goes live, is that public registries who want to take part of this mitigation would submit a PR against https://github.com/JuliaRegistries/General/blob/master/.github/workflows/automerge.yml to add their repo URL to the `RegistryCI.AutoMerge.run` argument `public_registries`. When automerge runs, it will clone those repositories and check for a UUID conflict when examining a new-package request. If a conflict is found automerge is blocked, usually.

There is one exception to this rule. Assume you want to add a package to General that has previously lived in one of the checked public repositories. Obviously this will trigger a UUID conflict. However, in this case the package repository will match, which means that
1. An attacker has no way to add rouge versions.
2. Registrator wouldn't have accepted the registration request from someone unauthorized.

So the rule is that automerge is blocked for conflicting UUIDs, unless repository URL and package name match. (Same UUID with different names is no good, regardless of dependency confusion.)

There are some outstanding questions of how much time this takes and whether it gracefully handles connection problems for the public registries.

Cc: @timholy


Co-authored-by: Gunnar Farnebäck <gunnar.farneback@contextvision.se>
@JuliaRegistrator JuliaRegistrator temporarily deployed to stopwatch February 16, 2021 15:53 Inactive
@github-actions
Copy link
Contributor

Your new version pull request met all of the guidelines for auto-merging and is scheduled to be merged in the next round.


If you want to prevent this pull request from being auto-merged, simply leave a comment. If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.

@JuliaTagBot JuliaTagBot merged commit 256c174 into master Feb 16, 2021
@JuliaTagBot JuliaTagBot deleted the registrator/registryci/0c95cc5f/v6.4.0 branch February 16, 2021 16:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants