flawopen.com/AI Security/cve-2026-103956-aws-loom-authentication-bypass
CVE-2026-103956: обход аутентификации в AWS Loom
CVE-2026-103956 затрагивала AWS Labs Loom for AWS до версии 1.6.1: если поставщик удостоверений не был настроен, любой сетевой клиент мог получить права супер администратора. Обновитесь до версии 1.7.0 или новее, чтобы закрыть эту и связанные ошибки; версия 1.6.1 уже устраняет этот обход аутентификации.[1], [5]
В здании нет сотрудника на стойке регистрации, но программа считает каждого посетителя главным администратором. Исправление запрещает вход, если поставщик удостоверений не настроен; исключение для локальной разработки требует явного параметра и подключения с того же компьютера.[1], [4]
Ключевые понятия и термины
Поставщик удостоверений (IdP)- Настроенная система аутентификации пользователей Loom. Уязвимое условие возникало, если не был настроен ни Cognito, ни внешний IdP.[1]
Плоскость управления- Уровень API и администрирования интеграций агентов, учетных данных и политик ролей.[1]
Безопасный отказ- Если обязательный сервис удостоверений недоступен, запрос отклоняется, а привилегированная учетная запись по умолчанию не выдается.[4]
Связи со стандартами
Пошаговый сценарий атаки
Поставщик удостоверений не настроен
Уязвимое условие до версии 1.6.1 конкретно: не настроен ни пул пользователей Cognito, ни внешний IdP.[1]
Резервный путь создает привилегированного пользователя
Уязвимый путь get_current_user молча назначал t-admin и g-admins-super, в том числе для неаутентифицированных запросов.[4]
API предоставляет права на плоскость управления
Доступный по сети клиент мог действовать как супер администратор, регистрировать серверы инструментов, читать сохраненные учетные данные интеграций или менять политики IAM ролей управляемых агентов. Это описанное поставщиком последствие, а не доказательство компрометации конкретной установки.[1]
Матрица исправлений по версиям Loom
| Диапазон версий | Обход аутентификации CVE-2026-103956 | Другие проблемы октябрьского бюллетеня AWS | Действие для операторов |
|---|---|---|---|
| <1.6.1 | Уязвима, если не настроены ни Cognito, ни внешний IdP: сетевой клиент мог получить права супер администратора. | CVE-2026-103957 и CVE-2026-103958 — отдельные проблемы; они также исправлены в 1.7.0. | Обновитесь до 1.7.0 или новее. Версия 1.6.1 — минимальное исправление только этого обхода. |
| 1.6.1–<1.7.0 | Исправлено. Без IdP запросы получают 401, кроме случая, когда включён режим локальной разработки и клиент подключается через loopback. | AWS указывает, что две сопутствующие проблемы исправлены в 1.7.0. | Обновитесь до 1.7.0 или новее, чтобы применить весь бюллетень. |
| 1.7.0 или новее | Исправлено. | AWS указывает, что версия 1.7.0 устраняет все три проблемы бюллетеня. | Используйте поддерживаемые версии Loom и форков; проверьте перенос исправлений. |
Анализ первопричины
Если ни пул Cognito, ни внешний поставщик удостоверений не были настроены, резервная ветвь зависимости аутентификации молча назначала t-admin и g-admins-super вместо отказа в запросе. API считала эту резервную личность аутентифицированной, поэтому любой сетевой клиент, достигавший серверной части, мог получить права супер администратора плоскости управления. Исправление действует по принципу запрета по умолчанию; исключение для локальной разработки требует явного включения и loopback-клиента. В записи CVE указаны CWE-306 (отсутствие аутентификации для критической функции) и CWE-1188 (небезопасная инициализация по умолчанию).[1], [4], [7]
Исходный код: Уязвимый vs Защищённый вариант
Уязвимый фрагмент передает описание сопровождающего get_current_user: если не были настроены ни Cognito, ни внешний IdP, путь молча назначал t-admin / g-admins-super. Исправленный вариант обобщает принятое в upstream поведение и не является дословным исходным кодом: локальное исключение требует явного параметра и loopback-клиента; остальные запросы завершаются HTTP 401. Примечание FlawOpen по развёртыванию: В production доверяйте request.client только при такой настройке прокси, которая не позволяет недоверенным пересылаемым заголовкам имитировать loopback. Для исправления этого CVE обновитесь до 1.6.1 или новее, а для полного бюллетеня за октябрь 2026 года — до 1.7.0 или новее. В примере нет эксплойт-запросов и инструкций по получению учетных данных.[4], [1]
# Упрощенная схема затронутого пути get_current_user по описанию сопровождающего
if not cognito_pool and not external_idp:
return User(username="t-admin", groups=["g-admins-super"])
return await authenticate_with_configured_idp(token)
# Отказывайте по умолчанию, если локальное исключение явно не ограничено loopback.
if not cognito_pool and not external_idp:
opted_in = os.getenv("LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEV") == "true"
peer_is_local = request.client is not None and ipaddress.ip_address(
request.client.host
).is_loopback
if opted_in and peer_is_local:
return local_development_user()
raise HTTPException(status_code=401, detail="Identity provider is not configured")
return await authenticate_with_configured_idp(token)
Чек-лист по защите системы для инженеров
- ✓Обновите Loom до версии 1.7.0 или новее; 1.6.1 — первая версия с исправлением
CVE-2026-103956, а 1.7.0 — общая целевая версия из бюллетеня.[1], [2], [3] - ✓Убедитесь, что Cognito или внешний IdP настроен до того, как backend станет доступен не только через loopback.[1]
- ✓Не задавайте
LOOM_ALLOW_UNAUTHENTICATED_LOCAL_DEVв развернутых средах; при локальной разработке проверьте loopback-клиент и отсутствие доступа через недоверенный прокси. Проверка развёртывания FlawOpen: доверяйте признаку loopback только после проверки обработки заголовков прокси.[1], [4] - ✓Анализ FlawOpen: после обновления проверьте обращения и административные изменения за затронутый период. AWS рекомендует заменить настроенные секреты OAuth2-клиентов, а также отозвать и повторно выдать токены доступа, действовавшие в этот период. Если учетные данные роли контейнера были доступны, обновите учетные данные сессии роли IAM и проверьте CloudTrail на предмет неправомерного использования.[1]
- ✓Считайте
CVE-2026-103957иCVE-2026-103958отдельными ошибками, исправленными в 1.7.0; до обновления ограничьтеmcp:writeиa2a:writeкругом доверенных администраторов.[1], [3]
Источники
- Бюллетень безопасности AWS 2026-124-AWS
- Примечания к выпуску AWS Loom 1.6.1
- Примечания к выпуску AWS Loom 1.7.0
- PR #12: исправление с безопасным отказом аутентификации
- Запись NVD CVE-2026-103956
- MITRE CWE-306: отсутствие аутентификации для критической функции
- Запись программы CVE — CVE-2026-103956
- MITRE CWE-1188 — небезопасная инициализация ресурса по умолчанию