Сервер базы данных Oracle содержит функции для использования внутри запросов. Переполнение буфера обнаружено в функции TO_TIMESTAMP_TZ, используемой для преобразования строки во временную метку с часовым поясом. Обычный запрос выглядит следующим образом:
SELECT TO_TIMESTAMP_TZ ('2003-02-016 12:00:00 -8:00', 'YYYY-MM-DD HH:MI:SS
TZH:TZM') FROM DUAL;
Передавая длинную строку символов для второго параметра, нападающий может перезаписать сохраненный адрес возврата в стеке процесса Oracle. Для успешной эксплуатации уязвимости атакующий должен предварительно авторизоваться. Так как функция TO_TIMESTAMP_TZ() выполняется по умолчанию как PUBLIC, то любой пользователь системы может эксплуатировать эту уязвимость. Любой код, снабженный атакующим, будет выполнен с привилегиями учетной записи базы данных. На UNIX/LINUX системах это учетная запись "Oracle", на Windows системах – “Local System”. Также уязвимость позволяет получить полный контроль над базой данных.
Уязвимость обнаружена в Oracle database server Oracle9i Database Release
2, 1.