Брандмауэр сокетов (socketdev/socket-registry-firewall) в режиме реестра до версии 2.0.0 по умолчанию не проверяет восходящие сертификаты TLS. Если ключи конфигурации api_ssl_verify и upstream_ssl_verify опущены в файлеocket.yml, сгенерированная конфигурация устанавливает SOCKET_API_SSL_VERIFY='false' и UPSTREAM_SSL_VERIFY='false', а HTTP-клиент OpenResty/Lua, используемый для исходящих запросов, принимает любой сертификат, включая самозаверяющие и в противном случае ненадежные сертификаты, без проверки цепочки. Злоумышленник, способный перехватить трафик между Socket Firewall и Socket API или вышестоящим реестром пакетов, может представить созданный сертификат и изменить ответы при передаче, включая подмену содержимого вредоносного пакета или изменение решений о разрешении/блокировке, которые выполняет брандмауэр.
Установка api_ssl_verify: true и upstream_ssl_verify: true включает проверку; однако в версиях до 1.1.334 сгенерированная конфигурация nginx не выдавала lua_ssl_trusted_certificate, и поэтому проверку нельзя было успешно использовать без исправления сгенерированной конфигурации вручную. Версия 2.0.0 меняет значение по умолчанию для обеих настроек на true.
Показать оригинальное описание (EN)
Socket Firewall (socketdev/socket-registry-firewall) in registry mode before 2.0.0 does not verify upstream TLS certificates by default. When the api_ssl_verify and upstream_ssl_verify configuration keys are omitted from socket.yml, the generated configuration sets SOCKET_API_SSL_VERIFY='false' and UPSTREAM_SSL_VERIFY='false', and the OpenResty/Lua HTTP client used for outbound requests accepts any certificate, including self-signed and otherwise untrusted certificates, without validating the chain. An attacker positioned to intercept traffic between Socket Firewall and the Socket API or an upstream package registry can present a crafted certificate and modify responses in transit, including substituting malicious package content or altering the allow/block decisions the firewall enforces. Setting api_ssl_verify: true and upstream_ssl_verify: true enables verification; however, in versions before 1.1.334, the generated nginx configuration did not emit lua_ssl_trusted_certificate, and thus verification could not be used successfully without manually patching the generated configuration. Version 2.0.0 changes the default for both settings to true.
Характеристики атаки
Последствия
Строка CVSS v3.1