Flight SQL JDBC parses boolean properties case-sensitively, silently disabling TLS for useEncryption=TRUE
維護者通常 1 天內回覆
評估
研究方向
找出 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 小時
- 30 天內合併 PR
- 27
環境準備
- 提供 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 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 天內回覆