zulip/scripts/lib
Alex Vandiver a5496f4098 CVE-2021-43799: Set a secure Erlang cookie.
The RabbitMQ docs state ([1]):

    RabbitMQ nodes and CLI tools (e.g. rabbitmqctl) use a cookie to
    determine whether they are allowed to communicate with each
    other. [...] The cookie is just a string of alphanumeric
    characters up to 255 characters in size. It is usually stored in a
    local file.

...and goes on to state (emphasis ours):

    If the file does not exist, Erlang VM will try to create one with
    a randomly generated value when the RabbitMQ server starts
    up. Using such generated cookie files are **appropriate in
    development environments only.**

The auto-generated cookie does not use cryptographic sources of
randomness, and generates 20 characters of `[A-Z]`.  Because of a
semi-predictable seed, the entropy of this password is thus less than
the idealized 26^20 = 94 bits of entropy; in actuality, it is 36 bits
of entropy, or potentially as low as 20 if the performance of the
server is known.

These sizes are well within the scope of remote brute-force attacks.

On provision, install, and upgrade, replace the default insecure
20-character Erlang cookie with a cryptographically secure
255-character string (the max length allowed).

[1] https://www.rabbitmq.com/clustering.html#erlang-cookie
2022-01-25 02:13:53 +00:00
..
__init__.py
build-pgroonga scripts: Use curl -f (--fail). 2021-07-13 16:47:49 -07:00
check_rabbitmq_queue.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
clean_emoji_cache.py python: Reformat with Black, except quotes. 2021-02-12 13:11:19 -08:00
clean_node_cache.py python: Reformat with Black, except quotes. 2021-02-12 13:11:19 -08:00
clean_unused_caches.py clean_unused_caches: Allow the main function to accept `Namespace` args. 2021-06-12 07:28:16 -07:00
clean_venv_cache.py requirements: Remove Thumbor. 2021-05-06 20:07:32 -07:00
clean_yarn_cache.py zulip_tools: Rename may_be_perform_purging to maybe_perform_purging. 2022-01-12 13:21:35 -08:00
create-production-venv python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
email-mirror-postfix python: Remove default "utf8" argument for encode(), decode(). 2021-08-02 15:53:52 -07:00
fix-standalone-certbot puppet: Fix standalone certbot configurations. 2022-01-24 12:13:44 -08:00
hash_reqs.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
install puppet: Always set the RabbitMQ nodename to zulip@localhost. 2022-01-25 01:48:02 +00:00
install-node install-node: Upgrade Node.js from 16.13.1 to 16.13.2. 2022-01-24 15:55:38 -08:00
install-yarn install-yarn: Use test -ef in case /srv is a symlink. 2021-12-30 13:42:07 -08:00
node_cache.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
puppet_cache.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
pythonrc.py python: Reformat with Black, except quotes. 2021-02-12 13:11:19 -08:00
queue_workers.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
setup-apt-repo lint: Fix typos found by codespell. 2021-10-19 16:51:13 -07:00
setup-yum-repo provision: Add support for Fedora 34. 2021-07-20 12:10:41 -07:00
setup_path.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
setup_venv.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
sharding.py python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
unpack-zulip python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
upgrade-zulip python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
upgrade-zulip-from-git upgrade-zulip-from-git: Fix upstream URL for existing deploys. 2022-01-18 21:10:38 -08:00
upgrade-zulip-stage-2 CVE-2021-43799: Set a secure Erlang cookie. 2022-01-25 02:13:53 +00:00
warn-rabbitmq-nodename-change puppet: Always set the RabbitMQ nodename to zulip@localhost. 2022-01-25 01:48:02 +00:00
zulip_tools.py CVE-2021-43799: During upgrades, restart rabbitmq if necessary. 2022-01-25 01:51:56 +00:00