Back to skill

Security audit

Go Ibkr

Security checks for vulnerabilities and agentic risk

Overview

This skill is a transparent Go integration guide for Interactive Brokers, with financial and TLS risks disclosed and scoped to user-directed brokerage use.

Install only if you intend to connect Go code to Interactive Brokers. Use paper trading for development, keep OAuth tokens out of source and logs, and do not reuse the TLS verification bypass for anything except a tightly controlled local Client Portal Gateway.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 26)May include surrounding context.

md
## Security & safety

- The client implements no login. With the Client Portal Gateway the user logs in in a browser and the gateway holds the session, so the code needs no credentials. With OAuth, read the access token from an environment variable or the user's own token code; never hardcode, commit or log it.
- Requests go only to the user's gateway or to `https://api.ibkr.com`. Skip TLS verification only for a gateway on the user's own machine, which serves a self-signed certificate. Never skip it for any other host.
- `SubmitNewOrder`, `ModifyOpenOrder`, `CancelOpenOrder`, `ConfirmOrderReply`, the model order endpoints and `Logout` act on a real brokerage account. Call them only when the user asked for that exact action, and prefer a paper trading login while developing.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/setup.md (reported line 30)May include surrounding context.

md
### OAuth

Get the access token with your own OAuth code; the client has no OAuth flow. Use `https://api.ibkr.com` as the base URL and set `Authorization: Bearer <token>` in an `ibkr.WithRequestEditorFn`.

## Client

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/setup.md (reported line 54)May include surrounding context.

md
| `SubmitNewOrderWithResponse` | `POST /v1/api/iserver/account/{accountId}/orders` |
| `ConfirmOrderReplyWithResponse` | `POST /v1/api/iserver/reply/{replyId}` |
| `ModifyOpenOrderWithResponse` | `POST /v1/api/iserver/account/{accountId}/order/{orderId}` |
| `CancelOpenOrderWithResponse` | `DELETE /v1/api/iserver/account/{accountId}/order/{orderId}` |
| `LogoutWithResponse` | `POST /v1/api/logout` |

`GetMdSnapshot` takes `Conids` as a comma-separated string and `Fields` as a comma-separated string of field codes. Its `JSON200` is a list of union items.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The setup guidance explicitly recommends disabling TLS certificate verification for the local gateway, which weakens transport security and can normalize insecure client configuration. Even if intended only for localhost with a self-signed certificate, this advice can be copied into broader use or expose users to local interception, malware, proxy abuse, or accidental reuse in non-local environments.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.