Skip to content

Restore master branch and get point releases back online #16775

@xuhdev

Description

@xuhdev

The Security Problem with the develop Branch

The develop branch of Spacemacs pulls a lot of packages from Melpa, directly
from their latest releases. Neither Spacemacs nor Melpa examines these new
versions. When a user update packages, they install the latest versions
directly, and usually do not examine the changes in updated packages -- the
sheer number of packages is often quite large!

The whole usage pattern poses a severe security hazard: If any of the packages
(Spacemacs pulls 300+ packages on my system) go malicious, even just for one
day, a lot of Spacemacs users are attacked. This is commonly known as one kind of supply chain attack. [1]

Solution

The security problem can be mostly mitigated by the normal software engineering
practice of making point releases with freezing periods. The master branch
(which is not virtually unupdated today) uses a dedicated registry with packages
of frozen versions. Given a short freezing period of time before releasing,
due to the open source nature of the packages, it's unlikely that a malicious
package can remain hidden.

I recommend the following practice:

  1. Cut point releases regularly
  2. Mirror relevant packages of Melpa on that day to spacelpa or a similare registry
  3. Freeze the release for one or two weeks

I believe it's better to be safe than sorry later.

[1] Packages can go malicious for many reasons, such as inactive account being stolen, owner organization acquired by a malicious actor, etc.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions