{5} Accepted, Active Tickets by Owner (Full Description) (111 matches)

List tickets accepted, group by ticket owner. This report demonstrates the use of full-row display.

Results (1 - 100 of 111)

1 2

Cthulhu (2 matches)

Ticket Summary Component Milestone Type Created
#13421 GoodBadISP's Revamp Community/Relays project Oct 15, 2014

Following a discussion on the mailing list [1] the GoodBadISP page could do with some updating and proper arranging.

Some of the categories I have in mind to make available in the table format are as follows: Country, Company Name, ASN, Bridges Allowed, Relays Allowed, Exits Allowed, Last Updated, Correspondence.

Would "Bridges Allowed" be a redundant measure since they won't be in the public sphere?

Moritz @ Torservers already has done a fair deal of work, some is outdated or could use an update though but it's a good place to start our focus and give inspiration where needed. [2] [3] [4]

[1] https://lists.torproject.org/pipermail/tor-relays/2014-October/005493.html

[2] https://www.torservers.net/wiki/hoster/experience

[3] https://www.torservers.net/wiki/hoster/inquiry

[4] https://www.torservers.net/wiki/hoster/index

Note: Those wishing to assist on this project please feel free to CC yourself in and keep an eye on the child tickets. I can be found under the pseudonym "TheCthulhu" on IRC or contacted at thecthulhu <at> riseup <dot> net if you wish to ask me directly what to work on next. If this is the first time you've assisted using Trac or the Tor Wiki, don't hesitate to ask for help.

#13473 Sort Existing GoodBadISP page into tables Community/Relays task Oct 19, 2014

The existing GoodBadISP tables need sorting into the new format. All opinions, feedback and communications to that ISP must go in the correct section on ISPCorrespondence page to keep the primary page clean and to the point since it will grow substantially over time.

The new format should be available soon after this ticket is posted as it will be done for the US hosts (good experiences).

Hello71 (1 match)

Ticket Summary Component Milestone Type Created
#22233 Reconsider behavior on .z URLs with Accept-Encoding header Core Tor/Tor Tor: unspecified defect May 11, 2017

In proposal 278, I said:

  If a directory server receives a request to a document with the ".z"
  suffix, where the client does not include an "Accept-Encoding" header,
  the server should respond with the zlib compressed version of the
  document for backwards compatibility with client that does not support
  this proposal.

But on #22206 it became apparent that we've got a problem there: there are already tools (built e.g. on wget) that ask for the .z URL but which send "Accept-Encodings: Identity."

And onn #22206, Yawning says:

an error (or a double compressed payload) should be returned when the .z request contains an Accept-Encoding header that specifies anything other than identity/deflate.

We'd like the end result here to be something where new Tor clients can interoperate with older directory caches without breaking anything, and getting the new compression type if they support it. And we certainly don't want anybody doing two layers of compression: that's a waste of cycles. But we should see if there's a way where we can be more standards compliant without breaking anything we care about.

Jaruga (3 matches)

Ticket Summary Component Milestone Type Created
#20537 Tor Browser User Manual needs meta section Community/Tor Browser Manual defect Nov 2, 2016

The Tor Browser User Manual on https://tb-manual.torproject.org/windows/en-US/ needs a section covering

a) where to find the source, b) how it is licensed, and c) where and how to report bugs.


#24872 remove outdated tor relay security recommendations and update these wiki pages Community/Relays defect Jan 11, 2018

While working on #24497 I wanted to link to existing security related recommendations and found:

https://trac.torproject.org/projects/tor/wiki/doc/TorRelaySecurity https://trac.torproject.org/projects/tor/wiki/doc/OperationalSecurity

IMHO these are severely outdated and give bad advises.

I'm proposing to remove some outdated content and if no one disagrees I'll proceed soon. I'll send email to tor-dev about this.

#13703 Adding doc/HARDENING Community Tor: unspecified enhancement Nov 7, 2014

The two text files currently in the doc directory are doc/HACKING and doc/TUNING. The latter is the only one that deals with relay operation, and its subject is oddly specific: increasing the maximum number of file descriptors. If we're going to put critical documentation in the codebase, I think it would also be worthwhile to have a basic hardening guide. It could include suggestions like:

  • allowing only public key non-root SSH login
  • using a firewall
  • keeping your system up-to-date
  • not running any other programs (especially networked ones)
  • considering hardened or security-focused OS choices

Nick suggested that most of the actual information be contained in referenced links, which I agree with. There's no good reason to duplicate effort when there are, for example, so many good SSH hardening guides.

Let me know what you think, or if you have any contributions. If this is generally considered a good idea, I can start writing a draft.

Jkee299 (1 match)

Ticket Summary Component Milestone Type Created
#28541 Exit HTTPS Everywhere project Nov 20, 2018


MB (1 match)

Ticket Summary Component Milestone Type Created
#9328 o2online.de Live Check not working with enabled SSL strictness HTTPS Everywhere/EFF-HTTPS Everywhere defect Jul 25, 2013

With enabled HTTPS Everywhere, http://www.o2online.de/microsite/o2-netz/live-check/ does not load additional JavaScript from a non-SSL CDN

arma (5 matches)

Ticket Summary Component Milestone Type Created
#15713 toggling DisableNetwork during bootstrap causes delay Core Tor/Tor Tor: unspecified defect Apr 17, 2015

While testing a fix for #11879, Kathy and I noticed that if the bootstrap process is interrupted by setting DisableNetwork=1 via the control port, Tor waits about a minute after DisableNetwork is set back to 0 before continuing network activity. We observed this problem on a Mac OS 10.8.5 system. Possibly related tickets: #9229, #11069.

Once release candidates for Tor Browser 4.5 are available, this should be reproducible by following these steps:

  1. Start Tor Browser and click "Connect".
  2. Click "Open Settings" in the connection progress window to interrupt the bootstrap process.
  3. Click "Connect" again. Notice that there is a delay before the bootstrap makes more progress.

We are also able to reproduce it using Tor and a manual (telnet) control port connection. Follow these steps (control port authentication is up to you):

  1. Remove all cached Tor data and start Tor like this:

./tor --defaults-torrc torrc-defaults -f torrc DisableNetwork 1

  1. Make a control port connection and issue this command:

SETCONF DisableNetwork=0

  1. Wait for bootstrapping to reach 25-50% and then do:

SETCONF DisableNetwork=1

  1. Re-enable network access:

SETCONF DisableNetwork=0 Notice that there is a delay before the bootstrap makes more progress.

We used the torrc-defaults file that ships with Tor Browser 4.5a5:

# If non-zero, try to write to disk less frequently than we would otherwise.
AvoidDiskWrites 1
# Where to send logging messages.  Format is minSeverity[-maxSeverity]
# (stderr|stdout|syslog|file FILENAME).
Log notice stdout
# Bind to this address to listen to connections from SOCKS-speaking
# applications.
SocksPort 9150
ControlPort 9151
CookieAuthentication 1
## fteproxy configuration
ClientTransportPlugin fte exec PluggableTransports/fteproxy.bin --managed

## obfs4proxy configuration
ClientTransportPlugin obfs2,obfs3,obfs4,scramblesuit exec PluggableTransports/obfs4proxy

## flash proxy configuration
# Change the second number here (9000) to the number of a port that can
# receive connections from the Internet (the port for which you
# configured port forwarding).
ClientTransportPlugin flashproxy exec PluggableTransports/flashproxy-client --register :0 :9000

## meek configuration
ClientTransportPlugin meek exec PluggableTransports/meek-client-torbrowser -- PluggableTransports/meek-client

Our torrc is also from Tor Browser and it just contains a few paths:

DataDirectory /Users/.../tb-11879.app/TorBrowser/Data/Tor
GeoIPFile /Users/.../tb-11879.app/TorBrowser/Data/Tor/geoip
GeoIPv6File /Users/.../tb-11879.app/TorBrowser/Data/Tor/geoip6

I will attach some log output.

#15715 spurious "Network is unreachable" error after setting DisableNetwork=1 Core Tor/Tor Tor: unspecified defect Apr 17, 2015

If DisableNetwork is set to 1 via SETCONF during bootstrapping, Tor sometimes generates spurious errors such as "Network is unreachable". Kathy and I saw this while testing a fix for #11879. We realize this may be difficult to fix due to the internal architecture / concurrency inside Tor.

See #15713 for steps to reproduce (but note that an error does not occur every time). In the log that is attached to #15713 you can see an example:

Apr 17 10:28:10.000 [warn] Problem bootstrapping. Stuck at 25%: Loading networkstatus consensus. (Network is unreachable; NOROUTE; count 1; recommendation warn; host 847B1F850344D7876491A54892F904934E4EB85D at

(the error happens right away if it happens at all – no delay).

This problem may cause some Tor Browser users to be a little confused; all they need to do is click "Open Settings" while Tor Browser was starting up and they will sometimes see an error alert.

#19162 Make it even harder to become HSDir Core Tor/Tor Tor: unspecified defect May 23, 2016

In #8243 we started requiring Stable flag for becoming HSDirs, but this is still not hard enough for motivated adversaries. Hence we need to make it even harder for a relay to become HSDir, so that only relays that have been around for long get the flag. After prop224 gets deployed, there will be less incentive for adversaries to become HSDirs since they won't be able to harvest onion addresses.

Until then, our current plan is to increase the bandwidth and uptime required to become an HSDir to something almost unreasonable. For example requiring an uptime of over 6 months, or maybe requiring that the relay is in the top 1/4th of uptimes on the network.

#17773 Should clients avoid using guards that lost the Guard flag? Core Tor/Tor Tor: unspecified enhancement Dec 8, 2015

Nick and I both thought that at least in the past, Tor clients would stop using a relay as their guard, if it loses the Guard flag.

But it looks like the code doesn't do that -- once a relay is your guard, you'll use it in the guard position regardless of whether it has the Guard flag at this moment or not.

This is actually a tricky design decision. In favor of avoiding guards that don't have the guard flag:

  • If they get really slow, we can instruct clients to abandon them.
  • If a relay gets the guard flag for only a short period of time, it will have only a small number of (dedicated) users using it for the next months.

In favor of using non-Guard guards anyway:

  • An attacker can't push you away from your guard by hurting its performance in the eyes of the directory authorities.
  • You won't rotate guards as many times.

That "can't push you away" one looks big. What other aspects should we be considering here?

#18213 The parameter WarnUnsafeSocks does not work as specified in the documentation, no warning is logged in the log file Core Tor/Tor Tor: unspecified defect Feb 2, 2016

The parameter WarnUnsafeSocks does not work as specified in the documentation, no warning is logged in the log file when a connection is done to an ip address.

If WarnUnsafeSocks 1 (default) is set there is no warning in the log file. If you look at the code for log_unsafe_socks_warning, the only case where an error is logged is when safe_socks is true. safe_socks is true only when SafeSocks parameter is set, but not when WarnUnsafeSocks is set.

The code should be

if (safe_socks || options->WarnUnsafeSocks) {

instead of

if (safe_socks) {

atagar (1 match)

Ticket Summary Component Milestone Type Created
#16348 Suppress exception chaining when PEP 3134 is merged Core Tor/Stem defect Jun 10, 2015

with tor- and stem-1.4.1 I run (rarely) into this :

cat ioerror.stderr.old
Exception in thread Event Notifier:
Traceback (most recent call last):
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 1758, in get_network_status
    desc_content = self.get_info(query, get_bytes = True)
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 414, in wrapped
    raise exc
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 409, in wrapped
    return func(self, *args, **kwargs)
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 1113, in get_info
    raise exc
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 1066, in get_info
    stem.response.convert('GETINFO', response)
  File "/usr/lib64/python3.3/site-packages/stem/response/__init__.py", line 135, in convert
  File "/usr/lib64/python3.3/site-packages/stem/response/getinfo.py", line 38, in _parse_message
    raise stem.InvalidArguments('552', 'GETINFO request contained unrecognized keywords: %s\n' % ', '.join(unrecognized_keywords), unrecognized_keywords)
stem.InvalidArguments: GETINFO request contained unrecognized keywords: ns/id/2BCDF9F0BCEFC2A44F7850F92362BA85AA226E1F

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib64/python3.3/threading.py", line 901, in _bootstrap_inner
  File "/usr/lib64/python3.3/threading.py", line 858, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 882, in _event_loop
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 3480, in _handle_event
  File "./err.py", line 47, in orconn_event
    relay = controller.get_network_status(fingerprint)
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 414, in wrapped
    raise exc
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 409, in wrapped
    return func(self, *args, **kwargs)
  File "/usr/lib64/python3.3/site-packages/stem/control.py", line 1761, in get_network_status
    raise stem.DescriptorUnavailable("Tor was unable to provide the descriptor for '%s'" % relay)
stem.DescriptorUnavailable: Tor was unable to provide the descriptor for '2BCDF9F0BCEFC2A44F7850F92362BA85AA226E1F'

while running this script :

$ cat err.py
#!/usr/bin/python3 -u

#   Toralf Foerster
#   Hamburg
#   Germany

# collect data wrt to https://trac.torproject.org/projects/tor/ticket/13603

import time
import functools

from stem import ORStatus, ORClosureReason
from stem.control import EventType, Controller

def main():
  class Cnt(object):
    def __init__(self, done=0, closed=0, ioerror=0):
      self.done = done
      self.closed = closed
      self.ioerror = ioerror

  c = Cnt()

  with Controller.from_port(port=9051) as controller:

    orconn_listener = functools.partial(orconn_event, controller, c)
    controller.add_event_listener(orconn_listener, EventType.ORCONN)

    while True:

def orconn_event(controller, c, event):
  if event.status == ORStatus.CLOSED:
    c.closed += 1

    if event.reason == ORClosureReason.DONE:
      c.done += 1

    if event.reason == ORClosureReason.IOERROR:
      c.ioerror += 1

      fingerprint = event.endpoint_fingerprint
      print (" %i %i %i %i %s %40s" % (c.closed, c.done, c.ioerror, event.arrived_at, time.ctime(event.arrived_at), fingerprint), end='')
      relay = controller.get_network_status(fingerprint)
      if relay:
        print (" %15s %5i %s %s" % (relay.address, relay.or_port, controller.get_info("ip-to-country/%s" % relay.address, 'unknown'), relay.nickname), end='')
      print ('', flush=True)

if __name__ == '__main__':

boklm (2 matches)

Ticket Summary Component Milestone Type Created
#11508 Test that about:tor page is properly loaded Applications/Quality Assurance and Testing enhancement Apr 14, 2014

During the last beta release we realized that some translators translate "about:tor" which breaks it. We should write a test that checks this crucial page is working in built bundles.

#11509 Make sure search engine strings are not translated Applications/Quality Assurance and Testing enhancement Apr 14, 2014

Bug #11236 is caused by translated search engine strings. We should make sure those strings are not translated.

catalyst (2 matches)

Ticket Summary Component Milestone Type Created
#22619 SessionGroup = Reading config failed Core Tor/Tor Tor: unspecified defect Jun 15, 2017

If i specify SessionGroup as described in manual. tor stops with error.


SocksPort 9051 SessionGroup=1

Jun 15 16:46:24.700 [warn] Invalid SocksPort option '"SessionGroup=INT"'

Jun 15 16:46:24.700 [warn] Failed to parse/validate config: Invalid SocksPort/SocksListenAddress configuration

Jun 15 16:46:24.701 [err] Reading config failed--see warnings above.

second try

SocksPort 9051 SessionGroup=INT

Results into:

Jun 15 16:46:35.677 [warn] Invalid SocksPort option '"SessionGroup=1"'

Jun 15 16:46:35.678 [warn] Failed to parse/validate config: Invalid SocksPort/SocksListenAddress configuration

Jun 15 16:46:35.677 [warn] Invalid SocksPort option '"SessionGroup=1"'

Jun 15 16:46:35.678 [warn] Failed to parse/validate config: Invalid SocksPort/SocksListenAddress configuration

Jun 15 16:46:35.678 [err] Reading config failed--see warnings above.

#23756 tor's .gitlab-ci.yml is doing mirroring? why? Core Tor/Tor Tor: unspecified defect Oct 4, 2017

Currently in master we have the following stanza in our .gitlab-ci.yml (from #22891):

    - "apt-get install -y --fix-missing git openssh-client"                                                                                                                                                                       
    # Run ssh-agent (inside the build environment)                                                                                                                                                                                
    - eval $(ssh-agent -s)                                                                                                                                                                                                        
    # Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store                                                                                                                                                       
    - ssh-add <("$DEPLOY_KEY")                                                                                                                                                                                                
    # For Docker builds disable host key checking. Be aware that by adding that                                                                                                                                                   
    # you are suspectible to man-in-the-middle attacks.                                                                                                                                                                           
    # WARNING: Use this only with the Docker executor, if you use it with shell                                                                                                                                                   
    # you will overwrite your user's SSH config.                                                                                                                                                                                  
    - mkdir -p ~/.ssh                                                                                                                                                                                                             
    - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'                                                                                                                                  
    # In order to properly check the server's host key, assuming you created the                                                                                                                                                  
    # SSH_SERVER_HOSTKEYS variable previously, uncomment the following two lines                                                                                                                                                  
    # instead.                                                                                                                                                                                                                    
    - mkdir -p ~/.ssh                                                                                                                                                                                                             
    - '[[ -f /.dockerenv ]] && echo "$SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts'                                                                                                                                                  
    - echo "merging from torgit"                                                                                                                                                                                                  
    - git config --global user.email "labadmin@oniongit.eu"                                                                                                                                                                       
    - git config --global user.name "gitadmin"                                                                                                                                                                                    
    - "mkdir tor"                                                                                                                                                                                                                 
    - "cd tor"                                                                                                                                                                                                                    
    - git clone --bare https://git.torproject.org/tor.git                                                                                                                                                                         
    - git push --mirror git@oniongit.eu:network/tor.git                                                                                                                                                                           

Why are we doing this? Can we put a cronjob on the oniongit.eu server instead? It's pretty weird and frankly unexpected that my personal fork of tor at https://gitlab.com/isis/tor is cloning the official tor repo and then trying to mirror it to oniongit.eu. It also has a bunch of other problems:

I was originally going to patch the ssh-add line to instead be [[ -n "${DEPLOY_KEY}" -a -r "$DEPLOY_KEY" ]] && ssh-add "$DEPLOY_KEY" <<<"" but if I fix that, then all the rest of this script would run, so I'm rather glad it's failing on a more innocuous command.

  • Even if the ssh-add line weren't broken, this whole thing fails unless it's being run from a fork on oniongit.eu.
  • Why is it disabling SSH hostkey checking?!
  • Why is it making the ~/.ssh directory twice?
  • Why is it assuming that environment variables are set? e.g. $FOO versus ${FOO} or better test -n ${FOO}
  • Why is it unconditionally setting (global!) git config options? (I assume to disable the warning that git spits out when you don't have $GIT_{AUTHOR,COMMITTER}_{NAME,EMAIL} set, but why would a CI config set them globally instead of just setting the correct environment variables?)
  • Why are the mirror URLs hardcoded?
  • Why is the git username and email hardcoded?
  • Why is any of this even running when I push to https://gitlab.com/isis/tor?
  • Why is any of this even running when I push anywhere?
  • Why is it unconditionally starting an ssh-agent?
  • Why is using the existence of a (deprecated!) /.dockerenv file to determine if we're in a docker container?
  • Why is it assuming we're in the correct docker container, when lots of things, especially lots of CI systems, use docker?

I'm sorry if this is all necessary and I'm just not understanding the setup, but it's all just extremely unexpected behaviour from what is supposed to be a CI config file. Further, it's not even doing the same testing as our .travis.yml, but I'll make another ticket for that issue.

cohosh (1 match)

Ticket Summary Component Milestone Type Created
#25483 Windows reproducible build of snowflake Circumvention/Snowflake project Mar 13, 2018

Breaking this out from https://trac.torproject.org/projects/tor/ticket/19001#comment:36, where dcf wrote,

I pushed some preliminary code for getting started with a windows reproducible build.


It doesn't work yet; after ./mkbundle-windows.sh versions.alpha, it eventually fails with:

+ /home/ubuntu/build/webrtc/src/out_bootstrap/gn gen out/Release '--args= target_os="win" target_cpu="x86" is_debug=false treat_warnings_as_errors=false is_component_build=false is_clang=true use_sysroot=false clang_use_chrome_plugins=false clang_base_path="/home/ubuntu/build/clang" rtc_include_opus=false rtc_include_ilbc=false rtc_include_internal_audio_device=false rtc_include_tests=true'
ERROR at //build/config/BUILDCONFIG.gn:239:3: Assertion failed.
  assert(target_os == host_os, "Win cross-compiles only work on win hosts.")
Win cross-compiles only work on win hosts.

But at this point one can ssh into the build VM and start debugging the build failures.

Some further notes from what we've discovered so far.

cypherpunks (1 match)

Ticket Summary Component Milestone Type Created
#21518 Pluggable transports for zero-rated services Applications/Orbot project Feb 20, 2017

Tor increases data usage, and most of the demographics that need Tor the most have very limited data, so please make PTs available for zero-rated services.

For example FreedomPop zero-rates WhatsApp (https://9to5mac.com/2016/08/17/freedompop-whatsapp-sim-free-iphone/) in 30 countries on a free ($0/month) plan.

A WhatsApp plugable transport would therefor allow users in poverty-stricken, massively oppressed countries to have unlimited free access to information through Tor.

I'm not sure if the component should be Orbot or Tor; the WhatsApp example is for mobile but there is also zero-rating for house internet, or someone might want to use a WhatsApp PT on a desktop/laptop/notebook with conventional Tor, tethered to a smartphone for the zero-rated protocol.

dgoulet (26 matches)

Ticket Summary Component Milestone Type Created
#30440 sendme: Service introduction circuit ignore flow control Core Tor/Tor Tor: unspecified defect May 8, 2019

As preamble, circuit level SENDMEs are end-to-end which means they go from client to exit and vice versa. In other words, they can be described to be from edge connection to edge connection.

Which is exactly where it goes wrong for hidden service cells. First of all, they are not DATA cells so the SENDME logic is entirely ignored for all of them. They are all "circuit establishment" cells (see the list below)...


... *except* one single cell which is the INTRODUCE2 cell. A large number of these cells can be put on the same introduction service circuit, basically for each client introducing.

Which means that the intropoint can send as much cell as it wants on the service circuit without being bound by the SENDME flow control logic. Plainly speaking, intro points do not wait for an acknowledgement of the service to send more data, they just shove it all on the circuit.

This most likely render the introduction DoS (#29607) worst because the service actually constantly receives introduction requests as they queue up massively due to the intro point sending them non stop.

If there would be flow control on that circuit, a heavily loaded service (in CPU) would take a while to handle all introduction requests and then the SENDME cell towards the intro point would be only sent when the last request is actually handled and likely have CPU for new ones.

This also prevents us basically from implementing armadev's proposal in #15516 (https://trac.torproject.org/projects/tor/ticket/15516#comment:28).

#22893 prop224: Make intro point per-service and not per-descriptor Core Tor/Tor Tor: unspecified enhancement Jul 12, 2017

With the service branch in #20657, the current code design has intro points (IPs) per-descriptor meaning intro point objects are indexed inside a descriptor object.

We want to change that to a per-service design for which there is a set of intro points picked by the service which are then assigned to descriptor(s).

The reason to do such a thing is so we expose less IPs overtime thus minimizing the service exposure. Currently, because IPS are per-descriptor, once the descriptor rotates we also rotate IPs which bounds IPs' lifetime to the descriptor lifetime but this is not always true (and should not).

With a per-service design, IPs can live on between descriptors because they rotate at a different rate than the IPs and thus honoring its lifetime.

#23744 sched: Notification events have different meaning for each scheduler Core Tor/Tor Tor: unspecified defect Oct 2, 2017

As an example, KIST controls how much and when channel data is pushed on the network which means this wants to write event used by the Vanilla scheduler as "queued cell but no space on the outbuf" is not something that is coherent with KIST.

A channel is scheduled in when it has cells in the queue, then they are flushed one by one by the KIST scheduler until the kernel says "no more space". Then, that channel is put back in the channel pending list and will get handled at the next tick of KIST.

So, we really don't need KIST to be notified of this event from connection_flushed_some() which is used by Vanilla to try to flush more cells in the outbuf because the outbuf has room for it.

Where it is useful is the second callsite of that even in channel_tls_handle_state_change_on_orconn() which notifies the scheduler that it might be in need of flushing some stuff. In the case of a brand new channel just opening, its state is "IDLE" and that even will then put it in "waiting for cells" after.

That being said, what needs to happened:

  1. Make the notification event a per-scheduler thing because KIST and Vanilla have different semantic for those events really. We should of course avoid as much as we can of code duplication and thus some "generic event handler" do make sense if they share the same semantic.
  1. Add a "channel state is open" notification event instead of "wants to write" which is really only true in very specific cases in channel_tls_handle_state_change_on_orconn(). That way, the scheduler can take a decision on the status of the channel instead of blind guessing it is waiting for cells.
  1. Nullify the "wants to write" event for KIST considering (2) so it stops possibly scheduling channels that do not need at all to be scheduled.

#26806 Check if Tor clients sometimes send duplicate cells on rendezvous circuits: Possible replay detected! An INTRODUCE2 cell with thesame ENCRYPTED section was seen Core Tor/Tor Tor: unspecified defect Jul 16, 2018

As my v3 onion service is getting more and more popular, I started to get:

[warn] Possible replay detected! An INTRODUCE2 cell with thesame ENCRYPTED section was seen 32 seconds ago. Dropping cell.

I am inclined to think that this is more like a bug in Tor, maybe due to a race condition, rather than a replay attack.

I also think this is what causes #15618 - dgoulet confirmed that the warning can be reproduced every time a second ESTABLISH_RENDEZVOUS is sent over the same circuit.

This can probably go away if we fix #21084. I am not sure if that should be a parent ticket here or not, please change if you feel like it. I think I still have yawning's tool and notes about how to reproduce #21084.

#3733 Tor should abandon rendezvous circuits that cause a client request to time out Core Tor/Tor Tor: unspecified defect Aug 14, 2011
Aug 14 05:59:04.639 [Notice] Rend stream is 120 seconds late. Giving up on address '[scrubbed].onion'.
Aug 14 05:59:09.631 [Notice] Rend stream is 120 seconds late. Giving up on address '[scrubbed].onion'.
Aug 14 06:04:08.637 [Notice] Rend stream is 120 seconds late. Giving up on address '[scrubbed].onion'.
Aug 14 06:04:10.634 [Notice] Rend stream is 120 seconds late. Giving up on address '[scrubbed].onion'.
Aug 14 06:04:30.680 [Notice] Rend stream is 120 seconds late. Giving up on address '[scrubbed].onion'.

All of these streams had been attached to the same rendezvous circuit.

#14322 torsocks fails to wrap setcap binaries Core Tor/Torsocks defect Jan 22, 2015

the Linux 'capabilities' library for allowing non-root users to perform tasks which normally require elevated privileges.

at present the torsocks wrappers have checked for setuid and setgid flags on the binaries it executes and failed closed, throwing an error if this occurs, however there is currently no check to see if the binaries have capabilities applied.

in the case where they do, the LD_PRELOAD set by torsocks is stripped and the program will execute with no warning and without the torsocks wrapper.

as an example of this, the current 'ping' command on my Linux is setcap:

$ getcap which ping /usr/bin/ping = cap_net_raw+ep $ torsocks ping -c 1 torproject.org PING torproject.org ( 56(84) bytes of data. 64 bytes from icmp_seq=1 ttl=50 time=38.1 ms

the install script which does setcap
setuid here:


#16934 youtube-dl (recent), torsocks 2.1.0 and TBB5+ failure Core Tor/Torsocks defect Aug 31, 2015

ERROR torsocks[29369]: [socks5] Resolve destination buffer too small (in socks5_recv_resolve_reply() at socks5.c:690) ERROR: Unable to download webpage: <urlopen error [Errno -4] Non-recoverable failure in name resolution> (caused by URLError(gaierror(-4, 'Non-recoverable failure in name resolution'),))

The error changes over time. But it is mostly in this range. With a fresh restart the problem goes away, but it is back after some time blocking all requests.

Stopping any TBB5 running and starting TBB4.5.3 makes everything go smooth again.

Besides TBB, nothing changes in the configuration.

#21084 sometimes we call circuit has_opened() more than 2 times on client side Core Tor/Tor Tor: unspecified defect Dec 26, 2016

We have a branch bug15618_030-testing at https://gitweb.torproject.org/user/dgoulet/tor.git that logs a warning when we call more than 2 times circuit has_opened() on a circuit. The patch was made to confirm the theory on #15618 related to a warning we see on relays. While until now I never saw the warning on relay side, I see it quite often on client side.

Based on the log messages, I think this is related to introduction point circuits and not rendezvous circuits as we thought. Basically it happens when we open a 4 hop circuit with last hop X, and immediately we extend that circuit to a 5 hop one with last hop Y, where Y is (I think) the introduction point. I got the warning 2 times in a row and the similarity between them is that they are 5 hop circuits with the last two hops 4 and 5 the same, but different hops 2 and 3.

Dec 25 13:15:15.000 [info] internal circ (length 5, last hop $D7316BF7FD633DD7474B18C33E1D5FDEB04D26A7): $A7C411B809D0AA98C4264917BB701ABF17B2181E(open) $B5212DB685A2A0FCFBAE425738E478D12361710D(open) $123F403DA94A74F959B7FE0E5B27FA57EFA12925(open) $1F4105C688E835A56AF3D66C787677B57240FFA2(open) $D7316BF7FD633DD7474B18C33E1D5FDEB04D26A7(open)
Dec 25 13:15:15.000 [info] entry_guards_note_guard_success(): Recorded success for primary confirmed guard sakujakira ($A7C411B809D0AA98C4264917BB701ABF17B2181E)
Dec 25 13:15:15.000 [info] circuit_send_next_onion_skin(): circuit built!
Dec 25 13:15:15.000 [warn] BLAM. Circuit has_opened() called 3 times.
Dec 25 13:15:15.000 [info] rend_client_introcirc_has_opened(): introcirc is open
Dec 25 13:15:15.000 [info] connection_ap_handshake_attach_circuit(): pending-join circ 3419634369 already here, with intro ack. Stalling. (stream 26 sec old)
Dec 25 13:15:15.000 [info] connection_ap_handshake_attach_circuit(): ready rend circ 2404371907 already here (no intro-ack yet on intro 2259155742). (stream 26 sec old)
Dec 25 13:15:15.000 [info] connection_ap_handshake_attach_circuit(): found open intro circ 2259155742 (rend 2404371907); sending introduction. (stream 26 sec old)
Dec 25 13:15:15.000 [info] rend_client_send_introduction(): Sending an INTRODUCE1 cell
Dec 25 13:15:15.000 [info] pathbias_count_use_attempt(): Used circuit 53293 is already in path state use succeeded. Circuit is a Hidden service client: Pending rendezvous point currently open.
Dec 25 13:15:16.000 [info] internal circ (length 5, last hop $D7316BF7FD633DD7474B18C33E1D5FDEB04D26A7): $A7C411B809D0AA98C4264917BB701ABF17B2181E(open) $5C01D5518D1F5A071C6F07D1F4630F577AB5B60A(open) $DA9DA02A7B0565DF5F3E961CA911E750072DCBBD(open) $1F4105C688E835A56AF3D66C787677B57240FFA2(open) $D7316BF7FD633DD7474B18C33E1D5FDEB04D26A7(open)
Dec 25 13:15:16.000 [info] entry_guards_note_guard_success(): Recorded success for primary confirmed guard sakujakira ($A7C411B809D0AA98C4264917BB701ABF17B2181E)
Dec 25 13:15:16.000 [info] circuit_send_next_onion_skin(): circuit built!
Dec 25 13:15:16.000 [warn] BLAM. Circuit has_opened() called 3 times.
Dec 25 13:15:16.000 [info] rend_client_introcirc_has_opened(): introcirc is open
Dec 25 13:15:16.000 [info] connection_ap_handshake_attach_circuit(): pending-join circ 3419634369 already here, with intro ack. Stalling. (stream 26 sec old)
Dec 25 13:15:16.000 [info] connection_ap_handshake_attach_circuit(): Intro circ 2259155742 present and awaiting ack (rend 2404371907). Stalling. (stream 26 sec old)
Dec 25 13:15:16.000 [info] connection_ap_handshake_attach_circuit(): Intro circ 3200472182 present and awaiting ack (rend 4286776399). Stalling. (stream 26 sec old)
Dec 25 13:15:16.000 [info] connection_ap_handshake_attach_circuit(): ready rend circ 2334828448 already here (no intro-ack yet on intro 4002828471). (stream 27 sec old)
Dec 25 13:15:16.000 [info] connection_ap_handshake_attach_circuit(): found open intro circ 4002828471 (rend 2334828448); sending introduction. (stream 27 sec old)
Dec 25 13:15:16.000 [info] rend_client_send_introduction(): Sending an INTRODUCE1 cell
Dec 25 13:15:16.000 [info] pathbias_count_use_attempt(): Used circuit 53301 is already in path state use succeeded. Circuit is a Hidden service client: Pending rendezvous point currently open.

#23108 prop224: Don't rotate all service descriptors at once Core Tor/Tor Tor: unspecified defect Aug 4, 2017

In rotate_all_descriptors() there is the following XXX that needs to be resolved:

  /* XXX We rotate all our service descriptors at once. In the future it might
   *     be wise, to rotate service descriptors independently to hide that all
   *     those descriptors are on the same tor instance */

#23507 Add single onion unreachable address algorithm to prop224 and implement it Core Tor/Tor Tor: unspecified defect Sep 13, 2017

Here is how we make IPv6 (and other unreachable addresses) work with single-hop client and service connections to intro and rend points. It works for v2 single onion services. We talked about it for v3, but it never made it into the prop224 spec.

Here are the steps:

  1. The service chooses and connects to the intro point (possibly using a 3-hop path if it is a single onion service and can't reach it directly)
  2. The service always puts IPv4 and IPv6 in its descriptor link specifiers (if they are available in directory documents)
  3. If the link specifier has a reachable address, and the service is not a single onion service, a Tor2web client (currently v2 only) can use it to make a direct connection to the intro point
  4. Otherwise, the client connects over a 3-hop path via one of its reachable entry nodes

The process for client rendezvous is similar, but if the client knows that the service is a single onion service, it *must* connect to the rend point using a 3-hop path. (Again, this only matters for Tor2web, which is v2 only).

#23711 sched: KIST writes to kernel and get a "wants to write" notification right after Core Tor/Tor Tor: unspecified defect Sep 29, 2017

KIST scheduler does call a write to kernel contrary to the vanilla scheduler. This is done through channel_write_to_kernel() which calls connection_handle_write().

That last function will ultimately call connection_or_flushed_some() which triggers a scheduler_channel_wants_writes() because of this condition:

  datalen = connection_get_outbuf_len(TO_CONN(conn));
  if (datalen < OR_CONN_LOWWATER) {

That is OK if datalen > 0 but useless if datalen == 0. For KIST, it makes the channel go back in pending state and scheduled because it wants to write. But then if the outbuf or the cmux queue is empty, we end up scheduling a channel that actually does NOT need to write at all.

Could be the fix here is probably simple as:

  if (datalen > 0 && datalen < OR_CONN_LOWWATER) {

I suspect with KIST, the datalen will always be 0 because KIST in theory controls exactly what goes in the outbuf and what can be written to the kernel so when it triggers a connection write(), the entire outbuf should be drained (in theory). So the effect of this is that every write to the kernel from KIST triggers a useless "wants to write" event rescheduling the channel. Note that this only happens if the channel is in SCHED_CHAN_WAITING_TO_WRITE state.

#23712 sched: DESTROY cell on a circuit bypasses the scheduler Core Tor/Tor Tor: unspecified defect Sep 29, 2017

If you look at circuitmux_append_destroy_cell(), it is the one appending a DESTROY cell to the cmux queue and then calls channel_flush_from_first_active_circuit() if no writes are pending that is if the outbuf is empty (also looks at the out queue but that is always empty #23709).

In the case the flush is triggered, the cell is immediately put in the outbuf and written to kernel by libevent which completely bypasses the scheduler. Maybe it is what we want that is go as fast as we can in destroying a circuit? Don't know but it has this effect on the scheduler where the channel is scheduled with a "wants_to_write" event from the connection subsystem and ultimately the channel gets scheduled with nothing in the queue because it is already on the outbuf. For KIST, this is not ideal because KIST should control the flow of data to the kernel.

It seems there are two places we queue cells into a cmux queue: circuitmux_append_destroy_cell() and append_cell_to_circuit_queue(). The latter triggers a "has waiting cells" for the scheduler which is what we want but the former just bypasses it.

I think it should simply trigger that notify to the scheduler instead of flushing it by itself.

#24008 service_intro_point_new() should return NULL when passed a NULL extend_info Core Tor/Tor Tor: unspecified defect Oct 26, 2017

We pass a NULL extend_info to service_intro_point_new() in the unit tests, and expect a non-NULL return value.

But buggy code could also pass NULL here, and we should return NULL if that happens.

One way to fix this is to split the function into two, and only call the first half in the unit tests.

#24181 Put IPv6 and unrecognised link specifiers in onion service EXTEND cells Core Tor/Tor Tor: unspecified defect Nov 8, 2017

Prop224 says:

The hidden service SHOULD NOT reject any LSTYPE fields which it
doesn't recognize; instead, it should use them verbatim in its EXTEND
request to the rendezvous point.


We should either remove this from the spec, or we should:

  • add a similar sentence for client descriptor lspecs
  • put unrecognised lspecs in descriptors in client intro EXTEND requests
  • put unrecognised lspecs in INTRODUCE cells in service rend EXTEND requests

#29625 git-pull-all.sh should say which branches it updated, and which files changed Core Tor/Tor Tor: 0.4.1.x-final defect Mar 1, 2019

One of our defenses against weird merges is that when each developer pulls the latest version of the branches, git will tell them which files changed. But if I'm reading the output of the git scripts correctly, they don't actually do this.

IMO we should _not_ suppress the output of the pull/merge operations here, or at least not the part that says what changed.

#30382 Provide control port event for when we are missing v3 client auth for an onion Core Tor/Tor Tor: 0.4.2.x-final defect May 3, 2019

For TB to be able to alert the user that they need to input their client auth credentials we need an appropriate control port event.

In particular:

1) When Tor fails to decrypt the second layer of desc encryption, we issue the CLIENT_AUTH_NEEDED <onion> <reason> event. Tor does not go to fetch more descs from the hsdir for this onion.

2) At the same time, we store the broken descriptor into the hs cache, with a special flag that says "missing client auth" and hence desc is NULL.

3) When TB intercepts the event it presents the user with a dialogue (#30237) and adds any client auth creds with the commands from #30381.

4) As part of the #30381 commands the descriptor is decrypted.

5) TB issues another SOCKS request which uses the right descriptor and goes forward.

#11579 Torsocks should support Java Core Tor/Torsocks enhancement Apr 21, 2014

Right now Java programs run with torsocks have their network calls dropped, or sometimes crash. Torsocks should force Java programs to use Tor. This could be done by setting the proxy settings in the JVM with -DsockProxyHost= -DsocksProxyPort=8080. To ensure proxy obedience for DNS calls, torsocks might implement a DNS provider that uses SOCKS for resolution, add that to the classpath, and use it to override the DNS provider the JVM uses at runtime.

#11724 Check recvmmsg() FD passing on Unix socket for TCP socket Core Tor/Torsocks enhancement May 4, 2014

recvmsg() is supported as of now. A full exit should be done here because Torsocks can't handle this inet socket with Tor.

#11727 Support shared onion pool for DNS resolution in separate process Core Tor/Torsocks enhancement May 4, 2014

So it turns out that in irssi is doing DNS resolution in an other process and passing the result back to the first process which will make the connection.

This means that the two process have two distinct onion pools so the process doing the DNS resolution will store the onion address with the reserved cookie but the other process, when connecting using that cookie, will be unable to find the onion address in its pool.

One solution I have in mind is to create that onion pool in a shared memory (SHM) and hijack the clone/fork symbol so when we detect a new process we can set the onion pool reference in it thus sharing the pool across processes that have a common parent.

I have a PoC that works but maybe there could be an IPC approach instead.

#13184 Add an option to whitelist networks Core Tor/Torsocks enhancement Sep 17, 2014

This warning is possible for anything socket trying to connect to a localhost address.

WARNING torsocks[12360]: [connect] Connection to a local address are denied since it might be a TCP DNS query to a local DNS server. Rejecting it for safety reasons. (in tsocks_connect() at connect.c:177)

We should implement a whitelist mechanism so the user can tell which local network is allowed such as localhost.

#17945 Stop single hop client connections to Single Onion Services Core Tor/Tor Tor: unspecified enhancement Dec 29, 2015

Tor2Web clients make a one-hop connection to HSDirs, intro points, and rend points. Single Onion Services also make a one-hop connection to the rendezvous point.

This uses Tor as a one-hop proxy (in this case, to a single onion service), which we try to avoid, because it enables certain attacks. We also try to avoid single hop connections in the onion service protocol, because they give IP addresses to middle relays.

See the child tickets for details.

#19407 Support FD passing on Unix socket Core Tor/Torsocks enhancement Jun 13, 2016

Multiple issues need FD passing through a Unix socket to work: #8585, #16183

It's maybe possible to support this safely. My intuition is that we might be able to get it work by passing some cookies in the ancillary data so we can recognize the sendmsg() with the recvmsg(). Maybe!?...

#23579 sched: Add accessors for channel_pending list Core Tor/Tor Tor: unspecified enhancement Sep 19, 2017

Let's make this list private and have accessors.

#24451 Put IPv6 link specifiers in client EXTEND cells Core Tor/Tor Tor: unspecified enhancement Nov 28, 2017

Clients should put IPv6 link specifiers in the EXTEND cells to relays they choose from directory documents.

We need to do this in the same releases as #24181, to avoid adding an v3 onion service distinguisher.

#19926 BUG warning in connection_ap_attach_pending: waiting for rendezvous desc :* Core Tor/Tor Tor: unspecified defect Aug 17, 2016

connection_ap_attach_pending: Bug: 0x613000b8d680 is no longer in circuit_wait. Its current state is waiting for rendezvous desc. Why is it on pending_entry_connections? (on Tor f6c7e131a1ceb178) Yeah, why?

#19793 Torsocks - only torify .onion domains Core Tor/Torsocks enhancement Jul 31, 2016

What torsocks does: Routes all traffic through Tor.

What it should do: It shoud have an option to route .onion domains through Tor, while normal traffic is not routed through Tor.

Advantages This would allow Mail/XMPP servers to connect to .onion domains, without any configuration hassle.

Original discussion http://tor-talk.torproject.narkive.com/j7MtPG5T/torsocks-usewithtor-only-for-onion

feynman (1 match)

Ticket Summary Component Milestone Type Created
#9022 Create an XMPP pluggable transport Circumvention/Pluggable transport task Jun 5, 2013

We should look into XMPP pluggable transports. There are many public XMPP services that see widespread use even from censored countries.

hiro (5 matches)

Ticket Summary Component Milestone Type Created
#22530 Redirection loop with disabled js on every page of blog.torproject.org Webpages/Blog defect Jun 8, 2017

For several years everyone was able to post on https://blog.torproject.org without enabling JavaScript and other dangerous things.

Observed behaviour: can not post unless slider set to medium or low Expected behaviour: high security supported Steps to reproduce: try to post at https://blog.torproject.org with security slider on high

#23574 Don't allow text injection in our 404 page Internal Services/Tor Sysadmin Team defect Sep 19, 2017

We got a report on HackerOne by sumitthehacker:

i want to report a text injection and a misconfiguration of the 404 page

the bug exists at :


as you can see attacker text is included
"It has been changed by a new one https://www.attacker.com so go to the new one since this one was not found on this server."

#28065 Tor web docs Internal Services/Services Admin Team defect Oct 16, 2018

During the meeting in CDMX some of us chatted about the possibility to build and maintain a sort of Tor web docs (like the mozilla web docs [1]).

The idea is to collect all the techniques we use to make websites tor-browser and privacy friendly in a single place. We could also include the reasoning behind doing certain things in pure css vs js. Or why we decide to do things in a certain way.

Some topic that I have been thinking about are:

  • Why tor browser is slightly different from Firefox (or another browser)
  • Why does my app work differently in tor browser?
  • How can I make my app compatible for people that do not use JS?
  • Code examples for css and js
  • Server side website programming, what to keep in mind...

While all these topics are documented in various articles around the interwebs, I kinda think we (tor community) should own something like this, since it would also help to push forward the idea that the web as we know it needs to change.

Up to now I have always thought this sort of content belonged to the styleguide. Recently I have been thinking that while the individual implementation details of what use in our websites can be included in the styleguide, the reasoning behind those and the general implementations should be put somewhere else.

Also I do not think these topics belong directly to the dev portal, as I tend to think that should be about developing on tor rather than considering how the web works a bit differently when using tor browser. Unless we would rather do a specific section regarding all this in the web portal.

Further things to consider:

  • Kevin (on cc) is working on a Tor friendliness scanner tool for websites.
  • We see often threads like this [2] on our mailing lists. This one is about how to avoid privacy leaks for onion services, but we might identify more similar best practice tips being discussed.

[1] https://developer.mozilla.org/en-US/ [2] https://lists.torproject.org/pipermail/tor-onions/2018-August/000295.html

#22842 Create a knowledge base that's more in-depth than FAQs Webpages/Website WebsiteV3 task Jul 6, 2017

It would be useful for visitors to our web pages to have access to content that:

  • goes into more depth than a FAQ entry
  • is more formal than a blog post
  • is less comprehensive than a reference manual section
  • is more stable than a wiki page

These pages would form sort of a knowledge base or resource section.

#23809 Add instructions for running a relay on a Raspberry Pi Community/Tor Support website redesign task Oct 10, 2017

I know this is basically just Debian instructions, but framing this differently could really help for those that don't already know that Raspbian is essentially just Debian underneath.

This could be deferred until after the big website changes.

irl (3 matches)

Ticket Summary Component Milestone Type Created
#29315 Write down guidelines for adding new stats Metrics/Website enhancement Feb 3, 2019

We're going to add a few new stats to Tor Metrics in the next months: BridgeDB, PrivCount, sbws, and maybe more, in no specific order.

Let's write down some initial guidelines what we expect and what others can expect. And let's refine these initial guidelines as we add some actual stats. Once we're happy with them we should put them on Tor Metrics.

Assigning this ticket to myself for now, as I'm going to post a first draft soon. Cc'ing a few folks who we'll be working together with on adding new data.

#28322 Deploy better notification system for operational issues Metrics project Nov 5, 2018

We have been using Nagios to monitor Onionoo for a few years now, and we recently extended (#28242) or added new Nagios checks (#28271).

We should consider adding even more checks. One year ago we discussed what checks that could be, and it seems like this list could still serve as starting point for adding new checks now.

#28271 Check OnionPerf instances from Nagios Metrics/Onionperf task Oct 31, 2018

There are a few things that we can check, some are easier than others.

  • Is the host up and the webserver running? (this is easy with built-in checks)
  • Is the tgen server running on the Internet? (this is easy with built-in checks)
  • Is the analyze task running? (needs a plugin)
  • Is the tgen server running on an Onion service? (needs a plugin)

For monitoring the Onion service, I'm looking at reusable plugins, so there are two tests. One checks to see how old the descriptor is and a second test actually tries connecting to the service. The first of these tests is affected by #28269 (but not blocked) and both are blocked by onionperf#42.

As a workaround for monitoring the Onion service, which really is the bit that is breaking, we can instead monitor the analysis of timeouts from Tor Metrics' CSV files.

juga (1 match)

Ticket Summary Component Milestone Type Created
#28045 Start supporting python 3.7 Core Tor/sbws sbws: unspecified defect Oct 15, 2018

lunar (1 match)

Ticket Summary Component Milestone Type Created
#11355 Provide obfsproxy nightlies in our debian repositories Archived/Obfsproxy task Mar 28, 2014

People are asking for obfsproxy nightlies (#10954). It would be brilliant if people could add our debian repo, and get the latest obfsproxy master through it.

How can I help you do this?

No hurry on this one. I mainly made this ticket because #10954 was not very specific.


mikeperry (1 match)

Ticket Summary Component Milestone Type Created
#2161 Allow subscription to external rule feeds HTTPS Everywhere/EFF-HTTPS Everywhere enhancement Nov 6, 2010

The ultimate direction we want to go is towards an adblock plus model, where people can subscribe to rule feeds that are relevant to them, maintained by third parties. This involves both altering our XML schema to include a 'rulefeed' envelope tag, and adding a bit of UI to add and manage subscription urls.

It also depends upon a few enhancements being completed first. These are in the child ticket list below:

n8fr8 (6 matches)

Ticket Summary Component Milestone Type Created
#2424 Android purges firewall rules after network disable/airplane mode. Applications/Orbot defect Jan 22, 2011

Setting my phone to disable data access and/or enable airplane mode seems to cause the transproxy iptables rules created by OrBot to get silently flushed. After re-enabling, all apps access everything without tor, until I go into the orbot config screen to cause it to reapply them.

OrBot should listen for these network disable/loss/disconnect events if possible, and reinstate the iptables rules after this happens.

Someone should also test if switching from cell data to+from wifi also triggers this iptables reset. I have not tested that yet.

#3595 Connections with IPv4-mapped IPv6 addresses bypass transproxy Applications/Orbot defect Jul 14, 2011

A user (DEplan on #guardianproject) reported that Gibberbot was using his real IP despite Orbot's transproxy being turned on; further research led to the conclusion that recent releases of Android seem to use IPv4-mapped IPv6 adresses for a large portion of connections. For examples, please see http://pastebin.com/Z4KDDq40. These connections completely bypass transproxy.

I am not yet sure about the circumstances under which Android employs these addresses.

The problems in finding a solution are that Android usually does not include ip6tables (though Orbot could simply package that) and kernels do usually not include IPv6 netfilter modules. The latter is a major issue, since Orbot can't package modules for every single kernel a user might be running.

As a side note, IPv6 does not support NAT (which is what transproxying is based on).

I'll try to figure out what triggers this behaviour of Android and find possible solutions (using sysctl to disable IPv6 does not solve it).

#5393 orbot relay bug - orbot is not setting the relay values into torrc properly causing orbot to not work when set as relay Applications/Orbot defect Mar 15, 2012

This is about the bug discussed with 'n8fr8' on #guardianproject at freenode. So, the relay functionality you said was broken and needs to be fixed for 'orbot' on smartphones. I checked with the orbot version '' and you have checked with the 'dev branch of the code' as you said (i suppose that means you have checked with latest version of code by compiling and running the latest updated version from git; i will do it too and let you know again). But none seemed to work. In fact, you said you were getting a more significant crash, when you enabled relaying on smartphone for dev branch of code. You also thought if the problem is: whether the Relay conflict is with transproxying/root or with Tor client connection in general. But, i'm not sure if it later seemed not to be the problem. Then, you told me to change the torrc file on my android phone, as you said that orbot is not setting the relay values properly which might be the reason for orbot not working as a relay on smartphone. So, I will do that and let you know about it. I will also keep checking 'https://guardianproject.info/builds/Orbot/' to see if any new dev/debug release is posted. Thankyou so very much for all your help, Mr.Nathan.

#2761 Orbot Service not shutting down Applications/Orbot defect Mar 15, 2011

Behaviour: When closing tor network with big Button and exiting Orbot after tor is "deactivated", privoxy is still running and the Orbot service is not stopped.


  • Killing Privoxy from shell stops the privoxy process (OK)
  • Killing Orbot process simply restarts the process (BAD)


  • Running Orbot v1.0.4.1
  • Android Froyo 2.2.1 speedmod kernel
  • Samsung Galaxy

#3775 Permission error on Orbot Applications/Orbot defect Aug 21, 2011

There's some kind of problem with permissions in Orbot. I'm not sure if this happens only to me, but when I try to start Tor, it cannot access cache/control_auth_cookie. I can chmod it every time, but it is a bit annoying.

#5469 Orbot: can't specify node restrictions Applications/Orbot defect Mar 24, 2012

I'm using Orbot (v0.2.3.10-alpha-1.0.7-FINAL, on Android ICS v4.0.1) and I can't seem to get the exit node I request. In the Exit and Entrance Node fields I have "{us}" entered, yet sometimes I get IP's outside the US. Yesterday I got a UK ip.

Also, at random (usually after 30 minutes or so) I seem to lose connection to the Tor network without Orbot notifying me. I'm using Pandora from Canada.

nickm (33 matches)

Ticket Summary Component Milestone Type Created
#17278 Fix malleable relay crypto Core Tor/Tor Tor: unspecified defect Oct 7, 2015

This has been an annoyance in our protocol for entirely too long. Once we have a solid proposal (#5460) for this, we should implement it posthaste.

#19984 Use a better set of comparison/evaluation functions for deciding which connections to kill when OOS Core Tor/Tor Tor: unspecified defect Aug 25, 2016

Our existing OOS code kills low-priority OR connections. But really, we need to look at all connections that an adversary might be able to create (especially dir and exit connections), or else an adversary will be able to open a bunch of those, and force us to kill as many OR connections as they want.

This problem is the reason that DisableOOSCheck is now on-by-default.

#25386 Link Rust Tests to C Dependencies in Tor (allow integration testing from Rust to C) Core Tor/Tor Tor: unspecified defect Feb 28, 2018

currently, it is not possible to call C Tor, directly or indirectly, from rust tests. one of the following must be done:

  1. provide rust stubs for all C functions that may be needed for tests (impractical)
  1. test rust functions from C (so we will have C tests calling Rust functions calling C functions)
  1. link C functions into rust doctests (preferred)
  1. never call C-using rust functions in tests (leads to poor test coverage, very bad)

my branch https://cgit.alxu.ca/tor.git/commit/?h=fix-rust-tests implements option 3 poorly. this is a bad solution firstly because it is very ugly, and secondly because it does not properly pass the system linking arguments, e.g. -L/opt/ssl. thirdly, it may hide problems in or cause to be compiled incorrectly dependency crates.

this ticket blocks a number of rust improvements, since of course we would like to actually test the improvements, and doctests are the best way to do it in rust.

#18346 Separate the various roles that directory authorities play, from a configuration POV Core Tor/Tor Tor: unspecified enhancement Feb 19, 2016

It would be handy if the following roles were split up:

1) The list of IP:Orport:Identity to which every relay should upload every descriptor. 2) The list of IP:Orport:Identity from which caches should expect to find canonical consensuses and descriptors. 3) The list of IP:Orport:Identity from which non-caches should expect to bootstrap consensuses and descriptors. (See 'fallbackdir') 4) The list of keys that must sign a vote or a consensus. 5) The list of IP:Orport:Identity that authorities use when sending and receiving votes.

Splitting roles up in this way would better prepare us for an implementation of prop#257 down the road.

#18637 Have OOM handler look at all memory consumption, not just some Core Tor/Tor Tor: unspecified enhancement Mar 25, 2016

Just because our OOM handler doesn't know how to free every kind of memory we allocate, doesn't mean we shouldn't teach it to consider our total allocation when deciding that we're low on memory.

For platforms where malloc() can return NULL, we could have it look at that too.

#18788 Make the copyright license clear for torspec and proposals Core Tor/Tor Tor: unspecified enhancement Apr 11, 2016

Once upon a time, the tor spec files and proposals were in the Tor tarball, so they clearly were covered under Tor's copyright license (3-clause BSD).

But now they're in their own git repository.

I think maybe they technically have no copyright license now?

We should pick one (I vote cc-by) and try to apply it. This plan could become tricky for proposals, because there are a lot of authors on proposals by now.

#18636 Write sub-proposals for each part of prop257: Refactoring authorities. Implement as appropriate. Core Tor/Tor Tor: unspecified project Mar 25, 2016

Proposal 257 outlines a pretty large amount of stuff to do, but each part of it probably needs its own proposal. Let's get cracking on that !

#15940 Make a standard transition plan for killing off a client version Core Tor/Tor Tor: unspecified task May 6, 2015

Parent ticket for transitioning current and future client versions off the tor network with a minimal amount of pain.

#15941 Form a plan for killing off client versions which assume they'll live forever Core Tor/Tor Tor: unspecified task May 6, 2015

From at least 0.2.4 to 0.2.6, tor client versions assume that they will keep on using the network forever. They have no "request to stop" code or other mechanisms that prevent them becoming a drain on the network.

It would help to plan their transition out at some point, so we can work out what to do to make version obsolescence in future.

See #15233 for killing off 0.2.2 and 0.2.3

#20835 Refactor choose_good_entry_server so it is (almost) never used Core Tor/Tor Tor: unspecified task Nov 29, 2016

From my prop271 branch:

 * XXXX prop271 this function is used in four ways: picking out guards for
 *   the old (pre-prop271) guard algorithm; picking out guards for circuits;
 *   picking out guards for testing circuits on non-bridgees;
 *   picking out entries when entry guards are disabled.  These options
 *   should be disentangled.

#21509 Fuzz v3 hidden services Core Tor/Tor Tor: unspecified task Feb 19, 2017

If we want the fuzzer to effectively fuzz v3 hidden services, we need to:

  • fuzz GET requests: #21476
  • fuzz POST requests: #21478
  • add v3 GET and POST requests to the fuzzing corpus
  • add tokens from v3 GET and POST requests as new fuzzing token lists
  • disable the encrypted connection check when fuzzing (we should do this for v2 services as well)
  • create a v3 descriptor fuzzer
  • add v3 descriptor examples to the fuzzing corpus
  • add tokens from v3 descriptors as a new fuzzing token list

#16579 (Sandbox) Caught a bad syscall attempt (syscall socket) Core Tor/Tor Tor: unspecified defect Jul 14, 2015

I'm running tor on Gentoo Hardened. The bug exists in and tor crashes within seconds of starting, before any clients can connect I think.

Jul 14 13:13:07.000 [notice] Tor (git-df76da0f3bfd6897) opening log file.
Jul 14 13:13:07.182 [notice] Tor v0.2.7.1-alpha (git-df76da0f3bfd6897) running on Linux with Libevent 2.0.22-stable, OpenSSL 1.0.1p and Zlib 1.2.8.
Jul 14 13:13:07.182 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
Jul 14 13:13:07.182 [notice] This version is not a stable Tor release. Expect more bugs than usual.
Jul 14 13:13:07.182 [notice] Read configuration file "/etc/tor/torrc".
Jul 14 13:13:07.187 [notice] Opening Socks listener on
Jul 14 13:13:07.187 [notice] Opening Socks listener on
Jul 14 13:13:07.187 [notice] Opening Socks listener on
Jul 14 13:13:07.187 [notice] Opening Control listener on
Jul 14 13:13:07.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
Jul 14 13:13:07.000 [notice] Parsing GEOIP IPv6 file /usr/share/tor/geoip6.
Jul 14 13:13:07.000 [notice] Bootstrapped 0%: Starting

============================================================ T= 1436875987
(Sandbox) Caught a bad syscall attempt (syscall socket)
$ uname -r

This bug has been reported downstream: https://bugs.gentoo.org/show_bug.cgi?id=550302. It occurs with the following torrc:

# Minimal torrc so tor will work out of the box
User tor
PIDFile /var/run/tor/tor.pid
Log notice syslog
Log notice file /var/log/tor/log
DataDirectory /var/lib/tor/data
SandBox 1

SocksPort 9050
SocksPort 9056 IsolateDestAddr IsolateDestPort
SocksPort 9055

ControlPort 9015
CookieAuthentication 1

By commenting out "Sandbox 1" or unsetting it, tor will obviously run without crashing.

#18308 Use a better pattern for "create mutex if not already initialized" Core Tor/Tor Tor: unspecified defect Feb 12, 2016

Tor relies on double checked locking for various threading initializations. Double checked locking is not guaranteed to work.

For Posix: 4.11, Memory Synchronization: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html

Applications shall ensure that access to any memory location by more than one thread of control (threads or processes) is restricted such that no thread of control can read or modify a memory location while another thread of control may be modifying it.

Race conditions: compat_pthreads.c:threads_initialized


Mutex static initialization is supported by pthreads via PTHREAD_MUTEX_INITIALIZER.

#18321 Exclude our own vote from the consensus if we think our own vote is invalid Core Tor/Tor Tor: unspecified defect Feb 16, 2016

We're creating a vote that is invalid, but try to make a consensus anyway like nothing's wrong. Then we fail doing that as described above.

#19329 Integrate callgraph complexity measures into our regular process Core Tor/Tor Tor: unspecified defect Jun 7, 2016

Unless we track the size of the largest cycles in our code, big cycles may return

#21474 Fix make test-fuzz-corpora warnings Core Tor/Tor Tor: unspecified defect Feb 15, 2017

The following bug warnings should probably be protocol warnings, or be caught earlier:

Running tests for consensus
Feb 16 02:17:26.012 [warn] tor_timegm: Bug: Out-of-range argument to tor_timegm (on Tor d633c4757c1392fb)
Feb 16 02:17:30.133 [warn] sr_parse_commit: Bug: SR: Commit algorithm "sha6-256" is not recognized. (on Tor d633c4757c1392fb)
Feb 16 02:17:34.625 [warn] commit_decode: Bug: SR: Commit from authority 20EE989200EF98A75102B461DF62F01B2932C0D6 decoded length doesn't match the expected length (36 vs 40). (on Tor d633c4757c1392fb)
Feb 16 02:17:40.758 [warn] commit_decode: Bug: SR: Commit from authority B0F141F4B8CCBCC328572C71E5590BBA19775594 can't be decoded. (on Tor d633c4757c1392fb)
Running tests for descriptor
Feb 16 02:18:08.780 [warn] tor_timegm: Bug: Out-of-range argument to tor_timegm (on Tor d633c4757c1392fb)
Running tests for extrainfo
Feb 16 02:18:18.548 [warn] tor_timegm: Bug: Out-of-range argument to tor_timegm (on Tor d633c4757c1392fb)

I'm not sure whether we need this in 030, but it would be nice to fix them eventually.

#22264 Remove old cached_dir_t code Core Tor/Tor Tor: unspecified defect May 15, 2017

I'm pretty sure that with the completion of prop 278, we no longer use the old cached_dir_t code for anything at all. Let's rip it out!

#22351 Should bridge lines in the state file use unlisted_since? Core Tor/Tor Tor: unspecified defect May 23, 2017

I have a bridge in my recent Tor (post prop#271), and my state file now says:

Guard in=bridges rsa_id=C7BE8154678E7537CCAC60B097D51A8A7EF8BCDF bridge_addr= sampled_on=2017-05-04T10:39:09 sampled_by= unlisted_since=2017-05-11T05:47:41 listed=0 confirmed_on=2017-05-02T01:15:03 confirmed_idx=0 pb_use_attempts=1.000000 pb_use_successes=1.000000 pb_circ_attempts=11.000000 pb_circ_successes=11.000000 pb_successful_circuits_closed=11.000000

The unlisted_since and listed=0 are not surprising, since bridges will never be listed, right? Does that make my Tor do anything I shouldn't want it to do, like throw out the bridge line sooner than I'd want? I think no, because hey if it's in torrc it'll go back in, but maybe throwing out the path bias info early was not what we expect?

#27245 Don't store (micro)descriptor text on the heap so much. Core Tor/Tor Tor: unspecified defect Aug 21, 2018

We could use less RAM for our (micro)descriptor text if we kept the .new file mmapped, so that we didn't need to use the heap to hold them.

#28481 Tor's startup time is getting slower on Android Core Tor/Tor Tor: unspecified defect Nov 16, 2018

When upgrading Briar's Tor binaries from to, we noticed a difference in Tor's startup time on older Android phones.

Measuring the startup time of several recent Tor versions revealed an interesting pattern. The time that elapses between starting the Tor process and the creation of the authentication cookie file hasn't changed across versions, but the time between the creation of the cookie file and the response to the AUTHENTICATE command has changed substantially. (Briar sends the AUTHENTICATE command as soon as the cookie file's created.)

I measured five runs of each version on a Motorola Moto G 4G running Android 5.1. Here are the min and max times in seconds for each version:

Tor version Min Max

The min and max have both increased substantially since 0.2.9, and the distribution has widened. This is having a noticeable impact on how long it takes for Briar to connect to contacts when the app's started.

I'll repeat these experiments on Linux x64 to see whether this is Android-specific.

#29830 Use UndefinedBehaviorSanitizer when the UBSan configure checks pass, rather than the ASan configure checks Core Tor/Tor Tor: 0.4.1.x-final defect Mar 20, 2019

configure: stop using UBSan when the compiler only supports ASan When activating the undefined behaviour sanitiser (UBSan), configure.ac checked the address sanitiser (ASan) variables, instead of the UBSan variables. Fixes bug (this one); bugfix on

#29898 How can we automatically add #else and #endif comments? Core Tor/Tor Tor: 0.4.1.x-final defect Mar 26, 2019

In 0.3.5? we ran a script to automatically add comments to #else and #endif blocks. These comments help us work out how these macros are nested.

But since then, we've added new #else and #endif without the comments.

Should we run the script again in 0.4.1? Should we run it before we branch off each new maint branch? Should we automatically run it before we commit or merge?

I hope nickm has some good feedback on this idea.

#30455 Does "make test-network-all" test every network twice? Core Tor/Tor Tor: 0.4.1.x-final defect May 9, 2019

It appears that in fb32c522320430f, we added a second call to test-network.sh inside our test-network-all loop. Now the code looks like this:

	for f in $$flavors; do \
		$(SHELL) $(top_srcdir)/test-driver --test-name $$f --log-file $(TEST_NETWORK_ALL_LOG_DIR)/$$f.log --trs-file $(TEST_NETWORK_ALL_LOG_DIR)/$$f.trs $(TEST_NETWORK_ALL_DRIVER_FLAGS) $(top_srcdir)/src/test/test-network.sh --flavor $$f $(TEST_NETWORK_FLAGS); \
		$(top_srcdir)/src/test/test-network.sh $(TEST_NETWORK_WARNING_FLAGS); \
	done; \

I might be wrong, but it looks to me like we're calling test-network.sh twice in each loop: once through test-driver, and once directly.

I'm not going to work on this till teor is back, though, since there are dragons here that I do not understand.

#17295 Route-selection and guard-selection logic completely replaced Core Tor/Tor Tor: unspecified enhancement Oct 7, 2015

By Nov 2016, we have a deliverable to get our route selection much more right than today, and to have it very tested. We should get this done significantly earlier.

#20719 prop271 -- make parameters configurable Core Tor/Tor Tor: unspecified enhancement Nov 18, 2016

#20931 [prop271] Generate GUARD controller events Core Tor/Tor Tor: unspecified enhancement Dec 8, 2016

#28248 Add comments around rust compilation flags Core Tor/Tor Tor: unspecified enhancement Oct 30, 2018

In particular, we should make sure that all the new and changed items in https://github.com/torproject/tor/pull/381 have explanatory comments.

#22962 Clarify the security severity of issues that make denial of service easier Core Tor/Tor Tor: unspecified task Jul 18, 2017


In #22948, we discovered that the relay integrity digest was easier to guess than it should be. This makes the following classes of attacks easier:

  • sending bandwidth and guessing the integrity digest, and
  • modifying cells and manipulating the integrity digest.

#449 dns failures prevent legitimate options being set Core Tor/Tor Tor: unspecified defect Jun 9, 2007

Outright hostname lookup failures for previously configured hidden services prevent other options being set while DNS is down.

For example, I configure a hidden service redirecting to google.com while DNS is working. DNS subsequently stops working, e.g. nameserver becomes completely unreachable. If I then attempt to set a config option using the controller, it will not get set as long as tor cannot resolve the hidden service name.

Rejection of hidden service configurations (and hence any subsequent or unrelated config change) made while tor is running needs to be more tolerant of lookup failures.

The following attempts to validate the hidden service config currently in use (and previously validated when DNS was working). If the validation fails, it must be because DNS is down, so the existing config is retained. If the user was attempting to add a new hidden service config, then it doesn't get added.

Index: src/or/config.c
--- src/or/config.c     (revision 10545)
+++ src/or/config.c     (working copy)
@@ -963,10 +963,15 @@

-  if (running_tor && rend_config_services(options, 0)<0) {
-    log_warn(LD_BUG,
-       "Previously validated hidden services line could not be added!");
-    return -1;
+  if (running_tor && rend_config_services(options, 1)<0) {
+    log_warn(LD_CONFIG,
+       "Previously validated hidden services line no longer valid! Retaining existing hidden services config if there is one.");
+  }else{
+    if (rend_config_services(options, 0)<0){
+        log_warn(LD_BUG,
+           "Previously validated hidden services line could not be added!");
+        return -1;
+    }

   if (running_tor) {
@@ -2920,9 +2925,10 @@

   if (rend_config_services(options, 1) < 0)
     REJECT("Failed to configure rendezvous options. See logs for details.");
   if (parse_virtual_addr_network(options->VirtualAddrNetwork, 1, NULL)<0)
     return -1;

[Automatically added by flyspray2trac: Operating System: All]

#21454 tor_version_compare and version spec comparison order are inconsistent Core Tor/Tor Tor: unspecified defect Feb 14, 2017

Similar to #21449, when we compare versions, we compare the status before the patchlevel, and then compare status tag and SCM information.

But the spec says:

1. The Old Way
We compare the elements in order (major, minor, micro, status, patchlevel, cvs)
2. The New Way
All versions should be distinguishable purely by those four numbers.

The STATUS_TAG is purely informational
If we *do* encounter two versions that differ only by status tag, we compare them lexically

This doesn't matter much at the moment because we don't use patchlevels.

But we should fix this issue, probably by modifying the spec.

Reported by arma.

#27530 Configure: Use AC_TRY_RUN() to check that --enable-gcc-hardening works Core Tor/Tor Tor: 0.4.1.x-final defect Sep 7, 2018

Split off #27460 Comment 3:

maybe in 0.3.5 we should change the implementation of gcc-hardening so that it does an AC_TRY_RUN() to see whether it can use these compiler flags safely. That could be another ticket, though.

When we merge to 0.3.5, we should also revert #27460.

#28453 Create a EndOfLifeTor.md document Core Tor/Tor Tor: 0.4.1.x-final task Nov 15, 2018

We have instructions for releasing tor: https://gitweb.torproject.org/tor.git/tree/doc/HACKING/ReleasingTor.md

But we don't have any instructions for deprecating tor.

#16598 fsync ed25519 master key files before closing them. Core Tor/Tor Tor: unspecified defect Jul 15, 2015

Weasel says this is a good idea, and IMO it can't hurt.

pde (3 matches)

Ticket Summary Component Milestone Type Created
#3777 Should not generate mixed-content warnings if rewriting all http to https HTTPS Everywhere/EFF-HTTPS Everywhere defect Aug 21, 2011

As far as I can tell, Firefox produces mixed-content warnings on an https page that references resources (images, scripts, etc) via http, even if HTTPS Everywhere can rewrite all of those http URLs to use https. (HTTPS Everywhere does rewrite resource requests, right?)

Ideally, if HTTPS Everywhere successfully rewrites every http request from a page to an https request, the page should not generate a mixed content warning. (Though I'd still like to see some indication that the page was only secure due to HTTPS Everywhere, so I know to report the insecure resources to the site owner.)

#4278 MSDN navigation breakage (due to Origin: header omission?) HTTPS Everywhere/EFF-HTTPS Everywhere defect Oct 20, 2011

Reported here: https://bugzilla.mozilla.org/show_bug.cgi?id=694611

Test case:

Clicking on the fold-out tabs on the left of this page produces no results:


#6276 Hiding the context menu button breaks the Tools->HTTPS Everywhere menu HTTPS Everywhere/EFF-HTTPS Everywhere defect Jul 2, 2012

When you drag the httpse icon from the urlbar to 'menu_bar.view.toolbars.customize' window you lose the 'menu_bar.tools.https_everywhere' drop down menu content for httpse, though the menu item itself is still there. At that point, the only way to configure httpse is via 'about:addons'. Or of course to restore the icon to the urlbar.

Seems to me the drop down menu content should remain regardless of where the icon is, or is not.

FF 10.0.3 ESR HTTPS-E v2.1

1 2
Note: See TracReports for help on using and creating reports.