Vigil@nce: Debian, denial of service of openssh
September 2008 by Vigil@nce
A local attacker can send signals to the openssh Debian version in order to create a denial of service.
Consequences: denial of service of service
Provenance: user shell
Means of attack: 1 attack
Ability of attacker: technician (2/4)
Confidence: confirmed by the editor (5/5)
Diffusion of the vulnerable configuration: high (3/3)
Creation date: 17/09/2008
Debian Linux [confidential versions]
The grace_alarm_handler() signal handler of OpenSSH is called when the user connected to the daemon, but did not entered his login before the expiration of a timeout. This function calls sigdie() of log.c containing: #ifdef DO_LOG_SAFE_IN_SIGHAND [...] do_log(SYSLOG_LEVEL_FATAL, fmt, args); [...] #endif The DO_LOG_SAFE_IN_SIGHAND define is only defined on OpenBSD, which provides a async-signal-safe version of syslog() (which means that syslog() can be called form a signal handler).
The Debian openssh package contains the same code, but without the define. As on Debian Linux, the syslog() function is not async-signal-safe, receiving a signal can block the process.
A local attacker can therefore send several signals to the openssh daemon in order to lock its processes, to progressively create a denial of service.
Identifiers: 498678, CVE-2008-4109, DSA-1638-1, VIGILANCE-VUL-8114