CVE-2026-90651

Summary

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.

Affected Software

VendorProductVersion RangeStatus
SocketSocket Firewall0 < 2.0.0affected

Weaknesses

  • CWE-295: CWE-295 Improper Certificate Validation

Workarounds

On versions 1.1.334 through 1.1.x, explicitly set api_ssl_verify: true and upstream_ssl_verify: true in socket.yml. On versions before 1.1.334 this setting alone is not sufficient, because the generated nginx configuration omits lua_ssl_trusted_certificate; operators had to patch the generated configuration to inject lua_ssl_trusted_certificate and lua_ssl_verify_depth.

References