Skip to content

fix(leaf): grant unauthenticated peers capabilities explicitly; go-libfossil v0.11.0 - #201

Merged
danmestas merged 1 commit into
mainfrom
fix/leaf-nobody-caps
Oct 11, 2026
Merged

danmestas merged 1 commit into
mainfrom
fix/leaf-nobody-caps

Conversation

@danmestas

Copy link
Copy Markdown
Owner

Summary

  • Bumps go-libfossil to v0.11.0, which fixes five security advisories. One of them, GHSA-44p2-whvx-9gwq, stops new repositories from letting anonymous users push.
  • Adds agent.Config.NobodyCaps and the leaf flag -nobody-caps / LEAF_NOBODY_CAPS, so leaves that accept peer pushes without credentials can grant them explicitly. The hub's existing NobodyCaps (default gio) is unchanged.
  • The leaf-to-leaf iroh tests grant gio.

Deployment note

Existing repositories keep their stored capabilities. A leaf whose repository was created by an earlier go-libfossil still has the old cghijknorswy default. Set -nobody-caps to what that leaf actually needs, e.g. gjorz for read-only or gio to accept peer pushes, to tighten it.

New leaves refuse unauthenticated pushes by default. A newly created leaf repository refuses pushes from peers syncing without credentials unless -nobody-caps gio is set.

Test plan

  • go vet, and go test ./... in the root, leaf and bridge modules, including the iroh and sim tests with the sidecar on PATH.
  • make build, make vet.
  • gofmt: no new unformatted files.

…bfossil v0.11.0

go-libfossil v0.11.0 gives a new repository's `nobody` user fossil's
default capabilities, clone and pull (`gjorz`), instead of push and Setup
(GHSA-44p2-whvx-9gwq). Leaves that accept pushes from peers syncing
without credentials, over HTTP, NATS or iroh, now have to grant that
explicitly.

- agent.Config.NobodyCaps, applied by agent.New, sets the leaf repo's
  nobody capabilities. Empty keeps what the repo stores.
- The leaf binary takes it as -nobody-caps / LEAF_NOBODY_CAPS. For example,
  `gio` lets unauthenticated peers push to this leaf.
- The leaf-to-leaf iroh tests grant `gio`, since their peers push without
  credentials.

The bump also brings v0.11.0's other security fixes: the login nonce is
checked against the request body, reqconfig is scoped, payload sizes and
table-sync rows are validated, and HTTP replies are capped.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
edgesync-docs ec47691 Commit Preview URL

Branch Preview URL
Oct 11 2026, 01:44 AM

@danmestas
danmestas merged commit 4b53ea2 into main Oct 11, 2026
5 checks passed
@danmestas
danmestas deleted the fix/leaf-nobody-caps branch October 11, 2026 01:48
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