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 UpdatedIBM CorporationAffected10 Feb 201422 Apr 2014If 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

http://www-01.ibm.com/support/docview.wss?uid=swg21670264
https://www.cert.org/blogs/certcc/post.cfm?EntryID=190
http://linux.die.net/man/8/execstack
http://www.trapkit.de/tools/checksec.html
http://linux.die.net/man/1/readelf

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

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

Leave a Reply