Flight SQL JDBC parses boolean properties case-sensitively, silently disabling TLS for useEncryption=TRUE
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 79/100
調査の方向性
ArrowFlightConnectionConfigImpl.ArrowFlightConnectionProperty.getBooleanを見つけ、プロパティ値の読み取り方を調べてください。JDBC接続プロパティの既存テストを確認し、true、TRUE、True、1のテストを追加してください。これらすべての値で暗号化が有効になり、関連するテストが通れば完了です。
索引モデルが issue の本文から書いたものです。
説明
In the Flight SQL JDBC driver, ArrowFlightConnectionConfigImpl.ArrowFlightConnectionProperty.getBoolean compares the property value with:
return valueFromProperties.equals("1") || valueFromProperties.equals("true");
Only the exact lowercase true (or 1) is treated as true. Values coming from the JDBC URL or Properties are not normalized, so a perfectly reasonable value such as useEncryption=TRUE or useEncryption=True is parsed as false.
useEncryption defaults to true and feeds ArrowFlightSqlClientHandler.Builder.withEncryption(...). When it is parsed as false, the driver connects to the server over plaintext gRPC and performs the authentication handshake (username/password, bearer token, or OAuth credentials) over the unencrypted channel. A user who believes they enabled TLS gets a cleartext connection and credential exposure instead.
Most JDBC drivers parse boolean options case-insensitively, so this is surprising and security-relevant. getBoolean should accept true case-insensitively (still honoring 1).
- 主要言語
- Java
- スター
- 98
- フォーク
- 160
- 平均マージ
- 5日 6時間
- マージ済み PR(30日)
- 27
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/arrow-java のほかの issue
-
ArrowBuf.setBytes(long, ByteBuffer, int, int) does not bounds-check the source buffer対応中かも @aryan9948 が 6 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/arrow-java#1336 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
ArrowFlightJdbcArray.getArray(index, count) can read past the end of the array slice対応中かも @Arawoof06 が 86 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/arrow-java#1236 ·
メンテナーはふだん 1 日以内に返信
-
[Java][JDBC] ClobConsumer writes past VarCharVector data buffer for large CLOBs対応中かも @Arawoof06 が 91 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
apache/arrow-java#1230 ·
メンテナーはふだん 1 日以内に返信
-
[Java] DictionaryEncoder doesn't crash when decoding index outside of Dictionary対応中かも @jakobhok-neo4j が 148 日前に担当しました。 オープンType: bug
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
apache/arrow-java#1158 ·
メンテナーはふだん 1 日以内に返信
-
Type: enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
apache/arrow-java#1100 ·
メンテナーはふだん 1 日以内に返信
apache/arrow-java の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug new windows
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
GantMan/jail-monkey#380 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
objectionary/jucs#145 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
objectionary/lints#1559 ·
メンテナーはふだん 2 日以内に返信