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.