openSUSE Security Update : zsh (openSUSE-2018-1094)

High Nessus Plugin ID 117898


The remote openSUSE host is missing a security update.


This update for zsh to version 5.6.2 fixes the following issues :

These security issues were fixed :

- CVE-2018-0502: The beginning of a #! script file was mishandled, potentially leading to an execve call to a program named on the second line (bsc#1107296)

- CVE-2018-13259: Shebang lines exceeding 64 characters were truncated, potentially leading to an execve call to a program name that is a substring of the intended one (bsc#1107294)

- CVE-2018-1100: Prevent stack-based buffer overflow in the utils.c:checkmailpath function that allowed local attackers to execute arbitrary code in the context of another user (bsc#1089030).

- CVE-2018-1071: Prevent stack-based buffer overflow in the exec.c:hashcmd() function that allowed local attackers to cause a denial of service (bsc#1084656).

- CVE-2018-1083: Prevent buffer overflow in the shell autocomplete functionality that allowed local unprivileged users to create a specially crafted directory path which lead to code execution in the context of the user who tries to use autocomplete to traverse the mentioned path (bsc#1087026).

- Disallow evaluation of the initial values of integer variables imported from the environment

These non-security issues were fixed :

- Fixed that the signal SIGWINCH was being ignored when zsh is not in the foreground.

- Fixed two regressions with pipelines getting backgrounded and emitting the signal SIGTTOU

- The effect of the NO_INTERACTIVE_COMMENTS option extends into $(...) and `...` command substitutions when used on the command line.

- The 'exec' and 'command' precommand modifiers, and options to them, are now parsed after parameter expansion.

- Functions executed by ZLE widgets no longer have their standard input closed, but redirected from /dev/null instead.

- There is an option WARN_NESTED_VAR, a companion to the existing WARN_CREATE_GLOBAL that causes a warning if a function updates a variable from an enclosing scope without using typeset -g.

- zmodload now has an option -s to be silent on a failure to find a module but still print other errors.

- Fix typo in chflags completion

- Fixed invalid git commands completion

- VCS info system: vcs_info git: Avoid a fork.

- Fix handling of 'printf -' and 'printf --'

- fix broken completion for filterdiff (boo#1019130)

- Unicode9 support, this needs support from your terminal to work correctly.

- The new word modifier ':P' computes the physical path of the argument.

- The output of 'typeset -p' uses 'export' commands or the '-g' option for parameters that are not local to the current scope.

- vi-repeat-change can repeat user-defined widgets if the widget calls zle -f vichange.

- The parameter $registers now makes the contents of vi register buffers available to user-defined widgets.

- New vi-up-case and vi-down-case builtin widgets bound to gU/gu (or U/u in visual mode) for doing case conversion.

- A new select-word-match function provides vim-style text objects with configurable word boundaries using the existing match-words-by-style mechanism.

- Support for the conditional expression [[ -v var ]] to test if a variable is set for compatibility with other shells.

- The print and printf builtins have a new option -v to assign the output to a variable.

- New x: syntax in completion match specifications make it possible to disable match specifications hardcoded in completion functions.

- Re-add custom zshrc and zshenv to unbreak compatibility with old usage (boo#998858).

- Read /etc/profile as zsh again.

- The new module zsh/param/private can be loaded to allow the shell to define parameters that are private to a function scope (i.e. are not propagated to nested functions called within this function).

- The GLOB_STAR_SHORT option allows the pattern **/* to be shortened to just ** if no / follows. so **.c searches recursively for a file whose name has the suffix '.c'.

- The effect of the WARN_CREATE_GLOBAL option has been significantly extended, so expect it to cause additional warning messages about parameters created globally within function scope.

- The print builtin has new options -x and -X to expand tabs.

- Several new command completions and numerous updates to others.

- Options to 'fc' to segregate internal and shared history.

- All emulations including 'sh' use multibyte by default;
several repairs to multibyte handling.

- ZLE supports 'bracketed paste' mode to avoid interpreting pasted newlines as accept-line. Pastes can be highlighted for visibility and to make it more obvious whether accept-line has occurred.

- Improved (though still not perfect) POSIX compatibility for getopts builtin when POSIX_BUILTINS is set.

- New setopt APPEND_CREATE for POSIX-compatible NO_CLOBBER behavior.

- Completion of date values now displays in a calendar format when the complist module is available.
Controllable by zstyle.

- New parameter UNDO_LIMIT_NO for more control over ZLE undo repeat.

- Several repairs/improvements to the contributed narrow-to-region ZLE function.

- Many changes to child-process and signal handling to eliminate race conditions and avoid deadlocks on descriptor and memory management.

- New builtin sysopen in zsh/system module for detailed control of file descriptor modes.

- Fix a printf regression boo#934175

- Global aliases can be created for syntactic tokens such as command separators (';', '&', '|', '&&', '||'), redirection operators, etc.

- There have been various further improvements to builtin handling with the POSIX_BUILTINS option (off by default) for compatibility with the POSIX standard.

- 'whence -v' is now more informative, and 'whence -S' shows you how a full chain of symbolic links resolves to a command.

- The 'p' parameter flag now allows an argument to be specified as a reference to a variable, e.g.
${(ps.$sep.)foo} to split $foo on a string given by $sep.

- The option FORCE_FLOAT now forces variables, not just constants, to floating point in arithmetic expressions.

- The type of an assignment in arithmetic expressions, e.g. the type seen by the variable res in $(( res = a = b )), is now more logical and C-like.

- The default binding of 'u' in vi command mode has changed to undo multiple changes when invoked repeatedly. '^R' is now bound to redo changes. To revert to toggling of the last edit use: bindkey -a u vi-undo-change

- Compatibility with Vim has been improved for vi editing mode. Most notably, Vim style text objects are supported and the region can be manipulated with vi commands in the same manner as Vim's visual mode.

- Elements of the watch variable may now be patterns.

- The logic for retrying history locking has been improved.

- Fix openSUSE versions in osc completion

- Add back rpm completion file (boo#900424)


Update the affected zsh packages.

See Also

Plugin Details

Severity: High

ID: 117898

File Name: openSUSE-2018-1094.nasl

Version: 1.1

Type: local

Agent: unix

Published: 2018/10/03

Modified: 2018/10/03

Dependencies: 12634

Risk Information

Risk Factor: High


Base Score: 7.2

Vector: CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C


Base Score: 7.8

Vector: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Vulnerability Information

CPE: p-cpe:/a:novell:opensuse:zsh, p-cpe:/a:novell:opensuse:zsh-debuginfo, p-cpe:/a:novell:opensuse:zsh-debugsource, p-cpe:/a:novell:opensuse:zsh-htmldoc, cpe:/o:novell:opensuse:42.3

Required KB Items: Host/local_checks_enabled, Host/SuSE/release, Host/SuSE/rpm-list, Host/cpu

Patch Publication Date: 2018/10/02

Reference Information

CVE: CVE-2018-0502, CVE-2018-1071, CVE-2018-1083, CVE-2018-1100, CVE-2018-13259