CVE-2002-1115
CVSS5.0
发布时间 :2002-10-04 00:00:00
修订时间 :2016-10-17 22:23:46
NMCOS    

[原文]Mantis 0.17.4a and earlier allows remote attackers to view private bugs by modifying the f_id bug ID parameter to (1) bug_update_advanced_page.php, (2) bug_update_page.php, (3) view_bug_advanced_page.php, or (4) view_bug_page.php.


[CNNVD]Mantis未通过验证可以查看Bug漏洞(CNNVD-200210-012)

        
        Mantis是一款开放源代码基于WEB的漏洞跟踪系统,由PHP编写,MYSQL后台支持。
        Mantis实现上存在漏洞,攻击者可能利用此漏洞访问到他本应该没有权限看到的漏洞。
        Mantis有许多脚本浏览bug数据的时候没有检查用户的权限,远程攻击者可以直接调用这些脚本,并且通过CGI的参数指定bug ID即可浏览所有数据。
        

- CVSS (基础分值)

CVSS分值: 5 [中等(MEDIUM)]
机密性影响: [--]
完整性影响: [--]
可用性影响: [--]
攻击复杂度: [--]
攻击向量: [--]
身份认证: [--]

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

cpe:/a:mantis:mantis:0.17.2
cpe:/a:mantis:mantis:0.17.3
cpe:/a:mantis:mantis:0.17.4
cpe:/a:mantis:mantis:0.17.0
cpe:/a:mantis:mantis:0.17.4a
cpe:/a:mantis:mantis:0.17.1

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

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-1115
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2002-1115
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-200210-012
(官方数据源) CNNVD

- 其它链接及资源

http://mantisbt.sourceforge.net/advisories/2002/2002-06.txt
(UNKNOWN)  CONFIRM  http://mantisbt.sourceforge.net/advisories/2002/2002-06.txt
http://marc.info/?l=bugtraq&m=103013249211164&w=2
(UNKNOWN)  BUGTRAQ  20020823 [Mantis Advisory/2002-06] Private bugs accessible in Mantis
http://www.debian.org/security/2002/dsa-161
(VENDOR_ADVISORY)  DEBIAN  DSA-161
http://www.iss.net/security_center/static/9954.php
(UNKNOWN)  XF  mantis-view-private-bugs(9954)
http://www.securityfocus.com/bid/5563
(UNKNOWN)  BID  5563

- 漏洞信息

Mantis未通过验证可以查看Bug漏洞
中危 访问验证错误
2002-10-04 00:00:00 2005-10-20 00:00:00
远程  
        
        Mantis是一款开放源代码基于WEB的漏洞跟踪系统,由PHP编写,MYSQL后台支持。
        Mantis实现上存在漏洞,攻击者可能利用此漏洞访问到他本应该没有权限看到的漏洞。
        Mantis有许多脚本浏览bug数据的时候没有检查用户的权限,远程攻击者可以直接调用这些脚本,并且通过CGI的参数指定bug ID即可浏览所有数据。
        

- 公告与补丁

        临时解决方法:
        如果您不能立刻安装补丁或者升级,CNNVD建议您采取以下措施以降低威胁:
        diff -u -r mantis-0.17.4a/bug_update_advanced_page.php
        mantis-0.17.5/bug_update_advanced_page.php
        --- mantis-0.17.4a/bug_update_advanced_page.php Mon May 20 03:34:20 2002
        +++ mantis-0.17.5/bug_update_advanced_page.php Fri Aug 23 11:55:52 2002
        @@ -26,6 +26,9 @@
         $result = db_query( $query );
         $row = db_fetch_array( $result );
         extract( $row, EXTR_PREFIX_ALL, "v" );
        +
        + # if bug is private, make sure user can view private bugs
        + access_bug_check( $f_id, $v_view_state );
         $query = "SELECT *
         FROM $g_mantis_bug_text_table
        diff -u -r mantis-0.17.4a/bug_update_page.php mantis-0.17.5/bug_update_page.php
        --- mantis-0.17.4a/bug_update_page.php Mon May 20 03:34:20 2002
        +++ mantis-0.17.5/bug_update_page.php Fri Aug 23 11:56:06 2002
        @@ -27,6 +27,9 @@
         $result = db_query( $query );
         $row = db_fetch_array( $result );
         extract( $row, EXTR_PREFIX_ALL, "v" );
        +
        + # if bug is private, make sure user can view private bugs
        + access_bug_check( $f_id, $v_view_state );
         $query = "SELECT *
         FROM $g_mantis_bug_text_table
        diff -u -r mantis-0.17.4a/core_user_API.php mantis-0.17.5/core_user_API.php
        --- mantis-0.17.4a/core_user_API.php Sun Aug 18 08:57:20 2002
        +++ mantis-0.17.5/core_user_API.php Fri Aug 23 11:52:43 2002
        @@ -577,6 +577,23 @@
         }
         }
         # --------------------
        + # check to see if the current user has access to the specified bug.
        This assumes that the bug exists and
        + # that the user has access to the project (check_bug_exists() and
        project_access_check()).
        + function access_bug_check( $p_bug_id, $p_view_state='' ) {
        + global $g_private_bug_threshold;
        +
        + if ( empty ( $p_view_state ) ) {
        + $t_view_state = get_bug_field( $p_bug_id,
        'view_state' );
        + } else {
        + $t_view_state = (integer)$p_view_state;
        + }
        +
        + # Make sure if the bug is private, the logged in user has
        access to it.
        + if ( ( $t_view_state == PRIVATE ) &&
        !access_level_check_greater_or_equal( $g_private_bug_threshold ) ) {
        + print_header_redirect( 'logout_page.php' );
        + }
        + }
        + # --------------------
         ###########################################################################
         # User Information API
         ###########################################################################
        diff -u -r mantis-0.17.4a/view_bug_advanced_page.php
        mantis-0.17.5/view_bug_advanced_page.php
        --- mantis-0.17.4a/view_bug_advanced_page.php Mon May 20 03:34:21 2002
        +++ mantis-0.17.5/view_bug_advanced_page.php Fri Aug 23 11:56:29 2002
        @@ -22,6 +22,9 @@
         $result = db_query( $query );
         $row = db_fetch_array( $result );
         extract( $row, EXTR_PREFIX_ALL, "v" );
        +
        + # if bug is private, make sure user can view private bugs
        + access_bug_check( $f_id, $v_view_state );
         $query = "SELECT *
         FROM $g_mantis_bug_text_table
        diff -u -r mantis-0.17.4a/view_bug_page.php mantis-0.17.5/view_bug_page.php
        --- mantis-0.17.4a/view_bug_page.php Mon May 20 03:34:21 2002
        +++ mantis-0.17.5/view_bug_page.php Fri Aug 23 11:57:00 2002
        @@ -22,6 +22,9 @@
         $result = db_query( $query );
         $row = db_fetch_array( $result );
         extract( $row, EXTR_PREFIX_ALL, "v" );
        +
        + # if bug is private, make sure user can view private bugs
        + access_bug_check( $f_id, $v_view_state );
         $query = "SELECT *
         FROM $g_mantis_bug_text_table
        厂商补丁:
        Mantis
        ------
        目前厂商已经发布了0.17.5以修复这个安全问题,请到厂商的主页下载:
        
        http://mantisbt.sourceforge.net/download.php3

- 漏洞信息

6206
Mantis bug_update_advanced_page.php f_id Variable Information Disclosure
Remote / Network Access Information Disclosure
Loss of Confidentiality
Exploit Public

- 漏洞描述

Mantis contains a flaw that may lead to an unauthorized information disclosure. This flaw exists because the application does not validate the 'f_id' variable upon submission to the 'bug_update_advanced_page.php' script. With a specially crafted URL request containing a valid bug ID, a remote attacker could view private bugs resulting in a loss of confidentiality.

- 时间线

2002-08-23 Unknow
2002-08-23 Unknow

- 解决方案

Upgrade to version 0.17.5 or higher, as it has been reported to fix this vulnerability. An upgrade is required as there are no known workarounds.

- 相关参考

- 漏洞作者

Unknown or Incomplete

- 漏洞信息

Mantis Unauthorized Bug Viewing Vulnerability
Access Validation Error 5563
Yes No
2002-08-23 12:00:00 2009-07-11 03:56:00
Published in a Mantis security advisory.

- 受影响的程序版本

Mantis Mantis 0.17.4 a
Mantis Mantis 0.17.4
Mantis Mantis 0.17.3
Mantis Mantis 0.17.2
Mantis Mantis 0.17.1
+ Debian Linux 3.0 sparc
+ Debian Linux 3.0 s/390
+ Debian Linux 3.0 ppc
+ Debian Linux 3.0 mipsel
+ Debian Linux 3.0 mips
+ Debian Linux 3.0 m68k
+ Debian Linux 3.0 ia-64
+ Debian Linux 3.0 ia-32
+ Debian Linux 3.0 hppa
+ Debian Linux 3.0 arm
+ Debian Linux 3.0 alpha
+ Debian Linux 3.0
Mantis Mantis 0.17 .0
Mantis Mantis 0.17.5

- 不受影响的程序版本

Mantis Mantis 0.17.5

- 漏洞讨论

Mantis is a web-based bug tracking system. It is written in PHP and back-ended by a MySQL database.

A number of scripts used to view bug data do not check user permissions. Users may directly call these scripts, and specify arbitrary bug IDs through CGI parameters. Details of these bugs will then be displayed to the user.

- 漏洞利用

No exploit is required.

- 解决方案

The vendor has released the following patch for users of mantis 0.17.4a:

diff -u -r mantis-0.17.4a/bug_update_advanced_page.php
mantis-0.17.5/bug_update_advanced_page.php
--- mantis-0.17.4a/bug_update_advanced_page.php Mon May 20 03:34:20 2002
+++ mantis-0.17.5/bug_update_advanced_page.php Fri Aug 23 11:55:52 2002
@@ -26,6 +26,9 @@
$result = db_query( $query );
$row = db_fetch_array( $result );
extract( $row, EXTR_PREFIX_ALL, "v" );
+
+ # if bug is private, make sure user can view private bugs
+ access_bug_check( $f_id, $v_view_state );

$query = "SELECT *
FROM $g_mantis_bug_text_table
diff -u -r mantis-0.17.4a/bug_update_page.php mantis-0.17.5/bug_update_page.php
--- mantis-0.17.4a/bug_update_page.php Mon May 20 03:34:20 2002
+++ mantis-0.17.5/bug_update_page.php Fri Aug 23 11:56:06 2002
@@ -27,6 +27,9 @@
$result = db_query( $query );
$row = db_fetch_array( $result );
extract( $row, EXTR_PREFIX_ALL, "v" );
+
+ # if bug is private, make sure user can view private bugs
+ access_bug_check( $f_id, $v_view_state );

$query = "SELECT *
FROM $g_mantis_bug_text_table
diff -u -r mantis-0.17.4a/core_user_API.php mantis-0.17.5/core_user_API.php
--- mantis-0.17.4a/core_user_API.php Sun Aug 18 08:57:20 2002
+++ mantis-0.17.5/core_user_API.php Fri Aug 23 11:52:43 2002
@@ -577,6 +577,23 @@
}
}
# --------------------
+ # check to see if the current user has access to the specified bug.
This assumes that the bug exists and
+ # that the user has access to the project (check_bug_exists() and
project_access_check()).
+ function access_bug_check( $p_bug_id, $p_view_state='' ) {
+ global $g_private_bug_threshold;
+
+ if ( empty ( $p_view_state ) ) {
+ $t_view_state = get_bug_field( $p_bug_id,
'view_state' );
+ } else {
+ $t_view_state = (integer)$p_view_state;
+ }
+
+ # Make sure if the bug is private, the logged in user has
access to it.
+ if ( ( $t_view_state == PRIVATE ) &&
!access_level_check_greater_or_equal( $g_private_bug_threshold ) ) {
+ print_header_redirect( 'logout_page.php' );
+ }
+ }
+ # --------------------
###########################################################################
# User Information API
###########################################################################
diff -u -r mantis-0.17.4a/view_bug_advanced_page.php
mantis-0.17.5/view_bug_advanced_page.php
--- mantis-0.17.4a/view_bug_advanced_page.php Mon May 20 03:34:21 2002
+++ mantis-0.17.5/view_bug_advanced_page.php Fri Aug 23 11:56:29 2002
@@ -22,6 +22,9 @@
$result = db_query( $query );
$row = db_fetch_array( $result );
extract( $row, EXTR_PREFIX_ALL, "v" );
+
+ # if bug is private, make sure user can view private bugs
+ access_bug_check( $f_id, $v_view_state );

$query = "SELECT *
FROM $g_mantis_bug_text_table
diff -u -r mantis-0.17.4a/view_bug_page.php mantis-0.17.5/view_bug_page.php
--- mantis-0.17.4a/view_bug_page.php Mon May 20 03:34:21 2002
+++ mantis-0.17.5/view_bug_page.php Fri Aug 23 11:57:00 2002
@@ -22,6 +22,9 @@
$result = db_query( $query );
$row = db_fetch_array( $result );
extract( $row, EXTR_PREFIX_ALL, "v" );
+
+ # if bug is private, make sure user can view private bugs
+ access_bug_check( $f_id, $v_view_state );

$query = "SELECT *
FROM $g_mantis_bug_text_table

An updated version is available:


Mantis Mantis 0.17 .0

Mantis Mantis 0.17.1

Mantis Mantis 0.17.2

Mantis Mantis 0.17.3

Mantis Mantis 0.17.4 a

Mantis Mantis 0.17.4

- 相关参考

 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站