Vulnerability Note VU#350089

IBM Notes and Domino on x86 Linux specify an executable stack

Original Release date: 22 Apr 2014 | Last revised: 22 Apr 2014

Overview

IBM Notes and Domino on x86 Linux are incorrectly built requesting an executable stack. This can make it easier for attackers to exploit vulnerabilities in Notes, Domino, and any of the child processes that they may spawn.

Description

The build environment for the x86 Linux versions of IBM Notes and Domino incorrectly specified the "-z execstack" flag to gcc. This means that both Notes and Domino are given the READ_IMPLIES_EXEC personality, which marks memory such as the stack, heap, and data sections as executable. This personality is also inherited by child processes, such as the one that does parsing with the Oracle Outside In library, which is used to generate attachment previews in Notes, as well as to perform full-text indexing in Domino. See the CERT/CC Blog entry Feeling Insecure? Blame Your Parent! for more details.

Impact

Because Notes, Domino, and their child processes are not protected by NX on the x86 Linux platform, vulnerabilities in either of these products are easier to exploit.

Solution

Apply an update

This issue is addressed in IBM Domino and Notes 9.0.1 Fix Pack 1. See the IBM Security Bulletin for more details. If you cannot install the update, please consider the following workaround:

Enable NX for Notes and Domino

The executable stack specifier in the ELF header can be stripped by using the execstack utility. To verify the current state of Notes and Domino with respect to whether they request an executable stack, the checksec.sh script can be used. For example, the following indicates that Domino uses an executable stack:

$ ./checksec.sh --file /opt/ibm/domino/notes/latest/linux/server
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH      FILE
Partial RELRO   No canary found   NX disabled   No PIE          No RPATH   No RUNPATH   /opt/ibm/domino/notes/latest/linux/server

Note that the NX column indicates NX disabled. To correct this situation, run execstack to clear the executable stack flag:

sudo execstack -c /opt/ibm/domino/notes/latest/linux/server

Alternatively, the readelf utility can also be used to check whether the stack is executable:

 readelf -a /opt/ibm/domino/notes/latest/linux/server | grep GNU_STACK
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x4

Note the presence of RWE in the permissions column. This indicates that the stack is Readable, Writable, and Executable. A properly-configured stack will only have the RW flags.

To perform the same checks and changes for IBM Notes, use the /opt/ibm/notes/lnotes executable instead.

Vendor Information (Learn More)

VendorStatusDate NotifiedDate Updated
IBM CorporationAffected10 Feb 201422 Apr 2014
If you are a vendor and your product is affected, let us know.

CVSS Metrics (Learn More)

Group Score Vector
Base 5.0 AV:N/AC:L/Au:N/C:P/I:N/A:N
Temporal 3.9 E:POC/RL:OF/RC:C
Environmental 2.9 CDP:ND/TD:M/CR:ND/IR:ND/AR:ND

References

Credit

This vulnerability was reported by Will Dormann of the CERT/CC.

This document was written by Will Dormann.

Other Information

  • CVE IDs: CVE-2014-0892
  • Date Public: 18 Apr 2014
  • Date First Published: 22 Apr 2014
  • Date Last Updated: 22 Apr 2014
  • Document Revision: 13

Feedback

If you have feedback, comments, or additional information about this vulnerability, please send us email.