Security Lab

Переполнение буфера в Oracle 8i TNS Listener

Дата публикации:28.06.2001
Дата изменения:17.10.2006
Всего просмотров:1943
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание:

The Oracle 8i TNS (Transparent Network Substrate) – процесс, ответственный за установление и поддержание удаленной связи с сервисом баз данных Oracle.

Процесс уязвим к переполнению буфера, который позволяет выполнить произвольный код на сервере баз данных с системными правами. Поскольку переполнение происходит до любой идентификации, процесс уязвим независимо от любой защиты применяемой к паролю.

Уязвимость работает на Oracle 8i Standard and Enterprise Editions Version 8.1.5, 8.1.6, 8.1.7 и предыдущих версиях для Windows, Linux, Solaris, AIX,

HP-UX and Tru64 Unix.

Клиентские запросы, адресованные удаленному сервису Oracle обрабатываются процессом TNS. Процесс TNS принимает клиентский запрос, и устанавливает TNS соединение между клиентом и службой. TNS разрешает клиентам и серверам связываться через общий API, независимо от сетевого протокола, используемого на любом конце (TCP/IP, IPX, и т.п.). Процесс TNS должен выполнится, если запрос был установлен отдельным клиентом или базой данных, даже если сетевой протокол остался тот же самый. Администратор процесса использует специфические запросы к daemon, такие как "STATUS",

"PING" и "SERVICES" – возвращают конфигурацию процесса и его подключения. Другие запросы типа TRC_FILE", "SAVE_CONFIG" и

"RELOAD" используются для изменения конфигурации TNS процесса. Переполнение буфера происходит, когда параметры этих запросов содержат большое число данных. Переполнение может быть вызвано одно-пакетной командой соответствующей Net8 протоколу. Клиент посылает Type-1 (NSPTCN) пакет содержащий Net8 заголовок и специальную командную строку, с внедренным произвольным кодом (shell code). Хотя многие команды TNS процесса ограничены доверенными пользователями и требуют наличие пароля, уязвимость все равно может использоваться, эксплуатируя незаверенные команды типа “STATUS”. При этом важно обратить внимание, что идентификация не допускается по умолчанию. Командная строка включает несколько аргументов, таких как SERVICE",

"VERSION", "USER" и "ARGUMENTS". Любой из них может быть переполнен. Переполнение работает как под windows так и под Unix, при параметре в несколько тысяч байтов. Под Windows легче выполнить shellcode, используя SHE (Strunctured Exception Handling). Под UNIX, процесс daemon выполняется с привилегиями пользователя “ORACLE”, соответственно использование уязвимости ограничивается правами администратора базы.

Для устранения проблемы скачайте патч от Oracle.