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

Уязвимость форматной строки

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

Что такое Уязвимость форматной строки?

Уязвимость форматной строкиДефект, возникающий при передаче пользовательского ввода в качестве форматной строки функций типа printf, что позволяет произвольно читать и писать память.


Уязвимости форматной строки возникают, когда разработчик пишет printf(user_input) вместо printf("%s", user_input). Спецификаторы %x утечкой раскрывают стек, %s разыменовывает произвольные указатели, а %n записывает число выведенных байт по указанному адресу — это даёт примитивы произвольного чтения и записи. Классические цели эксплуатации — записи GOT/PLT, указатели функций или стековые канарейки. Современные toolchain-ы выдают предупреждения (-Wformat-security, FORTIFY_SOURCE), а многие языки запрещают такой шаблон, но баг по-прежнему встречается в старом C, embedded-прошивках и оболочках. Защита механистична: не передавать недоверенный ввод как форматную строку и применять типизированные форматтеры — fmtlib, Rust println!, Go fmt с явными «глаголами».

Примеры

  1. 01

    CVE-2000-0573 (wu-ftpd): форматная строка в site exec, удалённый root.

  2. 02

    Встраиваемые маршрутизаторы, пишущие в syslog поля, контролируемые атакующим.

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

Что такое Уязвимость форматной строки?

Дефект, возникающий при передаче пользовательского ввода в качестве форматной строки функций типа printf, что позволяет произвольно читать и писать память. Относится к категории Уязвимости в кибербезопасности.

Что означает Уязвимость форматной строки?

Дефект, возникающий при передаче пользовательского ввода в качестве форматной строки функций типа printf, что позволяет произвольно читать и писать память.

Как защититься от Уязвимость форматной строки?

Защита от Уязвимость форматной строки обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Уязвимость форматной строки?

Распространённые альтернативные названия: printf format bug.

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