Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Tor Tor
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 316
    • Issues 316
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 34
    • Merge requests 34
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Core
  • TorTor
  • Issues
  • #26549
Closed
Open
Created Jun 28, 2018 by Trac@tracbot

Revision counter for v3 ephemeral hidden service is lost

When a controller is using a client to provide two or more v3 ephemeral hidden services, with the private keys managed by the controller, and there's a client session where the controller activates one of the hidden services but not the others, the revision counters for the other hidden services are lost. This prevents the other services from being activated in future sessions because their descriptors are rejected by the HSDirs.

This happens because increment_descriptor_revision_counter() in hs_service.c calls update_revision_counters_in_state(), which loops over all the services currently being provided by the client, saves their counters, and removes any other counters from the state file. Thus if any hidden service is activated during a session, the revision counters of any services not activated during that session are lost.

Steps to reproduce:

  • Use ADD_ONION NEW:ED25519-V3 ... to create two hidden services
  • Save the private keys
  • Shut down and restart tor
  • Use ADD_ONION ED25519-V3:<private_key_1> ... to activate the first service
  • Shut down and restart tor
  • Use SETEVENTS HS_DESC to register for HS descriptor events
  • Use ADD_ONION ED25519-V3:<private_key_1> ... to activate the first service
  • The descriptor should be published successfully
  • Use ADD_ONION ED25519-V3:<private_key_2> ... to activate the second service
  • The controller receives HS_DESC_FAILED events with REASON=UPLOAD_REJECTED

It looks like this bug is related to legacy/trac#25552 (moved). I don't know whether the solution to that ticket will fix it.

Trac:
Username: akwizgran

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking