This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [org.postgresql:postgresql](https://jdbc.postgresql.org)
([source](https://redirect.github.com/pgjdbc/pgjdbc)) | `42.7.11` →
`42.7.12` |

|

|
---
> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/2069) for more information.
---
### PostgreSQL JDBC Driver: Silent channel-binding authentication
downgrade via unsupported certificate algorithms
[CVE-2026-54291](https://nvd.nist.gov/vuln/detail/CVE-2026-54291) /
[GHSA-j92g-9f8w-j867](https://redirect.github.com/advisories/GHSA-j92g-9f8w-j867)
<details>
<summary>More information</summary>
#### Details
##### Impact
`channelBinding=require` connections can be silently downgraded from
`SCRAM-SHA-256-PLUS` (with channel binding) to plain `SCRAM-SHA-256`
(without it), losing the man-in-the-middle protection the setting is
meant to guarantee. An attacker who can intercept the TLS connection
triggers the downgrade with a certificate whose signature algorithm has
no `tls-server-end-point` channel-binding hash. Examples are `Ed25519`,
`Ed448`, and post-quantum algorithms.
Two issues combine in releases 42.7.4 through 42.7.11:
1. The bundled `com.ongres.scram:scram-client` (3.1 or 3.2) returns an
empty byte array instead of failing when it cannot derive the binding
hash for such a certificate. This is the library issue tracked as
[GHSA-p9jg-fcr6-3mhf](https://redirect.github.com/ongres/scram/security/advisories/GHSA-p9jg-fcr6-3mhf).
2. pgJDBC does not enforce `channelBinding=require` where it matters.
`ScramAuthenticator` checks only that the server *advertised* a `-PLUS`
mechanism; it neither rejects the empty binding nor checks that the
*negotiated* mechanism uses channel binding. The connection therefore
downgrades silently, and would do so even against a fixed
`scram-client`, because the missing enforcement is in pgJDBC's own code.
Only connections that set `channelBinding=require` are affected. Under
the default `prefer` policy, and under `allow` or `disable`, falling
back to plain SCRAM is the documented behaviour. Releases before 42.7.4
are unaffected, because they do not support channel binding.
##### Patches
Fixed in pgJDBC 42.7.12. pgJDBC now enforces channel binding in its own
code, independently of the `scram-client` version:
- Under `channelBinding=require`, it fails the connection when no
channel-binding data can be extracted from the server certificate,
instead of passing an empty value to the SCRAM client. The error names
the certificate signature algorithm.
- After negotiation, it requires the selected mechanism to use channel
binding (a `-PLUS` mechanism) whenever `channelBinding=require` is set,
regardless of how negotiation resolved.
Upgrade to 42.7.12 or later.
##### Workarounds
No pgJDBC setting restores channel-binding enforcement on an affected
release; upgrading is the fix.
If you cannot upgrade immediately, verify the server certificate at the
TLS layer so that a man-in-the-middle cannot present a substitute
certificate. Set `sslmode=verify-full` with a truststore that contains
only your server's CA. This defence is independent of channel binding
and blocks the same attacker. Connections that rely on
`channelBinding=require` in place of certificate verification have no
equivalent workaround and should upgrade.
##### References
-
[GHSA-p9jg-fcr6-3mhf](https://redirect.github.com/ongres/scram/security/advisories/GHSA-p9jg-fcr6-3mhf)
— the related `com.ongres.scram:scram-client` issue (root cause of the
empty channel-binding value).
- `scram-client` 3.3 release (library fix):
https://github.com/ongres/scram/releases/tag/3.3
- pgJDBC fix in 42.7.12:
[commit](77df98e4e6)
#### Severity
- CVSS Score: 8.2 / 10 (High)
- Vector String:
`CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:L/SA:N`
#### References
-
[https://github.com/pgjdbc/pgjdbc/security/advisories/GHSA-j92g-9f8w-j867](https://redirect.github.com/pgjdbc/pgjdbc/security/advisories/GHSA-j92g-9f8w-j867)
-
[https://nvd.nist.gov/vuln/detail/CVE-2026-54291](https://nvd.nist.gov/vuln/detail/CVE-2026-54291)
-
[77df98e4e6)
-
[https://github.com/ongres/scram/releases/tag/3.3](https://redirect.github.com/ongres/scram/releases/tag/3.3)
-
[https://github.com/advisories/GHSA-j92g-9f8w-j867](https://redirect.github.com/advisories/GHSA-j92g-9f8w-j867)
This data is provided by the [GitHub Advisory
Database](https://redirect.github.com/advisories/GHSA-j92g-9f8w-j867)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>
---
### Release Notes
<details>
<summary>pgjdbc/pgjdbc (org.postgresql:postgresql)</summary>
###
[`v42.7.12`](https://redirect.github.com/pgjdbc/pgjdbc/blob/HEAD/CHANGELOG.md#42712-2026-06-29)
##### Security
- fix: Enforce SCRAM channel-binding policy and prevent silent
downgrade.
Under `channelBinding=require`, the driver silently downgraded from
`SCRAM-SHA-256-PLUS` (with channel binding) to plain `SCRAM-SHA-256`
(without it) when the server presented a certificate whose signature
algorithm has no `tls-server-end-point` channel-binding hash (e.g.
[`Ed25519`](https://redirect.github.com/pgjdbc/pgjdbc/commit/Ed25519),
Ed448, or post-quantum algorithms). An attacker who can intercept the
TLS connection could exploit this to strip channel-binding protection.
The fix enforces channel binding in the driver's own code: it now fails
the connection when no binding data can be extracted, and verifies the
negotiated mechanism uses channel binding (`-PLUS`) when `require` is
set.
Only connections that set `channelBinding=require` are affected. The
default `prefer` policy and releases before 42.7.4 (which introduced
channel-binding support) are unaffected.
See the [Security
Advisory](https://redirect.github.com/pgjdbc/pgjdbc/security/advisories/GHSA-j92g-9f8w-j867)
for more detail.
The following
[CVE-2026-54291](https://nvd.nist.gov/vuln/detail/CVE-2026-54291) has
been issued.
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/langchain4j/langchain4j).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNzUuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI3NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>