search menu icon-carat-right cmu-wordmark

CERT Coordination Center

IBM Notes and Domino on x86 Linux specify an executable stack

Vulnerability Note VU#350089

Original Release Date: 2014-04-22 | Last Revised: 2014-04-22

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

350089
 
Affected   Unknown   Unaffected

IBM Corporation

Notified:  February 10, 2014 Updated:  April 22, 2014

Status

  Affected

Vendor Statement

No statement is currently available from the vendor regarding this vulnerability.

Vendor Information

We are not aware of further vendor information regarding this vulnerability.

Vendor References


CVSS Metrics

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

Acknowledgements

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: 2014-04-18
Date First Published: 2014-04-22
Date Last Updated: 2014-04-22 19:36 UTC
Document Revision: 13

Sponsored by the Department of Homeland Security Office of Cybersecurity and Communications.