Try without this one
This commit is contained in:
@ -1,56 +0,0 @@
|
||||
https://lists.mindrot.org/pipermail/openssh-unix-dev/2024-July/041431.html
|
||||
|
||||
Damien Miller djm at mindrot.org
|
||||
Mon Jul 1 18:21:11 AEST 2024
|
||||
Previous message (by thread): Announce: OpenSSH 9.8 released
|
||||
Next message (by thread): Announce: OpenSSH 9.8 released
|
||||
Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
|
||||
Hi,
|
||||
|
||||
Regarding the race condition fixed in OpenSSH 9.8. A mitigation to
|
||||
prevent exploitation of this bug is to disable the login grace timer
|
||||
by setting LoginGraceTime=0 in sshd_config. This will however make
|
||||
it much easier for an attacker to deny service to sshd.
|
||||
|
||||
Similarly, the much more minor keystroke timing bug can be avoided
|
||||
by disabling the feature using ObscureKeystrokeTiming=0.
|
||||
|
||||
Some users will understandably prefer to patch their OpenSSH rather
|
||||
than upgrade to the newest version, so here are minimal patches for
|
||||
both problems.
|
||||
|
||||
1) Critical race condition in sshd
|
||||
|
||||
2) Minor logic error in ObscureKeystrokeTiming
|
||||
|
||||
--- log.c.orig 2024-07-02 09:05:35.023051000 -0700
|
||||
+++ log.c 2024-07-02 09:05:54.881067000 -0700
|
||||
@@ -451,12 +451,14 @@ sshsigdie(const char *file, const char *func, int line
|
||||
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);
|
||||
}
|
||||
|
||||
--- clientloop.c.orig 2024-07-02 09:06:09.736347000 -0700
|
||||
+++ clientloop.c 2024-07-02 09:06:41.414979000 -0700
|
||||
@@ -608,8 +608,9 @@ obfuscate_keystroke_timing(struct ssh *ssh, struct tim
|
||||
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++;
|
||||
}
|
||||
Reference in New Issue
Block a user