Skip to content

[Security] Bump PostgreSQL JDBC Driver from 42.2.16 to 42.7.10#37941

Merged
Abacn merged 2 commits intoapache:masterfrom
bvolpato:bvolpato/bump-postgres-jdbc-42.7.10
Mar 26, 2026
Merged

[Security] Bump PostgreSQL JDBC Driver from 42.2.16 to 42.7.10#37941
Abacn merged 2 commits intoapache:masterfrom
bvolpato:bvolpato/bump-postgres-jdbc-42.7.10

Conversation

@bvolpato
Copy link
Contributor

Summary

Bumps the PostgreSQL JDBC Driver from 42.2.16 to 42.7.10 to address multiple security vulnerabilities.

CVE Details:

CVE CVSS Description
CVE-2024-1597 9.8 Critical SQL injection via preferQueryMode=simple in combination with application code that has a vulnerable SQL query.
CVE-2022-31197 7.1 High SQL injection in ResultSet.refreshRow() with column names containing a statement terminator.
CVE-2022-21724 9.8 Critical pgjdbc instantiates plugin instances based on class names provided via connection properties without verifying the class implements the expected interface, which can lead to code execution through arbitrary classes.

References:

Changes

  • Bumps postgres_version in BeamModulePlugin.groovy from 42.2.16 to 42.7.10
  • Adds Security Fixes entry in CHANGES.md for the 2.73.0 release

Testing

The PostgreSQL JDBC Driver maintains JDBC 4.2 API backward compatibility across 42.x releases. The changes between 42.2.16 and 42.7.10 are primarily internal security and bug fixes — no public API changes.

The existing test suites that exercise this dependency serve as sufficient regression coverage:

  • :sdks:java:io:jdbc:test — JdbcIO unit and integration tests via testcontainers with PostgreSQL
  • :sdks:java:io:common:test — Common IO utilities
  • :sdks:java:io:hadoop-format:test — HadoopFormatIO with PostgreSQL backend

No new tests are needed as the JDBC API surface is unchanged.


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

@github-actions github-actions bot added the build label Mar 24, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the project's security by updating the PostgreSQL JDBC Driver to a newer version. This critical update mitigates several known vulnerabilities, ensuring applications are protected against potential exploits without requiring changes to the public API or existing test suites.

Highlights

  • PostgreSQL JDBC Driver Upgrade: Upgraded the PostgreSQL JDBC Driver from version "42.2.16" to "42.7.10" to incorporate critical security fixes.
  • Security Vulnerability Resolution: Addressed multiple critical and high-severity CVEs, including CVE-2024-1597 (SQL injection), CVE-2022-31197 (SQL injection), and CVE-2022-21724 (code execution via plugin instantiation).
  • Changelog Update: Added an entry to "CHANGES.md" documenting the security fixes for the 2.73.0 release.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Contributor

Checks are failing. Will not request review until checks are succeeding. If you'd like to override that behavior, comment assign set of reviewers

Copy link
Contributor

@Abacn Abacn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM after resolving merging conflicts in CHANGES.md

Upgrades the PostgreSQL JDBC Driver to address multiple CVEs:
- CVE-2024-1597 (CVSS 9.8): SQL injection via preferQueryMode=simple
- CVE-2022-31197: SQL injection in ResultSet.refreshRow
- CVE-2022-21724: Arbitrary code execution via JDBC URL
@bvolpato bvolpato force-pushed the bvolpato/bump-postgres-jdbc-42.7.10 branch from 2fa7a81 to 1242259 Compare March 25, 2026 15:29
@bvolpato
Copy link
Contributor Author

The failure is caused by the flaky SpannerChangeStreamOrderedByTimestampAndTransactionIdIT.testTransactionBoundaries test (tracked as #35868). This is completely unrelated to the PostgreSQL JDBC driver upgrade.

Retriggering: Run Java_GCP_IO_Direct PreCommit

@bvolpato
Copy link
Contributor Author

Run Java_GCP_IO_Direct PreCommit

@Abacn
Copy link
Contributor

Abacn commented Mar 26, 2026

different flaky tests in two runs, not related to this change

@Abacn Abacn merged commit d2aed60 into apache:master Mar 26, 2026
17 of 20 checks passed
@shunping
Copy link
Collaborator

You rocks, @bvolpato! Thank you very much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants