CVE-2025-48927
TeleMessage TM SGNL
2025-07-01
TeleMessage TM SGNL contains an initialization of a resource with an insecure default vulnerability. This vulnerability relies on how the Spring Boot Actuator is configured with an exposed heap dump endpoint at a /heapdump URI.
Технический анализ и план устранения
Суть уязвимости
Уязвимость CVE-2025-48927 в TeleMessage TM SGNL связана с небезопасной конфигурацией Spring Boot Actuator по умолчанию. В приложении остается открытым доступ к эндпоинту /heapdump.
Heap dump (дамп кучи) — это снимок оперативной памяти Java-процесса в определенный момент времени. Он содержит критически важные данные: * Учетные данные пользователей и сессионные токены. * Ключи шифрования и API-ключи. * Переменные окружения и конфигурационные параметры. * Персональные данные (PII), обрабатываемые приложением.
Злоумышленник может скачать этот файл без аутентификации, что приведет к полной компрометации конфиденциальной информации.
Как исправить
Основной способ устранения — ограничение доступа к чувствительным эндпоинтам Actuator в конфигурационных файлах приложения (application.properties или application.yml).
- Откройте файл конфигурации приложения и измените список доступных эндпоинтов, исключив
heapdump.
Для application.properties:
management.endpoints.web.exposure.exclude=heapdump
Для application.yml:
management:
endpoints:
web:
exposure:
exclude: "heapdump"
- Если Actuator используется только для мониторинга состояния (Health Check), рекомендуется ограничить список разрешенных эндпоинтов до минимума.
Для application.properties:
management.endpoints.web.exposure.include=health,info
- После внесения изменений перезапустите сервис:
systemctl restart telemessage-sgnl
Временные меры
Если немедленное изменение конфигурации приложения невозможно, используйте следующие методы защиты на уровне инфраструктуры:
- Блокировка доступа на уровне Reverse Proxy (Nginx). Добавьте правило в конфигурацию сервера:
location /actuator/heapdump {
deny all;
return 403;
}
- Ограничение доступа с помощью сетевого экрана (iptables) для блокировки внешних запросов к порту управления (если он отличается от основного):
iptables -A INPUT -p tcp --dport 8081 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8081 -j DROP
- Настройка Spring Security для принудительной аутентификации эндпоинтов Actuator (требует наличия зависимости Spring Security):
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests()
.anyRequest().hasRole("ADMIN").and().httpBasic();
return http.build();
}