-
Notifications
You must be signed in to change notification settings - Fork 458
Fix SSRF request usage in Django views.py (line 543) #14675
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Bits AI Dev Agent Status: ✅ Done Status History (6 entries)
You can ask for changes by mentioning @DataDog in a comment. |
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 269 ± 4 ms. The average import time from base is: 272 ± 5 ms. The import time difference between this PR and base is: -3.0 ± 0.2 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate dd/validate-cookie-url-for-safe-redirect (31b2e0e) with baseline main (f98e713) 🟡 Near SLO Breach (3 suites)🟡 djangosimple - 28/28✅ appsecTime: ✅ 20.591ms (SLO: <22.300ms -7.7%) vs baseline: +0.1% Memory: ✅ 65.189MB (SLO: <67.000MB -2.7%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.348ms (SLO: <1.450ms -7.0%) vs baseline: +0.2% Memory: ✅ 64.291MB (SLO: <67.000MB -4.0%) vs baseline: +4.8% ✅ iastTime: ✅ 20.522ms (SLO: <22.250ms -7.8%) vs baseline: +0.3% Memory: ✅ 65.212MB (SLO: <67.000MB -2.7%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.320ms (SLO: <16.550ms -7.4%) vs baseline: +0.4% Memory: ✅ 53.320MB (SLO: <54.500MB -2.2%) vs baseline: +4.7% ✅ span-code-originTime: ✅ 26.158ms (SLO: <28.200ms -7.2%) vs baseline: -0.3% Memory: ✅ 67.294MB (SLO: <69.500MB -3.2%) vs baseline: +4.7% ✅ tracerTime: ✅ 20.432ms (SLO: <21.750ms -6.1%) vs baseline: -0.6% Memory: ✅ 65.275MB (SLO: <67.000MB -2.6%) vs baseline: +4.9% ✅ tracer-and-profilerTime: ✅ 22.105ms (SLO: <23.500ms -5.9%) vs baseline: -0.3% Memory: ✅ 66.389MB (SLO: <67.500MB 🟡 -1.6%) vs baseline: +4.8% ✅ tracer-dont-create-db-spansTime: ✅ 19.314ms (SLO: <21.500ms 📉 -10.2%) vs baseline: +0.1% Memory: ✅ 65.257MB (SLO: <66.000MB 🟡 -1.1%) vs baseline: +4.9% ✅ tracer-minimalTime: ✅ 16.633ms (SLO: <17.500ms -5.0%) vs baseline: ~same Memory: ✅ 65.219MB (SLO: <66.000MB 🟡 -1.2%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 20.514ms (SLO: <21.750ms -5.7%) vs baseline: -0.2% Memory: ✅ 71.093MB (SLO: <72.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ tracer-no-cachesTime: ✅ 18.458ms (SLO: <19.650ms -6.1%) vs baseline: ~same Memory: ✅ 65.223MB (SLO: <67.000MB -2.7%) vs baseline: +4.7% ✅ tracer-no-databasesTime: ✅ 18.800ms (SLO: <20.100ms -6.5%) vs baseline: -0.2% Memory: ✅ 64.904MB (SLO: <67.000MB -3.1%) vs baseline: +4.9% ✅ tracer-no-middlewareTime: ✅ 20.155ms (SLO: <21.500ms -6.3%) vs baseline: -0.5% Memory: ✅ 65.221MB (SLO: <67.000MB -2.7%) vs baseline: +4.7% ✅ tracer-no-templatesTime: ✅ 20.301ms (SLO: <22.000ms -7.7%) vs baseline: +0.1% Memory: ✅ 65.258MB (SLO: <67.000MB -2.6%) vs baseline: +4.8% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.073ms (SLO: <19.850ms -9.0%) vs baseline: +0.2% Memory: ✅ 65.127MB (SLO: <66.500MB -2.1%) vs baseline: +4.8% ✅ errortracking-enabled-userTime: ✅ 18.046ms (SLO: <19.400ms -7.0%) vs baseline: ~same Memory: ✅ 65.185MB (SLO: <66.500MB 🟡 -2.0%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 18.069ms (SLO: <19.450ms -7.1%) vs baseline: ~same Memory: ✅ 64.939MB (SLO: <66.500MB -2.3%) vs baseline: +4.9% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 45.198ms (SLO: <47.150ms -4.1%) vs baseline: +0.1% Memory: ✅ 45.098MB (SLO: <47.000MB -4.0%) vs baseline: +5.0% ✅ add-metricsTime: ✅ 321.975ms (SLO: <344.800ms -6.6%) vs baseline: +0.7% Memory: ✅ 553.615MB (SLO: <562.000MB 🟡 -1.5%) vs baseline: +5.0% ✅ add-tagsTime: ✅ 292.427ms (SLO: <314.000ms -6.9%) vs baseline: +0.7% Memory: ✅ 554.238MB (SLO: <563.500MB 🟡 -1.6%) vs baseline: +4.9% ✅ get-contextTime: ✅ 82.466ms (SLO: <92.350ms 📉 -10.7%) vs baseline: -0.3% Memory: ✅ 40.153MB (SLO: <46.500MB 📉 -13.6%) vs baseline: +4.9% ✅ is-recordingTime: ✅ 43.071ms (SLO: <44.500ms -3.2%) vs baseline: +0.2% Memory: ✅ 44.418MB (SLO: <47.500MB -6.5%) vs baseline: +4.8% ✅ record-exceptionTime: ✅ 61.528ms (SLO: <67.650ms -9.0%) vs baseline: -0.1% Memory: ✅ 40.403MB (SLO: <47.000MB 📉 -14.0%) vs baseline: +4.7% ✅ set-statusTime: ✅ 48.948ms (SLO: <50.400ms -2.9%) vs baseline: +0.2% Memory: ✅ 44.398MB (SLO: <47.000MB -5.5%) vs baseline: +4.8% ✅ startTime: ✅ 42.499ms (SLO: <43.450ms -2.2%) vs baseline: +0.7% Memory: ✅ 44.390MB (SLO: <47.000MB -5.6%) vs baseline: +4.8% ✅ start-finishTime: ✅ 82.716ms (SLO: <88.000ms -6.0%) vs baseline: -0.2% Memory: ✅ 34.564MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 84.091ms (SLO: <89.000ms -5.5%) vs baseline: -0.6% Memory: ✅ 34.564MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.8% ✅ update-nameTime: ✅ 44.339ms (SLO: <45.150ms 🟡 -1.8%) vs baseline: +0.6% Memory: ✅ 44.664MB (SLO: <47.000MB -5.0%) vs baseline: +4.8%
|
PR by Bits for Dev Agent Session identified by campaign Campaign for python-flask/ssrf-requests Sep. 03 2025 created by Tanishq Dubey.
You can ask for changes by mentioning @DataDog in a comment.
Feedback (especially what can be better) welcome in #code-gen-feedback!
Description
Addresses a static analysis violation (ssrf-requests) in unvalidated_redirect_safe_source_cookie by validating the cookie-provided redirect target. Replaces direct access to request.COOKIES["url"] with a safe .get(), validates via url_has_allowed_host_and_scheme restricted to the current host and appropriate scheme, and falls back to "/" when invalid or absent.
Testing
Risks
Additional Notes