Repository navigation
hardening: turn off sshd compression - #39
Conversation
99-hardening.conf left Compression at its default, which in OpenSSH is zlib after login. It buys nothing on these links, and OpenSSH before 10.6 has two decompression bugs behind it (CVE-2026-106582, CVE-2026-106585). Ubuntu 24.04's 9.6p1 has the fixes backported; Debian 13's 10.0p1 does not, and Debian has marked both minor with no backport planned. Set Compression no on every box the hardening role manages, so a logged-in peer cannot reach the zlib code at all. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude reviewThe change is one line: No issues found. claude-sonnet-5-5 at high effort · requested by TakGN · re-run with |
99-hardening.confleft sshd'sCompressionat its default, which in OpenSSH means zlib after login. It buys nothing on these links, and OpenSSH before 10.6 has two decompression bugs behind it:Ubuntu 24.04's 9.6p1 has both fixes backported. Debian 13's 10.0p1 does not, and Debian has marked both minor with no backport planned. This adds
Compression nonext to the other sshd settings, so on every box the hardening role manages, a logged-in peer cannot reach the zlib code at all.What else this affects: nothing in the repo asks for SSH compression.
ansible.cfg'sssh_args,scripts/and CI don't pass-CorCompression, so Ansible,kubectl-tunnel.shand CI's runs are unchanged.Rollout: through
site.ymlfrom CI, one box at a time (production_rollout). The task already validates the file withsshd -tbefore writing it, and only reloads sshd, so established sessions stay up. The existing post-check then logs in afresh before the run moves on.Checks:
ansible-playbook --syntax-checkonsite.ymlandcve.yml,yamllint ., andansible-lint(production profile, 0 failures, 0 warnings).🤖 Generated with Claude Code