Skip to content

docs(nip-fi): document Git smart-HTTP credential exemption - #7268

Merged
wpfleger96 merged 1 commit into
mainfrom
alia/nip-fi-git-smart-http-exemption
Sep 3, 2026
Merged

docs(nip-fi): document Git smart-HTTP credential exemption#7268
wpfleger96 merged 1 commit into
mainfrom
alia/nip-fi-git-smart-http-exemption

Conversation

@wpfleger96

Copy link
Copy Markdown
Member

Amend NIP-FI HTTP ingress with an explicit Git smart-HTTP credential-helper exemption. The exception covers method binding, endpoint-URL binding, and the payload tag requirement for info/refs, git-upload-pack, and git-receive-pack, while preserving per-request NIP-FI assertion, key pairing, and deny-map enforcement.

The spec records Git's credential-protocol limitation, the required compensating controls, and the rule that this exception is limited to these endpoints and is superseded by per-request signing.

Related: PR #7264

Document why standard Git smart HTTP cannot bind NIP-98 to each method, endpoint, or body.
Keep per-request NIP-FI identity verification and Git-specific compensating controls normative.

Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
@wpfleger96
wpfleger96 requested a review from a team as a code owner September 3, 2026 00:15
@wpfleger96
wpfleger96 deployed to codex-review September 3, 2026 00:15 — with GitHub Actions Active
@github-actions github-actions Bot added the codex-security-review-current The posted Codex security review matches its recorded range. label Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

🔐 Codex Security Review

Note: This is an automated, security-focused review generated by Codex.
Use it as a supplement to human review; false positives are possible.

Scope

  • Exact PR diff: 47d068e2109d077414cbf2f4f1c927f6d051037a...b804f05a41e124af49ce23ef67f45bfa9dd4a96f
  • Model: gpt-5.6-sol

💡 Click "edited" above to see earlier reviews for this PR.


Review Summary

Overall Risk: HIGH

The Git exemption turns a clone proof into a short-lived bearer credential capable of authorizing pushes to the same repository.

Findings

[HIGH] Clone credentials can be replayed for arbitrary pushes

  • Category: Auth
  • Location: docs/nips/NIP-FI.md:551 (source)
  • Description: The exemption removes method, endpoint, and payload binding simultaneously. An observer who obtains a valid clone request's NIP-98 event and paired bearer assertion can reuse them within the 60-second window on git-receive-pack with an attacker-chosen body. The pre-receive hook only evaluates the authenticated pubkey's existing role and branch rules; it provides no client-signed proof that the user intended this push. TLS, separate routes, and repeated signature verification do not prevent replay because the specification explicitly accepts the same credential on both routes.
  • Impact: Credentials exposed through a proxy, trace, log, or compromised intermediary can be used to push attacker-controlled commits as a push-capable victim, potentially compromising hosted source and downstream builds.
  • Recommendation: Retain an operation binding even if body hashing is unavailable. Have the info/refs challenge identify git-upload-pack versus git-receive-pack and include that capability in the signed event, rejecting read-scoped proofs on push routes. Pushes should additionally carry a client-signed, replay-protected authorization bound to the repository and proposed ref updates, such as through a custom remote helper or signed push certificate.

Notes

  • No additional limitations were reported.

Generated by Codex Security Review |
Requested by: @wpfleger96 |
Workflow run

@wpfleger96
wpfleger96 merged commit c328202 into main Sep 3, 2026
39 checks passed
@wpfleger96
wpfleger96 deleted the alia/nip-fi-git-smart-http-exemption branch September 3, 2026 00:34
wpfleger96 added a commit that referenced this pull request Sep 3, 2026
Rebase onto c328202 (git smart-HTTP exemption amendment merged as #7268).

Update NIP-FI.md line references throughout nip_fi_http.rs, bridge.rs, and
workflows.rs to match the amended spec's new line numbers:
- NIP-FI.md:547-567 / :547-578 -> :594-607 (carrier spec / no-fallback clause)
- NIP-FI.md:579-597 -> :619-637 (payload-binding clause)
- NIP-FI.md:584-587 -> :624-627 (deny-set check)

Update route inventory comment to cite the merged git exemption with PR and
commit references (#7268 / c328202, NIP-FI.md:545-583).

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
wpfleger96 pushed a commit that referenced this pull request Sep 3, 2026
…-enforcement

* origin/main:
  docs(nip-fi): document Git smart-HTTP credential exemption (#7268)
  feat(cli): add buzz gifs command group and NIP-30 emoji tags on messages (#7259)
  feat(desktop): add persistent Bestie experience (#7223)
  fix(desktop): harden profile batch and thread-reply fetches against relay slowness (#7188)

Signed-off-by: Hayt <9e1c23a3fd83f61da34420e4e88ff1b16e45cafcc0cd9019eb07d4ecfa8ca9b0@buzz.block.builderlab.xyz>
brow added a commit that referenced this pull request Sep 3, 2026
…eway-origin

* origin/main:
  fix(desktop): derive agent availability from relay presence (#7127)
  fix(desktop): preserve spacing after multi-word mentions (#7128)
  docs(nip-fi): document Git smart-HTTP credential exemption (#7268)
  feat(cli): add buzz gifs command group and NIP-30 emoji tags on messages (#7259)
  feat(desktop): add persistent Bestie experience (#7223)
  fix(desktop): harden profile batch and thread-reply fetches against relay slowness (#7188)
  docs(nip-fi): adopt deny-until-TTL and extend enforcement to HTTP ingress (#7254)
  fix(composer): align wrapped inline chip fragments (#7242)
  Add operation-aware database pool acquisition metrics (#7195)

Signed-off-by: Tom Brow <tomb@block.xyz>
wpfleger96 pushed a commit that referenced this pull request Sep 3, 2026
* origin/main:
  🤖 fix(desktop): harden smoke E2E tests against Bestie overlay and toast timing (#7270)
  Show status and huddle indicators beside names (#7112)
  Add mobile voice notes (#7121)
  perf(desktop): publish mention sends before waking agents (#7154)
  fix(desktop): unify owned-agent cloud provenance markers (#7129)
  fix(desktop): derive agent availability from relay presence (#7127)
  fix(desktop): preserve spacing after multi-word mentions (#7128)
  docs(nip-fi): document Git smart-HTTP credential exemption (#7268)
  feat(cli): add buzz gifs command group and NIP-30 emoji tags on messages (#7259)

Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

codex-security-review-current The posted Codex security review matches its recorded range.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant