RHOAIENG-63872: CVE-2026-44432 rhoai/odh-training-cuda121-torch24-py311-rhel9: urllib3: Denial of Service due to excessive HTTP response decompression [rhoai-3.3] - #125
Conversation
Fixes CVE-2026-44432 (DoS via excessive HTTP response decompression) by raising the urllib3 lower bound from 1.15.1/1.21.1 to 2.7.0 in the Python SDK setup.py and XGBoost example requirements.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (2)
💤 Files with no reviewable changes (2)
📝 WalkthroughWalkthroughThe pull request updates urllib3 constraints: sdk/python/setup.py now requires urllib3>=2.7.0 (was >=1.15.1); examples/xgboost/smoke-dist/requirements.txt updates urllib3 to >=2.7.0 (was >=1.21.1); examples/xgboost/xgboost-dist/requirements.txt removes the urllib3 entry entirely. No code or public API entities were changed. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Security considerations
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@examples/xgboost/smoke-dist/requirements.txt`:
- Line 4: The requirements file currently pins urllib3>=2.7.0 which misleadingly
suggests an unavoidable conflict with legacy requests; update
examples/xgboost/smoke-dist/requirements.txt by removing the explicit
urllib3>=2.7.0 constraint or change it to a range that matches the minimum
requests version you intend to support (e.g., align urllib3 with the requests
minimum such as requests>=2.21.0), and ensure the requirements list only
specifies either requests (with its compatible urllib3 range) or a compatible
urllib3 range—reference the package names "requests" and "urllib3" in the
requirements to locate the entry.
In `@sdk/python/setup.py`:
- Line 29: The PoolManager/ProxyManager calls in
sdk/python/kubeflow/training/rest.py are using urllib3 1.x-style top-level
kwargs (maxsize, cert_reqs, ca_certs, cert_file, key_file, and
proxy_url/proxy_headers) which are incompatible with urllib3 2.x constructors;
update the code that constructs urllib3.PoolManager and urllib3.ProxyManager to
move TLS and pool settings into the connection_pool_kw dict (e.g., pass maxsize,
cert_reqs, ca_certs, cert_file, key_file inside connection_pool_kw) and call
ProxyManager with the proxy URL as the first positional argument (and proxy
headers via proxy_headers or connection_pool_kw per urllib3 2.x), ensuring the
code paths in rest.py that create these managers conform to urllib3>=2.7.0
signatures.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Central YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Enterprise
Run ID: 26cdb21c-dfa4-4032-8204-ab1c7b22e60d
📒 Files selected for processing (3)
examples/xgboost/smoke-dist/requirements.txtexamples/xgboost/xgboost-dist/requirements.txtsdk/python/setup.py
…uirements The xgboost examples do not import urllib3 directly; they use it transitively through requests. Keeping an explicit urllib3>=2.7.0 alongside requests>=2.21.0 is misleading because older requests versions cap urllib3<1.25. The SDK setup.py already carries the authoritative urllib3>=2.7.0 floor for CVE-2026-44432. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes CVE-2026-44432 (DoS via excessive HTTP response decompression)
by raising the urllib3 lower bound from 1.15.1/1.21.1 to 2.7.0 in
the Python SDK setup.py and XGBoost example requirements.
Summary by CodeRabbit