Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 263

CRLF-инъекция

ПроверилCybersecurity entrepreneur & security researcher

Что такое CRLF-инъекция?

CRLF-инъекцияАтака, внедряющая символы возврата каретки и перевода строки в HTTP-заголовки, журналы и другие текстовые протоколы для подделки новых строк.


CRLF-инъекция эксплуатирует особое значение последовательности CR (0x0D) и LF (0x0A), которая разделяет строки во многих текстовых протоколах. Когда приложение без проверки помещает пользовательский ввод в HTTP-заголовки ответа, журналы, команды SMTP или LDAP-запросы, атакующий может вставить пару CRLF и дополнительные данные, чтобы подделать заголовки, разделить ответ, скрыть журналы или подсунуть команды. Слабость каталогизирована как CWE-93 (неправильная нейтрализация последовательностей CRLF); её специфичный для HTTP-заголовков потомок — CWE-113, охватывающий разделение HTTP-запросов/ответов.

В вебе наиболее опасная разновидность — HTTP response splitting, впервые описанная Амитом Кляйном из Sanctum в статье 2004 года. Поскольку внедрённый CRLF закрывает блок заголовков, атакующий может добавить второй, полностью подконтрольный ему ответ — отравить общие кеши, установить произвольные cookie или внедрить XSS в тело, которое браузер считает доверенным. Ошибка повторяется в стандартных библиотеках: CVE-2019-9740 позволяла последовательностям CRLF в URL, переданном в urllib.request.urlopen Python, внедрять HTTP-заголовки (и даже команды Redis через строку запроса); исправлена в Python 2.7.17 и 3.5.10/3.6.10/3.7.4. Защита — отказ принимать или процентное кодирование CR/LF в любом вводе, попадающем в заголовки, использование высокоуровневых API, отклоняющих управляющие символы в значениях заголовков, и строгие структурированные кодировщики журналов вместо сырой конкатенации строк.

flowchart TD
  A[Ввод пользователя<br/>name=foo%0d%0aSet-Cookie: admin=true] --> B{Проверить / удалить CR LF?}
  B -->|Нет| C[Ввод записан в заголовок как есть]
  C --> D[CRLF завершает текущий заголовок]
  D --> E[Подконтрольный атакующему заголовок или тело]
  E --> F[Отравление кеша / инъекция cookie / XSS]
  B -->|Да, отклонить CR LF| G[Безопасный ответ]

● Примеры

  1. 01

    Set-Cookie: id=foo%0d%0aSet-Cookie: admin=true — добавляет второй cookie через CRLF.

  2. 02

    Location: /redir%0d%0aContent-Length:0%0d%0a%0d%0a<html>... — разделение HTTP-ответа.

● Частые вопросы

Что такое CRLF-инъекция?

Атака, внедряющая символы возврата каретки и перевода строки в HTTP-заголовки, журналы и другие текстовые протоколы для подделки новых строк. Относится к категории Атаки и угрозы в кибербезопасности.

Что означает CRLF-инъекция?

Атака, внедряющая символы возврата каретки и перевода строки в HTTP-заголовки, журналы и другие текстовые протоколы для подделки новых строк.

Как защититься от CRLF-инъекция?

Защита от CRLF-инъекция обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия CRLF-инъекция?

Распространённые альтернативные названия: Инъекция возврата каретки и перевода строки, Инъекция в журналы.

● Связанные термины