
Доказательство концепции эксплуатации для CVE-2026-26012, демонстрирующее обход разрешений аутентифицированной организации на коллекции и перечисление шифров в Vaultwarden. Включает Python-скрипт для воспроизведения проблемы и сравнения расхождений в доступе к коллекциям.
Ссылка NVD: CVE-2026-26012
| CVSSv3 | Вектор атаки | Сложность атаки | Требуемые привилегии | Взаимодействие с пользователем | Конфиденциальность | Целостность | Доступность |
|---|
| 6.5 - MEDIUM | Network | Low | Low | None | High | None | None |
Источник: NVD, оценка CNA (GitHub, Inc.).
Любой член организации может получить все шифры, принадлежащие организации, независимо от разрешений на коллекции. Конечная точка /ciphers/organization-details доступна всем членам организации и внутренне использует Cipher::find_by_org для получения всех шифров; результаты возвращаются с CipherSyncType::Organization без применения контроля доступа на уровне коллекций. Этот репозиторий предоставляет POC для воспроизведения проблемы в строго этических целях: авторизованное тестирование на проникновение, проверка исправлений и исследования в области безопасности.
python CVE-2026-26012.py -u https://target.example.com -t "YOUR_TOKEN" -uuid "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -o CVE-2026-26012.json
| Короткий | Параметр | Описание |
|---|---|---|
-u | --url | Базовый URL цели |
-t | --token | Bearer-токен |
-uuid | --organization-id | UUID организации (обязательно, проверяется формат UUID) |
-o | --output | Выходной JSON-файл (по умолчанию: CVE-2026-26012.json) |
-c | --compare-collections | Сравнить collectionIds и отобразить расхождения в доступе |
Поведение: Команда экспортирует детали организации в JSON. С параметром -c скрипт сравнивает коллекции из organization-details и из /api/collections, затем отображает в терминале:
Цель: быстро увидеть разрывы между тем, что API организации раскрывает, и тем, что пользователь должен видеть.
organization-details, collectionsСм. файл LICENSE в этом репозитории.