Three gaps in OpenSearchTransportFactory and QuickSearchQBitConfig:
tls.hostnameVerification=false disables hostname checks with no warning and no validation gate, unlike insecureSkipVerify. Log a warning at least.
An ${env.X} value set to an empty string passes the null check, so BASIC sends an empty password. A missing variable behind a CA, trust store or key store path surfaces as "Failed to create OpenSearch transport: null". Treat empty as missing and name the field.
opensearchUrl accepts userinfo such as https://u:p@host. The getter is not @JsonIgnore, so those credentials would be serialized into metadata while the transport ignores them. Reject userinfo in validation.
Three gaps in `OpenSearchTransportFactory` and `QuickSearchQBitConfig`:
- `tls.hostnameVerification=false` disables hostname checks with no warning and no validation gate, unlike `insecureSkipVerify`. Log a warning at least.
- An `${env.X}` value set to an empty string passes the null check, so BASIC sends an empty password. A missing variable behind a CA, trust store or key store path surfaces as "Failed to create OpenSearch transport: null". Treat empty as missing and name the field.
- `opensearchUrl` accepts userinfo such as `https://u:p@host`. The getter is not `@JsonIgnore`, so those credentials would be serialized into metadata while the transport ignores them. Reject userinfo in validation.
Found in the PR #10 security review.
Part of #12.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Three gaps in
OpenSearchTransportFactoryandQuickSearchQBitConfig:tls.hostnameVerification=falsedisables hostname checks with no warning and no validation gate, unlikeinsecureSkipVerify. Log a warning at least.${env.X}value set to an empty string passes the null check, so BASIC sends an empty password. A missing variable behind a CA, trust store or key store path surfaces as "Failed to create OpenSearch transport: null". Treat empty as missing and name the field.opensearchUrlaccepts userinfo such ashttps://u:p@host. The getter is not@JsonIgnore, so those credentials would be serialized into metadata while the transport ignores them. Reject userinfo in validation.Found in the PR #10 security review.
Part of #12.