Opened 5 years ago
Last modified 13 days ago
#12836 new defect
scramblesuit: 'State' object has no attribute 'closingThreshold'
Reported by: | asn | Owned by: | |
---|---|---|---|
Priority: | Medium | Milestone: | |
Component: | Obfuscation/Obfsproxy | Version: | |
Severity: | Normal | Keywords: | |
Cc: | phw, yawning | Actual Points: | |
Parent ID: | Points: | ||
Reviewer: | Sponsor: |
Description
Got this with on a bridge with obfsproxy-0.2.11
:
[ERROR] Unhandled Error Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/python/log.py", line 88, in callWithLogger return callWithContext({"system": lp}, func, *args, **kw) File "/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/python/log.py", line 73, in callWithContext return context.call({ILogContext: newCtx}, func, *args, **kw) File "/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/python/context.py", line 118, in callWithContext return self.currentContext().callWithContext(ctx, func, *args, **kw) File "/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/python/context.py", line 81, in callWithContext return func(*args,**kw) --- <exception caught here> --- File "/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/posixbase.py", line 614, in _doReadOrWrite why = selectable.doRead() File "/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/tcp.py", line 215, in doRead return self._dataReceived(data) File "/usr/local/lib/python2.7/dist-packages/Twisted-13.2.0-py2.7-linux-x86_64.egg/twisted/internet/tcp.py", line 221, in _dataReceived rval = self.protocol.dataReceived(data) File "/usr/local/lib/python2.7/dist-packages/obfsproxy-0.2.11-py2.7.egg/obfsproxy/network/network.py", line 320, in dataReceived self.circuit.dataReceived(self.buffer, self) File "/usr/local/lib/python2.7/dist-packages/obfsproxy-0.2.11-py2.7.egg/obfsproxy/network/network.py", line 161, in dataReceived self.transport.receivedDownstream(data) File "/usr/local/lib/python2.7/dist-packages/obfsproxy-0.2.11-py2.7.egg/obfsproxy/transports/scramblesuit/scramblesuit.py", line 495, in receivedDownstream if self.drainedHandshake > self.srvState.closingThreshold: exceptions.AttributeError: 'State' object has no attribute 'closingThreshold'
Child Tickets
Change History (4)
comment:1 Changed 5 years ago by
comment:2 Changed 15 months ago by
Severity: | → Normal |
---|
Set all open tickets without a severity to "Normal"
comment:3 Changed 3 weeks ago by
Owner: | asn deleted |
---|---|
Status: | new → assigned |
asn does not need to own any obfuscation tickets any more. Default owners are trouble.
Note: See
TracTickets for help on using
tickets.
I believe this is a problem that occurs when a bridge is upgraded. The state object (
scramblesuit/state.py
) uses pickling and currently does not have code generate the parameter in question when a pre-existing state object is loaded from disk. It is relatively simple to add the appropriate code toload()
.FWIW, the exception is triggered after a handshake has no possible hope of succeeding (and this only affects pre-existing bridges that upgrade) so it's probably not a huge priority, though bridges that display this error will be somewhat more vulnerable to active attacks (The point where the bridge gives up being static is a distinguishes of sorts).