You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(tools): pin resolved IP in DB connectors to prevent DNS-rebinding SSRF (#4725)
* fix(tools): pin resolved IP in DB connectors to prevent DNS-rebinding SSRF
`validateDatabaseHost` resolved an IP that was then discarded — drivers re-resolved
the hostname at connect time, enabling DNS-rebinding TOCTOU.
- mongodb: pass resolved IP via MongoClient `lookup` option
- mysql: pin TCP socket via `stream` factory; keep hostname for TLS servername
- postgresql: connect to resolved IP; pass `ssl` object with `servername` for SNI
- redis: parse URL explicitly and pass options-only (URL+options breaks override
due to ioredis's lodash.defaults); pin host and set `tls.servername` for rediss
- neo4j: pin IP for plain `bolt://`; leave `bolt+s`/`neo4j+s` unchanged to keep
Aura cert validation working (driver hardcodes servername with no override)
* chore(tools): remove explainer comments from DB connector SSRF fix
* fix(tools): add explicit TCP timeout to mysql stream factory
* fix(tools): unify postgres ssl handling to send SNI in preferred mode
* fix(tools): preserve postgres 'preferred' fallback behavior for backward compat
* fix(tools): reject non-numeric Redis URL db segment instead of silently using db 0
0 commit comments