← Back to scan
File as GitHub Issue repo: TauricResearch/TradingAgents

Push this scan report to TauricResearch/TradingAgents

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

`self._update_final_report` used but never assigned in __init__

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
CRIT MINED007 [MINED007] Sql String Concat: cursor.execute(f"... {user_input} ...") — SQL injection. tradingagents/graph/checkpointer.py:85
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… tradingagents/llm_clients/openai_client…:170
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… tradingagents/dataflows/alpha_vantage_c…:79
HIGH SEC078 [SEC078] Python: requests without timeout: requests.get/post without a timeout will hang … tradingagents/dataflows/alpha_vantage_c…:79
HIGH MINED108 `self._update_final_report` used but never assigned in __init__ cli/main.py:189
HIGH MINED108 `self._update_current_report` used but never assigned in __init__ cli/main.py:160
HIGH MINED021 [MINED021] Path Traversal Os Join: os.path.join(user_dir, filename) where filename can co… tradingagents/default_config.py:3
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… tradingagents/graph/checkpointer.py:87
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… tradingagents/dataflows/yfinance_news.py:33
HIGH MINED001 [MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows e… tradingagents/__init__.py:15
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… tradingagents/llm_clients/azure_client.…:27
HIGH MINED118 Dockerfile FROM `python:3.12-slim` not pinned by digest Dockerfile:12
HIGH MINED118 Dockerfile FROM `python:3.12-slim` not pinned by digest Dockerfile:1
HIGH GHSA-gm62-xv2j-4w53 urllib3: GHSA-gm62-xv2j-4w53 uv.lock
HIGH GHSA-38jv-5279-wg99 urllib3: GHSA-38jv-5279-wg99 uv.lock
HIGH GHSA-2xpw-w6gg-jr37 urllib3: GHSA-2xpw-w6gg-jr37 uv.lock
HIGH PYSEC-2026-141 urllib3: PYSEC-2026-141 uv.lock
HIGH GHSA-7f5h-v6xp-fcq8 starlette: GHSA-7f5h-v6xp-fcq8 uv.lock
HIGH PYSEC-2026-161 starlette: PYSEC-2026-161 uv.lock
HIGH GHSA-wp53-j4wj-2cfg python-multipart: GHSA-wp53-j4wj-2cfg uv.lock
HIGH GHSA-pp6c-gr5w-3c5g python-multipart: GHSA-pp6c-gr5w-3c5g uv.lock
HIGH PYSEC-2026-120 pyjwt: PYSEC-2026-120 uv.lock
HIGH PYSEC-2025-183 pyjwt: PYSEC-2025-183 uv.lock
HIGH GHSA-jr27-m4p2-rc6r pyasn1: GHSA-jr27-m4p2-rc6r uv.lock
HIGH GHSA-63vm-454h-vhhq pyasn1: GHSA-63vm-454h-vhhq uv.lock
HIGH GHSA-7gcm-g887-7qv7 protobuf: GHSA-7gcm-g887-7qv7 uv.lock
HIGH PYSEC-2026-107 orjson: PYSEC-2026-107 uv.lock
HIGH GHSA-j975-95f5-7wqh mcp: GHSA-j975-95f5-7wqh uv.lock
HIGH GHSA-9h52-p55h-vw2f mcp: GHSA-9h52-p55h-vw2f uv.lock
HIGH PYSEC-2026-87 lxml: PYSEC-2026-87 uv.lock
HIGH GHSA-3644-q5cj-c5c7 langsmith: GHSA-3644-q5cj-c5c7 uv.lock
HIGH GHSA-wwqv-p2pp-99h5 langgraph-checkpoint: GHSA-wwqv-p2pp-99h5 uv.lock
HIGH PYSEC-2026-83 langgraph: PYSEC-2026-83 uv.lock
HIGH GHSA-m42m-m8cr-8m58 langchain-text-splitters: GHSA-m42m-m8cr-8m58 uv.lock
HIGH PYSEC-2026-77 langchain-text-splitters: PYSEC-2026-77 uv.lock
HIGH PYSEC-2026-76 langchain-openai: PYSEC-2026-76 uv.lock
HIGH GHSA-qh6h-p6c9-ff54 langchain-core: GHSA-qh6h-p6c9-ff54 uv.lock
HIGH GHSA-pjwx-r37v-7724 langchain-core: GHSA-pjwx-r37v-7724 uv.lock
HIGH GHSA-pc6w-59fv-rh23 langchain-community: GHSA-pc6w-59fv-rh23 uv.lock
HIGH GHSA-3644-q5cj-c5c7 langchain: GHSA-3644-q5cj-c5c7 uv.lock
HIGH GHSA-qw2m-4pqf-rmpp curl-cffi: GHSA-qw2m-4pqf-rmpp uv.lock
HIGH GHSA-2g59-m95p-pgfq chainlit: GHSA-2g59-m95p-pgfq uv.lock
HIGH GHSA-6mq8-rvhq-8wgg aiohttp: GHSA-6mq8-rvhq-8wgg uv.lock
HIGH SEC004 [SEC004] SQL Injection Risk: String interpolation in SQL execution. Allows SQL injection. tradingagents/graph/checkpointer.py:85
MED MINED111 Bare except continues silently tradingagents/dataflows/alpha_vantage_i…:225
MED MINED111 Bare except continues silently tradingagents/dataflows/y_finance.py:453
MED MINED111 Bare except continues silently tradingagents/dataflows/y_finance.py:426
MED MINED111 Bare except continues silently tradingagents/dataflows/y_finance.py:391
MED MINED111 Bare except continues silently tradingagents/dataflows/y_finance.py:356
MED MINED111 Bare except continues silently tradingagents/dataflows/y_finance.py:321
MED MINED111 Bare except continues silently tradingagents/dataflows/y_finance.py:249
MED MINED111 Bare except continues silently tradingagents/dataflows/y_finance.py:174
MED MINED111 Bare except continues silently tradingagents/dataflows/interface.py:167
MED MINED111 Bare except continues silently tradingagents/dataflows/alpha_vantage_c…:132
MED MINED111 Bare except continues silently cli/main.py:1279
MED MINED111 Bare except continues silently cli/utils.py:185
MED SEC123 [SEC123] Production stack trace / debug output exposed: Debug mode left on in production … main.py:12
MED MINED111 Bare except continues silently tradingagents/dataflows/yfinance_news.py:201
MED MINED111 Bare except continues silently tradingagents/dataflows/yfinance_news.py:107
MED MINED111 Bare except continues silently tradingagents/dataflows/market_data_val…:81
MED MINED109 Mutable default argument in `__init__` (list) tradingagents/graph/trading_graph.py:55
MED MINED109 Mutable default argument in `setup_graph` (list) tradingagents/graph/setup.py:32
MED MINED111 Bare except continues silently cli/announcements.py:23
MED COMP001 [COMP001] High cognitive complexity: Function `build_instrument_context` has cognitive co… tradingagents/agents/utils/agent_utils.…:98
MED DKR003 Compose service `ollama` image uses the latest tag docker-compose.yml:10
MED MINED124 requirements.txt: `.` has no version pin requirements.txt:1
MED GHSA-pq67-6m6q-mj2v urllib3: GHSA-pq67-6m6q-mj2v uv.lock
MED GHSA-48p4-8xcf-vxj5 urllib3: GHSA-48p4-8xcf-vxj5 uv.lock
MED GHSA-2c2j-9gv5-cj73 starlette: GHSA-2c2j-9gv5-cj73 uv.lock
MED GHSA-gc5v-m9x4-r6x2 requests: GHSA-gc5v-m9x4-r6x2 uv.lock
MED GHSA-g8c6-8fjj-2r4m python-socketio: GHSA-g8c6-8fjj-2r4m uv.lock
MED GHSA-mj87-hwqh-73pj python-multipart: GHSA-mj87-hwqh-73pj uv.lock
MED GHSA-mf9w-mj56-hr94 python-dotenv: GHSA-mf9w-mj56-hr94 uv.lock
MED GHSA-428g-f7cq-pgp5 marshmallow: GHSA-428g-f7cq-pgp5 uv.lock
MED GHSA-rr7j-v2q5-chgv langsmith: GHSA-rr7j-v2q5-chgv uv.lock
MED GHSA-mhr3-j7m5-c7c9 langgraph-checkpoint: GHSA-mhr3-j7m5-c7c9 uv.lock
MED GHSA-926x-3r5x-gfhw langchain-core: GHSA-926x-3r5x-gfhw uv.lock
MED GHSA-65pc-fj4g-8rjx idna: GHSA-65pc-fj4g-8rjx uv.lock
MED GHSA-w853-jp5j-5j7f filelock: GHSA-w853-jp5j-5j7f uv.lock
MED GHSA-qmgc-5h2g-mvrw filelock: GHSA-qmgc-5h2g-mvrw uv.lock
MED GHSA-w2fm-2cpv-w7v5 aiohttp: GHSA-w2fm-2cpv-w7v5 uv.lock
MED GHSA-p998-jp59-783m aiohttp: GHSA-p998-jp59-783m uv.lock
MED GHSA-m5qp-6w8w-w647 aiohttp: GHSA-m5qp-6w8w-w647 uv.lock
MED GHSA-jj3x-wxrx-4x23 aiohttp: GHSA-jj3x-wxrx-4x23 uv.lock
MED GHSA-g84x-mcqj-x9qq aiohttp: GHSA-g84x-mcqj-x9qq uv.lock
MED GHSA-c427-h43c-vf67 aiohttp: GHSA-c427-h43c-vf67 uv.lock
MED GHSA-6jhg-hg63-jvvf aiohttp: GHSA-6jhg-hg63-jvvf uv.lock
MED DKR014 Dockerfile copies broad context with incomplete .dockerignore Dockerfile:10
MED CORE_NO_CI No CI/CD configuration found
LOW COMP001 [COMP001] High cognitive complexity: Function `batch_update_with_outcomes` has cognitive … tradingagents/agents/utils/memory.py:165
LOW COMP001 [COMP001] High cognitive complexity: Function `main` has cognitive complexity 9 (SonarSou… scripts/smoke_structured_output.py:107
LOW GHSA-5239-wwwm-4pmq pygments: GHSA-5239-wwwm-4pmq uv.lock
LOW GHSA-2g6r-c272-w58r langchain-core: GHSA-2g6r-c272-w58r uv.lock
LOW GHSA-v492-6xx2-p57g chainlit: GHSA-v492-6xx2-p57g uv.lock
LOW GHSA-mwh4-6h8g-pg8w aiohttp: GHSA-mwh4-6h8g-pg8w uv.lock
LOW GHSA-mqqc-3gqh-h2x8 aiohttp: GHSA-mqqc-3gqh-h2x8 uv.lock
LOW GHSA-hcc4-c3v8-rx92 aiohttp: GHSA-hcc4-c3v8-rx92 uv.lock
LOW GHSA-fh55-r93g-j68g aiohttp: GHSA-fh55-r93g-j68g uv.lock
LOW GHSA-966j-vmvw-g2g9 aiohttp: GHSA-966j-vmvw-g2g9 uv.lock
LOW GHSA-9548-qrrj-x5pj aiohttp: GHSA-9548-qrrj-x5pj uv.lock
LOW GHSA-69f9-5gxw-wvc2 aiohttp: GHSA-69f9-5gxw-wvc2 uv.lock
LOW GHSA-63hf-3vf5-4wqf aiohttp: GHSA-63hf-3vf5-4wqf uv.lock
LOW GHSA-54jq-c3m8-4m76 aiohttp: GHSA-54jq-c3m8-4m76 uv.lock
LOW GHSA-3wq7-rqq7-wx6j aiohttp: GHSA-3wq7-rqq7-wx6j uv.lock
LOW GHSA-2vrm-gr82-f7m5 aiohttp: GHSA-2vrm-gr82-f7m5 uv.lock
LOW AIC003 Duplicated implementation block across source files tradingagents/agents/researchers/bull_r…:10
LOW AIC003 Duplicated implementation block across source files tradingagents/agents/analysts/market_an…:43
LOW AIC003 Duplicated implementation block across source files tradingagents/agents/analysts/news_anal…:23
LOW AIC003 Duplicated implementation block across source files tradingagents/agents/analysts/news_anal…:21
LOW DKR008 .dockerignore misses sensitive defaults .dockerignore
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yml:17
LOW DKC010 Compose service lacks no-new-privileges hardening docker-compose.yml:1
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… tradingagents/dataflows/alpha_vantage_c…:18
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… tradingagents/dataflows/alpha_vantage_c…:79
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. tradingagents/llm_clients/capabilities.…:30
INFO MINED043 [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle cr… tradingagents/dataflows/reddit.py:41
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… tradingagents/agents/utils/structured.py:39
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… tradingagents/__init__.py:16
INFO MINED069 [MINED069] Debug True Prod: Django/Flask DEBUG=True or app.debug=True in non-test files. main.py:12
INFO MINED067 [MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang f… cli/announcements.py:16
Reset to top 5 120 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `TauricResearch/TradingAgents`

**Score: 78/100 (B)**  ·  151 findings  ·  scanned 2026-06-01 04:00 UTC  ·  12,525 LOC

| Severity | Count |
|---|---|
| CRITICAL | 1 |
| HIGH | 43 |
| MEDIUM | 45 |
| LOW | 23 |

📊 [Full filterable report](https://repobility.com/scan/079f1bd0-c494-4d7d-898d-1981499462db/)  ·  ![scorecard](https://repobility.com/scan/079f1bd0-c494-4d7d-898d-1981499462db/report.png?v=1780286436-s2)

### Top findings

1. **CRITICAL** `MINED007` — Sql String Concat
   `tradingagents/graph/checkpointer.py:85` · CWE-89 · ✓ Repobility
2. **HIGH** `SEC029` — Server-Side Request Forgery (SSRF) — outbound HTTP from user input
   `tradingagents/llm_clients/openai_client.py:170` · A10:2021 SSRF
3. **HIGH** `SEC029` — Server-Side Request Forgery (SSRF) — outbound HTTP from user input
   `tradingagents/dataflows/alpha_vantage_common.py:79` · A10:2021 SSRF
4. **HIGH** `SEC078` — Python: requests without timeout
   `tradingagents/dataflows/alpha_vantage_common.py:79` · A05:2021 Security Misconfiguration
5. **HIGH** `MINED108` — `self._update_final_report` used but never assigned in __init__
   `cli/main.py:189` · ✓ Repobility

---

**Security note**: this issue is public. If any flagged finding is a real, exploitable vulnerability, please redirect to your `SECURITY.md` policy or open a [private security advisory](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability) instead. We're happy to close this and re-submit privately.

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/079f1bd0-c494-4d7d-898d-1981499462db/_
Megaproject â high spam risk
Could not determine 'TauricResearch/TradingAgents' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.