CVE-2026-114214
Loading a through relationship with a limit of 1 in Ash ignores the through path and returns unrelated destination records
Что произошло
Incorrect Authorization vulnerability in ash-project ash allows a client to read destination records unrelated to the source record through a through relationship. When a has_many relationship declared with through: was loaded for a single record with a limit of 1, or an unsorted has_one through relationship was loaded with a limit of 1, lateral_join?/4 in lib/ash/actions/read/relationships.ex chose the path that reads the destination without any filter linking it to the source. The load returned the first destination record by sort, or any other record with an offset. The read still runs the destination's policies but carries the relationship as accessing_from, so a client paging such a field (for example teachers(limit: 1, offset: n) through AshGraphql) can enumerate destination records that policies allow only when reached through that relationship. This issue affects ash: from 3.24.0 before 3.37.1.
Что это значит
В источнике описана ошибка безопасности в перечисленных продуктах. Фактический риск зависит от установленной версии, конфигурации и доступности компонента; проверьте условия в первичном бюллетене.
Что делать
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. После исправления
- Проверьте фактическую версию и результат установки по бюллетеню.
- При необходимости перезапустите сервисы в согласованное окно.
- Повторите проверку сканером и функциональные проверки.
- Зафиксируйте результат, дату, владельца и оставшийся риск.
Продукты и затронутые версии
ash-project / ash
{
"status": "affected",
"version": "3.24.0",
"lessThan": "3.37.1",
"versionType": "semver"
}cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*
ash-project / ash
{
"status": "affected",
"version": "24f41e23dcbd9d07cde270a8141490e8f79251f5",
"lessThan": "e37463307304b26bc8fd606322e5c4d8f7f060e5",
"versionType": "git"
}cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*
CVSS: оценки и векторы
CVSS 4.0 · cve6
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
CVSS 4.0 · 6b3ad84c-e1a6-4bf7-a703-f496b71e49db6
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/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
Источники и ссылки
Происхождение полей
{
"cwes": [
"cve",
"nvd"
],
"epss": {
"source": "epss",
"received_at": "2026-11-02T21:11:15.266036+00:00"
},
"title": {
"source": "cve",
"received_at": "2026-10-28T18:39:46.198400+00:00"
},
"scores": [
"cve",
"nvd"
],
"status": {
"source": "cve",
"received_at": "2026-10-28T18:39:46.198400+00:00"
},
"affected": [
"cve"
],
"published": {
"source": "cve",
"received_at": "2026-10-28T18:39:46.198400+00:00"
},
"solutions": [],
"percentile": {
"source": "epss",
"received_at": "2026-11-02T21:11:15.266036+00:00"
},
"references": [
"cve",
"nvd"
],
"description": {
"source": "cve",
"received_at": "2026-10-28T18:39:46.198400+00:00"
},
"workarounds": [],
"configurations": []
}Хронология записи
- Данные обновлены03.11.2026, 00:11
- Данные обновлены02.11.2026, 00:09
- Данные обновлены31.10.2026, 11:57
- Данные обновлены30.10.2026, 16:50
- Появились сведения об исправлении28.10.2026, 21:39
- Данные обновлены28.10.2026, 18:05
- Опубликована28.10.2026, 15:16
Личная заметка и статус
Другие CVE того же продукта
| УЯЗВИМОСТЬ / ПРОДУКТ | ПРИОРИТЕТ | CVSS | EPSS | СИГНАЛЫ | ОПУБЛИКОВАНА | Карточка |
|---|---|---|---|---|---|---|
| CVE-2026-96581 An upsert on the primary key in Ash ignores attribute multitenancy, so one tenant can read, overwrite and take over another tenant's records ash-project / ash | Высокий | 7.6 | 0,26 % | Патч | 26.10.2026 | |
| CVE-2026-101028 Ash.count, Ash.exists and Ash.aggregate skip related resources' read policies in filters and sorts ash-project / ash | Высокий | 6.0 | 0,34 % | PoCПатч | 09.10.2026 | |
| CVE-2026-94201 Filtering an :atom attribute with unsafe_to_atom? can exhaust the BEAM atom table in Ash ash-project / ash | Высокий | 8.2 | 0,3 % | Патч | 05.10.2026 | |
| CVE-2026-93477 Private action arguments can be set by user input on the bulk destroy and bulk update paths in Ash ash-project / ash | Высокий | 5.9 | 0,2 % | PoCПатч | 25.09.2026 | |
| CVE-2025-48043 Bypass and runtime policies that can never pass may be incorrectly applied in filter authorization ash-project / ash | Высокий | 8.6 | 0,4 % | Патч | 10.10.2025 |