CVE-2026-65630
Timing side-channel in pure-Erlang X25519 scalar multiplication leaks the private key in jose
Что произошло
Observable Timing Discrepancy vulnerability in potatosalad jose allows recovery of a long-term X25519 private key through a timing side channel in the pure-Erlang Curve25519 fallback. The pure-Erlang X25519 implementation performs scalar multiplication over the secret private key using a recursive Montgomery ladder (jose_jwa_x25519:curve25519/2) whose clauses branch on individual bits of the clamped private scalar, and whose per-step operations (jose_jwa_x25519:montgomery_add/3 and jose_jwa_x25519:montgomery_double/1) and field inversion are built from value-dependent Erlang bignum arithmetic (multiplication, remainder, and modular exponentiation). Although the ladder is operation-count balanced and fixed at 254 steps, the concrete integer values processed at each step, and therefore the running time, depend on the secret scalar. The execution time of the public entry points jose_jwa_x25519:scalarmult/2, jose_jwa_x25519:x25519/2, jose_jwa_x25519:x25519_base/1, and jose_jwa_x25519:sk_to_pk/1 is thus a function of the private key. This path is reachable from the public API, most notably when a service decrypts attacker-supplied ECDH-ES (JWE) messages with a long-term X25519 key (for example through JOSE.JWK.box_decrypt_ecdh_es/2, which reaches jose_jwa_curve25519:x25519_shared_secret/2 and the ladder). An attacker who can submit ciphertexts and measure decryption timing can, in principle, recover the private key bit by bit, defeating the resistance X25519 was designed to provide. Recovery of the key compromises the confidentiality and authenticity of all data protected by it. This issue affects jose: from 1.10.0 before 1.11.13.
Что это значит
В источнике описана ошибка безопасности в перечисленных продуктах. Фактический риск зависит от установленной версии, конфигурации и доступности компонента; проверьте условия в первичном бюллетене.
Что делать
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. Временные меры
Use a constant-time native X25519 implementation for private-key operations: install the libsodium or libdecaf NIF, or run on an OTP release whose crypto application provides x25519, and do not force the pure-Erlang Curve25519 fallback (JOSE.crypto_fallback(true) or JOSE.curve25519_module(:jose_jwa_curve25519)) for long-lived keys.
4. Проверьте следы эксплуатации
Проверьте аномальные входы, новые учётные записи, ошибки и необычные дочерние процессы в затронутом сервисе. Публичные проверенные правила обнаружения не включены в запись; отсутствие сигналов не доказывает отсутствие компрометации.
5. После исправления
- Проверьте фактическую версию и результат установки по бюллетеню.
- При необходимости перезапустите сервисы в согласованное окно.
- Повторите проверку сканером и функциональные проверки.
- Зафиксируйте результат, дату, владельца и оставшийся риск.
Продукты и затронутые версии
potatosalad / jose
{
"status": "affected",
"version": "1.10.0",
"lessThan": "1.11.13",
"versionType": "semver"
}cpe:2.3:a:potatosalad:jose:*:*:*:*:*:*:*:*
potatosalad / jose
{
"status": "affected",
"version": "8e532095de114ef4bf88a9ec5d651fa251a972b3",
"lessThan": "3670f873c274bba86fb7f5ee5727a7efa1322b79",
"versionType": "git"
}cpe:2.3:a:potatosalad:jose:*:*:*:*:*:*:*:*
CVSS: оценки и векторы
CVSS 4.0 · cve5.9
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
CVSS 4.0 · 6b3ad84c-e1a6-4bf7-a703-f496b71e49db5.9
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/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:13:41.497461+00:00"
},
"title": {
"source": "cve",
"received_at": "2026-11-02T21:42:05.766651+00:00"
},
"scores": [
"cve",
"nvd"
],
"status": {
"source": "cve",
"received_at": "2026-11-02T21:42:05.766651+00:00"
},
"affected": [
"cve"
],
"published": {
"source": "cve",
"received_at": "2026-11-02T21:42:05.766651+00:00"
},
"solutions": [],
"percentile": {
"source": "epss",
"received_at": "2026-11-02T21:13:41.497461+00:00"
},
"references": [
"cve",
"nvd"
],
"description": {
"source": "cve",
"received_at": "2026-11-02T21:42:05.766651+00:00"
},
"workarounds": [
"cve"
],
"configurations": []
}Хронология записи
- Появилась ссылка на PoC03.11.2026, 00:42
- Данные обновлены03.11.2026, 00:13
- Данные обновлены02.11.2026, 00:12
- Данные обновлены31.10.2026, 11:59
- Появились сведения об исправлении28.10.2026, 22:23
- Данные обновлены28.10.2026, 18:06
- Опубликована28.10.2026, 15:17
Личная заметка и статус
Другие CVE того же продукта
| УЯЗВИМОСТЬ / ПРОДУКТ | ПРИОРИТЕТ | CVSS | EPSS | СИГНАЛЫ | ОПУБЛИКОВАНА | Карточка |
|---|---|---|---|---|---|---|
| CVE-2026-65631 erlang-jose RSA JWK parsing attempts to factor an attacker-controlled modulus, enabling CPU-exhaustion denial of service potatosalad / jose | Средний | 6.9 | 0,24 % | Патч | 26.10.2026 | |
| CVE-2026-65632 ECDSA signature length is not validated in jose, allowing signature malleability potatosalad / jose | Высокий | 5.1 | 0,09 % | PoCПатч | 26.10.2026 | |
| CVE-2026-65629 Weak PBKDF2 parameters for password-encrypted private-key export in jose potatosalad / jose | Критический | 7.4 | 0,06 % | PoCПатч | 26.10.2026 | |
| CVE-2026-65628 Infinite recursion (CPU denial-of-service) in JOSE.JWK.shared_secret/2 on mismatched key types potatosalad / jose | Высокий | 5.9 | 0,14 % | PoCПатч | 26.10.2026 | |
| CVE-2026-65627 Decompression bomb via unbounded zlib:inflate in jose_jwe_zip:uncompress/2 potatosalad / jose | Высокий | 6.9 | 0,25 % | PoCПатч | 26.10.2026 |