CVE-2006-6383 (CNNVD-200612-211)

MEDIUM 有利用代码
中文标题:
PHP session.save_path()函数绕过safe_mode及open_basedir安全限制漏洞
英文标题:
PHP 5.2.0 and 4.4 allows local users to bypass safe_mode and open_basedir restrictions via a malicio...
CVSS分数: 4.6
发布时间: 2006-12-10 20:00:00
漏洞类型: 授权问题
状态: PUBLISHED
数据质量分数: 0.40
数据版本: v4
漏洞描述
中文描述:

PHP是广泛使用的通用目的脚本语言,特别适合于Web开发,可嵌入到HTML中。 PHP在处理会话信息的功能函数实现上存在漏洞,远程攻击者可能利用此漏洞读取敏感信息或向非授权位置写入文件。 可以在PHP的ini_set()中定义用于保存会话路径的session_save_path()函数。在session.save_path中必须要存在用于保存tmp文件的路径,但session.save_path的句法可能为: [/PATH] 或 [N;/PATH] N - 可以是一个串 例如: 1. session_save_path("/DIR/WHERE/YOU/HAVE/ACCESS") 2. session_save_path("5;/DIR/WHERE/YOU/HAVE/ACCESS") 3. session_save_path("/DIR/WHERE/YOU/DONT/HAVE/ACCESS\0;/DIR/WHERE/YOU/HAVE/ACCESS") PHP520 ext/session/session.c中代码: - -1477-1493--- PHP_FUNCTION(session_save_path) { zval **p_name; int ac = ZEND_NUM_ARGS(); char *old; if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) WRONG_PARAM_COUNT; old = estrdup(PS(save_path)); if (ac == 1) { convert_to_string_ex(p_name); zend_alter_ini_entry("session.save_path", sizeof("session.save_path"), \ Z_STRVAL_PP(p_name), Z_STRLEN_PP(p_name), PHP_INI_USER, PHP_INI_STAGE_RUNTIME); } RETVAL_STRING(old, 0); } - -1477-1493--- 值被设置为了hash_memory,但在这之前,safe_mode和open_basedir会检查这个值。如果用户启动了会话的话(如session_start()),PS_OPEN_FUNC(files)函数会检查session.save_path的值。 PHP520 ext/session/mod_files.c中代码: - -242-300--- PS_OPEN_FUNC(files) { ps_files *data; const char *p, *last; const char *argv[3]; int argc = 0; size_t dirdepth = 0 int filemode = 0600; if (*save_path == '\0') { /* if save path is an empty string, determine the temporary dir */ save_path = php_get_temporary_directory(); } /* split up input parameter */ last = save_path; p = strchr(save_path, ';'); while (p) { argv[argc++] = last; last = ++p; p = strchr(p, ';'); if (argc > 1) break; } argv[argc++] = last; if (argc > 1) { errno = 0; dirdepth = (size_t) strtol(argv[0], NULL, 10); if (errno == ERANGE) { php_error(E_WARNING, "The first parameter in session.save_path is invalid"); return FAILURE; } } if (argc > 2) { errno = 0; filemode = strtol(argv[1], NULL, 8); if (errno == ERANGE || filemode < 0 || filemode > 07777) { php_error(E_WARNING, "The second parameter in session.save_path is invalid"); return FAILURE; } } save_path = argv[argc - 1]; data = emalloc(sizeof(*data)); memset(data, 0, sizeof(*data)); data->fd = -1; data->dirdepth = dirdepth; data->filemode = filemode; data->basedir_len = strlen(save_path); data->basedir = estrndup(save_path, data->basedir_len); PS_SET_MOD_DATA(data); return SUCCESS; } - -242-300--- 由于在session.save_path中";"之前有一个空字节,strchr()就无法看到";",因此路径就成了/DIR/WHERE/YOU/DONT/HAVE/ACCESS。

英文描述:

PHP 5.2.0 and 4.4 allows local users to bypass safe_mode and open_basedir restrictions via a malicious path and a null byte before a ";" in a session_save_path argument, followed by an allowed path, which causes a parsing inconsistency in which PHP validates the allowed path but sets session.save_path to the malicious path.

CWE类型:
CWE-20
标签:
local php Maksymilian Arciemowicz OSVDB-33269
受影响产品
厂商 产品 版本 版本范围 平台 CPE
php php 4.4.0 - - cpe:2.3:a:php:php:4.4.0:*:*:*:*:*:*:*
php php 5.2.0 - - cpe:2.3:a:php:php:5.2.0:*:*:*:*:*:*:*
解决方案
中文解决方案:
(暂无数据)
英文解决方案:
(暂无数据)
临时解决方案:
(暂无数据)
参考链接
24022 third-party-advisory
cve.org
访问
OpenPKG-SA-2007.010 vendor-advisory
cve.org
访问
20061208 PHP 5.2.0 session.save_path safe_mode and open_basedir bypass mailing-list
cve.org
访问
24514 third-party-advisory
cve.org
访问
2000 third-party-advisory
cve.org
访问
无标题 x_refsource_CONFIRM
cve.org
访问
MDKSA-2007:038 vendor-advisory
cve.org
访问
20061208 PHP 5.2.0 session.save_path safe_mode and open_basedir bypass third-party-advisory
cve.org
访问
SUSE-SA:2007:020 vendor-advisory
cve.org
访问
21508 vdb-entry
cve.org
访问
ExploitDB EDB-29239 EXPLOIT
exploitdb
访问
Download Exploit EDB-29239 EXPLOIT
exploitdb
访问
CVE Reference: CVE-2006-6383 ADVISORY
cve.org
访问
CVSS评分详情
4.6
MEDIUM
CVSS向量: AV:L/AC:L/Au:N/C:P/I:P/A:P
CVSS版本: 2.0
机密性
PARTIAL
完整性
PARTIAL
可用性
PARTIAL
时间信息
发布时间:
2006-12-10 20:00:00
修改时间:
2024-08-07 20:26:46
创建时间:
2025-11-11 15:32:39
更新时间:
2026-01-26 02:17:09
利用信息
此漏洞有可利用代码!
利用代码数量: 1
利用来源:
未知
数据源详情
数据源 记录ID 版本 提取时间
CVE cve_CVE-2006-6383 2025-11-11 15:17:47 2025-11-11 07:32:39
NVD nvd_CVE-2006-6383 2025-11-11 14:51:52 2025-11-11 07:41:24
CNNVD cnnvd_CNNVD-200612-211 2025-11-11 15:08:54 2025-11-11 07:49:12
EXPLOITDB exploitdb_EDB-29239 2025-11-11 15:05:30 2025-11-11 08:24:49
版本与语言
当前版本: v4
主要语言: EN
支持语言:
EN ZH
其他标识符:
:
:
安全公告
暂无安全公告信息
变更历史
v4 EXPLOITDB
2025-11-11 16:24:49
references_count: 10 → 13; tags_count: 0 → 4; data_sources: ['cnnvd', 'cve', 'nvd'] → ['cnnvd', 'cve', 'exploitdb', 'nvd']
查看详细变更
  • references_count: 10 -> 13
  • tags_count: 0 -> 4
  • data_sources: ['cnnvd', 'cve', 'nvd'] -> ['cnnvd', 'cve', 'exploitdb', 'nvd']
v3 CNNVD
2025-11-11 15:49:12
vulnerability_type: 未提取 → 授权问题; cnnvd_id: 未提取 → CNNVD-200612-211; data_sources: ['cve', 'nvd'] → ['cnnvd', 'cve', 'nvd']
查看详细变更
  • vulnerability_type: 未提取 -> 授权问题
  • cnnvd_id: 未提取 -> CNNVD-200612-211
  • data_sources: ['cve', 'nvd'] -> ['cnnvd', 'cve', 'nvd']
v2 NVD
2025-11-11 15:41:24
cvss_score: 未提取 → 4.6; cvss_vector: NOT_EXTRACTED → AV:L/AC:L/Au:N/C:P/I:P/A:P; cvss_version: NOT_EXTRACTED → 2.0; affected_products_count: 0 → 2; data_sources: ['cve'] → ['cve', 'nvd']
查看详细变更
  • cvss_score: 未提取 -> 4.6
  • cvss_vector: NOT_EXTRACTED -> AV:L/AC:L/Au:N/C:P/I:P/A:P
  • cvss_version: NOT_EXTRACTED -> 2.0
  • affected_products_count: 0 -> 2
  • data_sources: ['cve'] -> ['cve', 'nvd']