Opened 17 months ago

Last modified 15 months ago

#29927 new defect

Tor protocol errors causing silent dropped cells

Reported by: mikeperry Owned by:
Priority: High Milestone: Tor: unspecified
Component: Core Tor/Tor Version:
Severity: Normal Keywords: tor-hs, diagnostic, mystery, security
Cc: starlight@… Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description (last modified by mikeperry)

While testing vanguards, I've got some mystery cases client side where circuits are getting closed with END_CIRC_REASON_TORPROTOCOL, but Tor is not emmitting any log lines that correspond to this, even at debug level.

This is happening for circuits with purpose CIRCUIT_PURPOSE_C_REND_READY_INTRO_ACKED. Additionally, all circuits seem able to fail during construction with END_CIRC_REASON_TORPROTOCOL, with no Tor log messages even at debug loglevel. Possibly more ntor handshake failures, similar to #29700?

Finally, CIRCUIT_PURPOSE_C_INTRODUCE_ACKED circuits are getting closed with a END_CIRC_REASON_FINISHED after receiving an invalid cell, seemingly after they are done being used.

See also

The vanguards addon now outputs this bug number at INFO log level when this happens.

Child Tickets

Change History (5)

comment:1 Changed 17 months ago by mikeperry

Description: modified (diff)

comment:2 Changed 17 months ago by starlight

Cc: starlight@… added

comment:3 Changed 16 months ago by nickm

Keywords: diagnostic mystery added
Milestone: Tor: 0.4.1.x-final
Priority: MediumHigh

comment:4 Changed 15 months ago by nickm

Keywords: security added

comment:5 Changed 15 months ago by mikeperry

Milestone: Tor: 0.4.1.x-finalTor: unspecified

FWIW, these protocol errors do not impact vanguard's ability to detect that cells were dropped. Also, since Tor is already closing the circuit itself with a reason=torprotocol error, these don't represent a very large side channel issue.

I think taking this out of 0.4.1 and maybe even lowering priority is OK. I will just do the 0.4.1 bit now.

Last edited 15 months ago by mikeperry (previous) (diff)
Note: See TracTickets for help on using tickets.