CVE:CVE-2003-1208
CNNVD:CNNVD-200412-010
Oracle是一款大型数据库软件。
Oracle在处理部分参数和函数时缺少充分缓冲区边界检查，远程攻击者可以利用这个漏洞进行缓冲区溢出攻击，可能以数据库进程权限执行任意指令。
Oralce存在多个缓冲区溢出，具体如下：
1、TIME_ZONE参数指定默认时区置换，TIME_ZONE仅是一个会话参数，而不是一个初始化参数，一个类似的合法请求为：
ALTER SESSION SET TIME_ZONE = '-5:00';
TIME_ZONE参数由于缺少充分缓冲区边界检查，提交包含超长字符串的请求可导致触发缓冲区溢出，如：
ALTER SESSION SET TIME_ZONE = '<long string here>'; SELECT
CURRENT_TIMESTAMP， LOCALTIMESTAMP FROM DUAL;
默认情况下，任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。
2、NUMTOYMINTERVAL是用于转换N为一个INTERVAL YEAR TO MONTH，n可以为数字或数字表达式，char_expr可以为CHAR， VARCHAR2， NCHAR， or NVARCHAR2数据类型，类似合法请求为：
SELECT last_name， hire_date， salary， SUM(salary)
 OVER (ORDER BY hire_date
 RANGE NUMTOYMINTERVAL(1，'year') PRECEDING) AS t_sal
 FROM employees;
n = 1
char_expr = year
NUMTOYMINTERVAL函数由于对参数缺少充分缓冲区边界检查，提交包含超长字符串的请求可导致触发缓冲区溢出，如：
SELECT last_name， hire_date， salary， SUM(salary)
 OVER (ORDER BY hire_date
 RANGE NUMTOYMINTERVAL(1，'<long string here>') PRECEDING) AS t_sal
 FROM employees;
默认情况下，任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。
3、NUMTODSINTERVAL是用于转换n为INTERVAL DAY TO SECOND的函数，n可以为数字或数字表达式，char_expr可以为CHAR， VARCHAR2， NCHAR， or NVARCHAR2数据类型，类似合法请求为：
SELECT manager_id， last_name， hire_date，
   COUNT(*) OVER (PARTITION BY manager_id ORDER BY hire_date
   RANGE NUMTODSINTERVAL(100， 'day') PRECEDING) AS t_count
   FROM employees;
n = 100
char_expr = day
NUMTODSINTERVAL函数由于对参数缺少充分边界缓冲区检查，提交包含超长字符串的请求可导致触发缓冲区溢出，如：
SELECT empno， ename， hiredate， COUNT(*) OVER (PARTITION BY empno ORDER BY
hiredate RANGE NUMTODSINTERVAL(100， '<long string here>') PRECEDING) AS
t_count FROM emp;
默认情况下，任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。
4、FROM_TZ函数用于转换时间戳，类似请求如下：
SELECT FROM_TZ(TIMESTAMP '2003-09-8 08:00:00'， '12:00') FROM DUAL;
此语法返回如下值：
which would return the values
FROM_TZ函数对TZD参数缺少充分边界缓冲区检查，提交包含超长字符串的请求可导致触发缓冲区溢出，如：
SELECT FROM_TZ(TIMESTAMP '2000-03-28 08:00:00'，'long string here') FROM
DUAL;
默认情况下，任意用户可以提交此请求。
solution:Upgrade oracle oracle9i to a higher version than enterprise_9.0.1,enterprise_9.2.0,enterprise_9.2.0.1,enterprise_9.2.0.2,personal_9.0.1,personal_9.2,personal_9.2.0.1,personal_9.2.0.2,standard_9.0,standard_9.0.1,standard_9.0.1.2,standard_9.0.1.3,standard_9.0.1.4,standard_9.0.2,standard_9.2,standard_9.2.0.1,standard_9.2.0.2,and avoid the version enterprise_9.0.1,enterprise_9.2.0,enterprise_9.2.0.1,enterprise_9.2.0.2,personal_9.0.1,personal_9.2,personal_9.2.0.1,personal_9.2.0.2,standard_9.0,standard_9.0.1,standard_9.0.1.2,standard_9.0.1.3,standard_9.0.1.4,standard_9.0.2,standard_9.2,standard_9.2.0.1,standard_9.2.0.2