CVE-2026-40876
SFTP root escape via prefix-based path validation in goshs
Что произошло
goshs is a SimpleHTTPServer written in Go. Prior to 2.0.0-beta.6, goshs contains an SFTP root escape caused by prefix-based path validation. An authenticated SFTP user can read from and write to filesystem paths outside the configured SFTP root, which breaks the intended jail boundary and can expose or modify unrelated server files. The SFTP subsystem routes requests through sftpserver/sftpserver.go into DefaultHandler.GetHandler() in sftpserver/handler.go, which forwards file operations into readFile, writeFile, listFile, and cmdFile. All of those sinks rely on sanitizePath() in sftpserver/helper.go. helper.go uses a raw string-prefix comparison, not a directory-boundary check. Because of that, if the configured root is /tmp/goshsroot, then a sibling path such as /tmp/goshsroot_evil/secret.txt incorrectly passes validation since it starts with the same byte prefix. This vulnerability is fixed in 2.0.0-beta.6.
Что это значит
В источнике описана ошибка безопасности в перечисленных продуктах. Фактический риск зависит от установленной версии, конфигурации и доступности компонента; проверьте условия в первичном бюллетене.
Что делать
1. Проверьте, затронуты ли вы
Соберите инвентаризацию и сравните с таблицей затронутых версий. Эти команды только показывают установленные компоненты и сами по себе не доказывают наличие CVE.
dpkg-query -W -f='${Package} ${Version}\n'rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}\n'Get-HotFix | Select-Object HotFixID, InstalledOn
2. Установите исправление
Сверьте точный продукт и версию с бюллетенем вендора. Установите указанное в нём исправление после резервного копирования и проверки совместимости. Подтверждённая целевая версия в источниках отсутствует.
3. Временные меры
До проверки бюллетеня ограничьте доступ к затронутому компоненту доверенными узлами. Оцените сегментацию и отключение ненужных интерфейсов с владельцем сервиса; универсального правила WAF для этой CVE не подтверждено.
4. Проверьте следы эксплуатации
Проверьте аномальные входы, новые учётные записи, ошибки и необычные дочерние процессы в затронутом сервисе. Публичные проверенные правила обнаружения не включены в запись; отсутствие сигналов не доказывает отсутствие компрометации.
5. После исправления
- Проверьте фактическую версию и результат установки по бюллетеню.
- При необходимости перезапустите сервисы в согласованное окно.
- Повторите проверку сканером и функциональные проверки.
- Зафиксируйте результат, дату, владельца и оставшийся риск.
Продукты и затронутые версии
patrickhener / goshs
{
"status": "affected",
"version": "< 2.0.0-beta.6"
}goshs / goshs
{
"status": "affected",
"version": "*",
"versionEndExcluding": "2.0.0"
}cpe:2.3:a:goshs:goshs:*:*:*:*:*:go:*:*
goshs / goshs
{
"status": "affected",
"version": "2.0.0"
}cpe:2.3:a:goshs:goshs:2.0.0:beta1:*:*:*:go:*:*
goshs / goshs
{
"status": "affected",
"version": "2.0.0"
}cpe:2.3:a:goshs:goshs:2.0.0:beta2:*:*:*:go:*:*
goshs / goshs
{
"status": "affected",
"version": "2.0.0"
}cpe:2.3:a:goshs:goshs:2.0.0:beta3:*:*:*:go:*:*
goshs / goshs
{
"status": "affected",
"version": "2.0.0"
}cpe:2.3:a:goshs:goshs:2.0.0:beta4:*:*:*:go:*:*
goshs / goshs
{
"status": "affected",
"version": "2.0.0"
}cpe:2.3:a:goshs:goshs:2.0.0:beta5:*:*:*:go:*:*
CVSS: оценки и векторы
CVSS 4.0 · cve8.7
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS 4.0 · security-advisories@github.com8.7
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1 · nvd@nist.gov8.8
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Источники и ссылки
Происхождение полей
{
"cwes": [
"cve",
"nvd"
],
"epss": {
"source": "epss",
"received_at": "2026-11-03T21:13:25.950788+00:00"
},
"title": {
"source": "cve",
"received_at": "2026-10-28T20:04:39.941582+00:00"
},
"scores": [
"cve",
"nvd"
],
"status": {
"source": "cve",
"received_at": "2026-10-28T20:04:39.941582+00:00"
},
"affected": [
"cve",
"nvd"
],
"published": {
"source": "cve",
"received_at": "2026-10-28T20:04:39.941582+00:00"
},
"solutions": [],
"percentile": {
"source": "epss",
"received_at": "2026-11-03T21:13:25.950788+00:00"
},
"references": [
"cve",
"nvd"
],
"description": {
"source": "cve",
"received_at": "2026-10-28T20:04:39.941582+00:00"
},
"workarounds": [],
"configurations": [
"nvd"
]
}Хронология записи
- Данные обновлены04.11.2026, 00:13
- Данные обновлены03.11.2026, 00:12
- Данные обновлены02.11.2026, 00:11
- Данные обновлены31.10.2026, 11:58
- Данные обновлены28.10.2026, 23:04
- Данные обновлены28.10.2026, 18:06
- Появилась ссылка на PoC28.10.2026, 15:11
Личная заметка и статус
Другие CVE того же продукта
| УЯЗВИМОСТЬ / ПРОДУКТ | ПРИОРИТЕТ | CVSS | EPSS | СИГНАЛЫ | ОПУБЛИКОВАНА | Карточка |
|---|---|---|---|---|---|---|
| CVE-2026-40189 goshs has a file-based ACL authorization bypass in goshs state-changing routes patrickhener / goshs · goshs / goshs | Критический | 9.3 | 0,64 % | PoCПатч | 10.04.2026 | |
| CVE-2026-40885 goshs: Public collaborator feed leaks .goshs ACL credentials and enables unauthorized access patrickhener / goshs · goshs / goshs | Критический | 7.7 | 0,31 % | PoC | 21.04.2026 | |
| CVE-2026-40884 goshs: Empty-username SFTP password authentication bypass in goshs patrickhener / goshs · goshs / goshs | Критический | 9.8 | 0,48 % | PoC | 21.04.2026 | |
| CVE-2026-40188 goshs is Missing Write Protection for Parametric Data Values patrickhener / goshs · goshs / goshs | Критический | 7.7 | 0,32 % | PoCПатч | 10.04.2026 | |
| CVE-2026-40903 Goshs - ArtiPACKED Vulnerability – GitHub Actions Credential Persistence patrickhener / goshs · goshs / goshs | Критический | 9.1 | 0,25 % | 21.04.2026 |