Skip to content

Commit

Permalink
openssh: use 9.6p1 by default, patched against CVE-2024-6387
Browse files Browse the repository at this point in the history
  • Loading branch information
osnyx committed Jul 5, 2024
1 parent 323686d commit 628a11a
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 0 deletions.
1 change: 1 addition & 0 deletions nixos/platform/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,7 @@ in {
openssh.enable = fclib.mkPlatform true;
openssh.kbdInteractiveAuthentication = false;
openssh.passwordAuthentication = false;
programs.ssh.package = pkgs.openssh_9_6;

telegraf.enable = mkDefault true;

Expand Down
19 changes: 19 additions & 0 deletions pkgs/openssh/openssh-9.6_p1-CVE-2024-6387.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
https://bugs.gentoo.org/935271
Backport proposed by upstream at https://marc.info/?l=oss-security&m=171982317624594&w=2.
--- a/log.c
+++ b/log.c
@@ -451,12 +451,14 @@ void
sshsigdie(const char *file, const char *func, int line, int showfunc,
LogLevel level, const char *suffix, const char *fmt, ...)
{
+#ifdef SYSLOG_R_SAFE_IN_SIGHAND
va_list args;

va_start(args, fmt);
sshlogv(file, func, line, showfunc, SYSLOG_LEVEL_FATAL,
suffix, fmt, args);
va_end(args);
+#endif
_exit(1);
}

16 changes: 16 additions & 0 deletions pkgs/openssh/openssh-9.6_p1-chaff-logic.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"Minor logic error in ObscureKeystrokeTiming"
https://marc.info/?l=oss-security&m=171982317624594&w=2
--- a/clientloop.c
+++ b/clientloop.c
@@ -608,8 +608,9 @@ obfuscate_keystroke_timing(struct ssh *ssh, struct timespec *timeout,
if (timespeccmp(&now, &chaff_until, >=)) {
/* Stop if there have been no keystrokes for a while */
stop_reason = "chaff time expired";
- } else if (timespeccmp(&now, &next_interval, >=)) {
- /* Otherwise if we were due to send, then send chaff */
+ } else if (timespeccmp(&now, &next_interval, >=) &&
+ !ssh_packet_have_data_to_write(ssh)) {
+ /* If due to send but have no data, then send chaff */
if (send_chaff(ssh))
nchaff++;
}
21 changes: 21 additions & 0 deletions pkgs/overlay.nix
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,27 @@ in {

openldap_2_4 = super.callPackage ./openldap_2_4.nix { };

# fixes critical CVEs, especially CVE-2024-6387
openssh_9_6 = super.openssh.overrideAttrs(old_ssh: rec {
version = "9.6p1";
name = "openssh-${version}";

src = super.fetchurl {
url = "mirror://openbsd/OpenSSH/portable/openssh-${version}.tar.gz";
hash = "sha256-kQIRwHJVqMWtZUORtA7lmABxDdgRndU2LeCThap6d3w=";
};

patches = with builtins;
filter (p: ! (elem (builtins.baseNameOf p)
["CVE-2021-41617-1.patch" "CVE-2021-41617-2.patch"]))
old_ssh.patches
++ [
./openssh/openssh-9.6_p1-CVE-2024-6387.patch
./openssh/openssh-9.6_p1-chaff-logic.patch
];

});

# fixes several CVEs https://www.openssl.org/news/secadv/20230207.txt
inherit (super.callPackages ./openssl { })
openssl_1_1
Expand Down

0 comments on commit 628a11a

Please sign in to comment.