Skip to content

Discussion: Replacing packages raises security concerns #8595

@idleberg

Description

@idleberg

I have recently come across an issue in the package_control repository that got me worried. Apparently, there have been cases where a package has been replaced with another one (example). Ultimately, this leads to a user's package being replaced on his computer without warning or any means to accept/object this. My main concern is security, but of course there are other reasons why one might not want this (file under ”user habits”).

Some random thoughts:

As a developer who gets tired of maintaining a package, I'd love to see my work live on under somebody else's care, no question. The same is probably true for many users of my package. I can hand over my repository to somebody else and nobody will ever notice.

If I have malicious intent, I can try to build a package that people love and install. And then boom, replace it with something that steals or destroys data. Maybe the maintainers of this repository will react in time and remove the package from the channel, but chances are the threat is unnoticed for some time. When somebody chooses your package, it's usually under highly subjective criteria. One thinks one chooses the right package because it's popular, either through the number of downloads or stars on GitHub, or one ”knows” the developer through other work.

Right, no question.

However, I think replacing a package with a fork or a similar, actively maintained package is something different. I don't know the ”best” way to handle this, but since I'm maintaining packages for several other editors, I know how others are doing it. So far, I like VSCode's approach the best. The process itself is a bit unelegant: one has to open an issue and announce the deprecation of his package. Optionally, one can propose an actively maintained fork or some other package. Users of the package can then choose whether they want to switch to the new package or continue using the deprecated one. Also, deprecated packages can no longer be installed (manual installation, e.g. git clone is an exception, of course). Most users will probably choose the new package without looking at it, and that's probably fine. However, an individual or an organization to whom security is important gets the opportunity to review the new package, then install it. They probably do the same with any update.

What if an author's interest in his package is re-awakened by a new package that has taken its spot? He has no chance to win back the audience he potentially built over years. In an ideal world, the two authors maintain a package together. But that's not for everyone. And competition isn't necessarily a bad thing, is it?

Could there be a user-driven mechanism that helps fade out an unmaintained package, so that it's still available but less prominently featured on the website, if not hidden altogether from search results?

Anyway, I wanted to bring this up and since discussions aren't enabled in this repo, I posted my concern as an issue. Would love to hear your thoughts!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions