Back to skill

Security audit

Food402 - TGO Yemek

Security checks for vulnerabilities and agentic risk

Overview

This skill is for real food ordering, but it handles account credentials, addresses, carts, and payments with insecure local secret and payment-page handling, so it needs careful review before installation.

Install only if you trust this publisher with your Trendyol GO account, saved addresses, cart contents, masked card metadata, and order placement. Prefer using a dedicated secret manager instead of shell-profile exports, restrict or omit the Google Places key unless needed, and require explicit user confirmation before any address, cart, or payment change.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (5)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/auth.sh:69
Finding
JWT cached in predictable shared temporary files without restrictive permissions<![CDATA[ ## Vulnerability Details **File Location**: `scripts/auth.sh:69-73` **Vulnerability Type**: Insecure temporary-file handling and sensitive token exposure **Risk Level**: High ### Vulnerable Code ```bash # Cache token and expiry echo "$token" > "$TOKEN_FILE" local expiry expiry=$(decode_jwt_expiry "$token") echo "$expiry" > "$EXPIRY_FILE" ``` The destination paths are statically defined at `scripts/auth.sh:9-10`: ```bash TOKEN_FILE="/tmp/food402-token" EXPIRY_FILE="/tmp/food402-token-expiry" ``` ### Technical Analysis The authentication JWT is written under globally shared `/tmp` using predictable filenames. The script does not: - Set a restrictive `umask`. - Create the files atomically. - Verify file ownership or type. - Reject symbolic links. - Explicitly set mode `0600`. - Separate caches by user or session. The resulting permissions depend on the caller's existing `umask`. Under a common `022` configuration, newly created files may be readable by other local users. Predictable names also create symlink and file-collision risks. Processes running under the same account can replace or poison the cached token, while permissive host configurations may expose it across accounts. The JWT is a bearer credential. Possession is sufficient to invoke the account, address, cart, order-history, and payment-related APIs until expiration. ### Attack Path 1. A victim invokes `auth.sh get-token`, which authenticates to TGO. 2. The returned bearer token is written to `/tmp/food402-token`. 3. A local attacker monitors or reads the predictable file if host permissions allow it. 4. The attacker submits the stolen JWT in an `Authorization: Bearer` header to the documented TGO APIs. 5. The attacker can access account data or modify the victim's cart and delivery settings within the token's server-side authorization scope. A same-account malicious process can also replace the cached file before a later API call, causing requests to execute under a different acc ...[truncated 539 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Store the cache in a user-private runtime directory such as `${XDG_RUNTIME_DIR}`. - If a fallback is necessary, use a per-user directory under `/tmp` created with mode `0700`. - Set `umask 077` before creating any credential-bearing files. - Create files atomically with `mktemp`, verify ownership, and reject symbolic links. - Set token-file permissions explicitly to `0600`. - Include the effective user ID in the cache location and do not share tokens between users. - Prefer an operating-system credential store or keychain where available. - Remove both files on logout and consider avoiding persistent token storage entirely. Example hardening pattern: ```bash umask 077 CACHE_DIR="${XDG_RUNTIME_DIR:-/tmp}/food402-${UID}" mkdir -p "$CACHE_DIR" chmod 700 "$CACHE_DIR" TOKEN_FILE="$CACHE_DIR/token" EXPIRY_FILE="$CACHE_DIR/token-expiry" tmp_token=$(mktemp "$CACHE_DIR/token.XXXXXX") printf '%s\n' "$token" > "$tmp_token" chmod 600 "$tmp_token" mv -f "$tmp_token" "$TOKEN_FILE" ``` ]]>

T09 · Insecure Skill Coding Practices

Error
Location
scripts/auth.sh:54
Finding
TGO password is placed in the curl process command line<![CDATA[ ## Vulnerability Details **File Location**: `scripts/auth.sh:54-58` **Vulnerability Type**: Credential disclosure through process arguments **Risk Level**: High ### Vulnerable Code ```bash login_response=$(curl -s -c - -X POST "https://tgoyemek.com/api/auth/login" \ -H "Content-Type: text/plain;charset=UTF-8" \ -H "Cookie: tgo-csrf-token=$csrf_token" \ -H "User-Agent: $USER_AGENT" \ -d "{\"username\":\"$TGO_EMAIL\",\"password\":\"$TGO_PASSWORD\",\"csrfToken\":\"$csrf_token\"}" 2>/dev/null) ``` ### Technical Analysis The complete login request, including `TGO_EMAIL`, `TGO_PASSWORD`, and the CSRF token, is passed to `curl` through the `-d` command-line argument. While the HTTPS connection protects the request in transit, it does not protect process arguments on the local host. Depending on the operating system and process-visibility configuration, another local user, monitoring agent, crash collector, shell-debugging mechanism, or same-account process may observe the command line through facilities such as `/proc/<pid>/cmdline` or process-inspection utilities. The JSON is also assembled through direct string interpolation. Credentials containing quotation marks, backslashes, or control characters can produce malformed JSON, causing authentication failure or unintended field construction. ### Attack Path 1. The victim invokes a command that triggers `do_login`. 2. `curl` runs with the plaintext password embedded in its argument vector. 3. A local attacker repeatedly inspects process command lines while waiting for the short-lived login process. 4. The attacker captures the email and password from the `-d` argument. 5. The attacker authenticates directly to the victim's TGO account from another client. The observation window is brief, but repeated polling makes exploitation practical for a resident local process. ### Impact Assessment Unlike the cached JWT, disclosure of the password can provide durable account access beyond one token li ...[truncated 372 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Generate the JSON body with `jq` or another serializer so credentials are escaped correctly. - Supply the body to `curl` through standard input using `--data-binary @-`. - Disable shell tracing around credential operations and never log the generated body. - Use a protected cookie jar or standard authentication client rather than manually parsing cookie output. Example: ```bash login_body=$( jq -n \ --arg username "$TGO_EMAIL" \ --arg password "$TGO_PASSWORD" \ --arg csrfToken "$csrf_token" \ '{username: $username, password: $password, csrfToken: $csrfToken}' ) login_response=$( printf '%s' "$login_body" | curl --silent --show-error --fail-with-body \ -c - \ -X POST "https://tgoyemek.com/api/auth/login" \ -H "Content-Type: application/json" \ -H "Cookie: tgo-csrf-token=$csrf_token" \ -H "User-Agent: $USER_AGENT" \ --data-binary @- ) unset login_body ``` Where supported, prefer a dedicated credential helper or secret manager instead of long-lived environment variables. ]]>

T09 · Insecure Skill Coding Practices

Error
Location
scripts/3dsecure.sh:8
Finding
3D Secure HTML is exposed through command arguments and an unsafe predictable temporary file<![CDATA[ ## Vulnerability Details **File Location**: `scripts/3dsecure.sh:8-17` **Vulnerability Type**: Sensitive data exposure, temporary-file race, and unsafe active-content handling **Risk Level**: High ### Vulnerable Code ```bash HTML_CONTENT="${1:-}" if [ -z "$HTML_CONTENT" ]; then echo '{"error": "HTML content required"}' >&2 exit 1 fi # Create temp file TEMP_FILE="/tmp/food402-3dsecure-$(date +%s).html" echo "$HTML_CONTENT" > "$TEMP_FILE" ``` The file is then opened as active browser content at `scripts/3dsecure.sh:19-38`: ```bash case "$(uname -s)" in Darwin) open "$TEMP_FILE" ;; Linux) if command -v xdg-open &>/dev/null; then xdg-open "$TEMP_FILE" elif command -v gnome-open &>/dev/null; then gnome-open "$TEMP_FILE" else echo '{"error": "No browser opener found (xdg-open or gnome-open)"}' >&2 exit 1 fi ;; CYGWIN*|MINGW*|MSYS*) start "" "$TEMP_FILE" ;; ``` ### Technical Analysis The full payment-provider HTML is accepted as a positional command-line argument. This can expose transaction identifiers, URLs, form fields, or other embedded values through process inspection. The HTML is then written to a timestamp-derived filename in shared `/tmp`. The implementation does not use `mktemp`, set restrictive permissions, verify ownership, or prevent symbolic-link following. An attacker who predicts the current second may pre-create the path or a symbolic link. Depending on host protections and permissions, this can cause content disclosure, file corruption, or substitution of the page opened by the victim. Opening server-supplied HTML as a local `file://` document also executes active content in a different origin context than the payment provider intended. Browser protections reduce some risks, but local-file behavior and access rules vary by browser and platform. A compromised payment response, local file substitution, or malicious same-account process could therefore present a phi ...[truncated 1389 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Do not pass payment HTML as a command-line argument. - Accept HTML through standard input or a pre-created protected file descriptor. - Use `mktemp` in a private directory and enforce mode `0600`. - Set `umask 077`. - Install an `EXIT`, `INT`, and `TERM` trap to remove the file reliably. - Prefer opening the payment provider's validated HTTPS redirect URL instead of rendering response HTML under `file://`. - Allow only documented HTTPS destinations on an explicit provider-domain allowlist. - If HTML rendering is unavoidable, serve it from a short-lived loopback HTTP listener with strict origin controls and a random unguessable path. - Never log the HTML or return its path if doing so unnecessarily expands disclosure. Example basic file hardening: ```bash set -euo pipefail umask 077 RUNTIME_DIR="${XDG_RUNTIME_DIR:-/tmp}/food402-${UID}" mkdir -p "$RUNTIME_DIR" chmod 700 "$RUNTIME_DIR" TEMP_FILE=$(mktemp "$RUNTIME_DIR/3dsecure.XXXXXX.html") trap 'rm -f "$TEMP_FILE"' EXIT INT TERM cat > "$TEMP_FILE" chmod 600 "$TEMP_FILE" ``` The caller should then pipe the HTML into the script rather than providing it in `argv`. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:35
Finding
Documentation recommends persistent plaintext storage of account credentials<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:35-44` **Vulnerability Type**: Insecure secret storage guidance **Risk Level**: Medium ### Vulnerable Code ```bash Set environment variables in your shell profile (`~/.bashrc`, `~/.zshrc`, etc.): ```bash export TGO_EMAIL="your-tgo-email@example.com" export TGO_PASSWORD="your-tgo-password" export GOOGLE_PLACES_API_KEY="your-google-api-key" # Optional: for Google Reviews ``` Then reload your shell or run `source ~/.zshrc` (or equivalent). ``` ### Technical Analysis The setup instructions recommend writing the TGO password and Google API key directly into shell startup files. These files are persistent plaintext configuration and are commonly included in backups, copied during workstation migration, read by shell plugins, or exposed by accidental repository commits and diagnostic bundles. Exported variables are inherited by every descendant process launched from the shell, even when those processes do not need access to the TGO password or Google key. This violates least privilege and increases the number of processes and tools capable of reading the secrets. Persistent plaintext storage is not necessary for the Skill's declared functionality. Credentials can instead be obtained at runtime from a scoped secret manager or protected credential file. ### Attack Path 1. A user follows the documented setup and places the real password and API key in a shell profile. 2. A malicious shell plugin, local process, backup reader, support archive, or accidentally published dotfiles repository obtains the profile. 3. The attacker extracts the plaintext secrets. 4. The TGO password is used for account login, while the Google key is used against enabled Google APIs or to consume the victim's quota. ### Impact Assessment TGO credential exposure can lead to account takeover and disclosure or modification of food-ordering data. Google API-key exposure may result in unauthorized API usage, quota exhaustion, ...[truncated 154 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Replace the shell-profile recommendation with a supported secret manager, such as the operating-system keychain or the agent platform's encrypted secret store. - Retrieve credentials only immediately before authentication. - Do not export secrets globally to all descendant processes. - If a file-based fallback is unavoidable, use a dedicated file outside the project directory with mode `0600`, strict ownership checks, and clear warnings against committing or backing it up insecurely. - Encourage use of a revocable TGO application token if the service supports one instead of the account password. - Instruct users to restrict Google API keys by API, application, referrer or IP as appropriate, and configure quota and billing alerts. - Document secret rotation procedures following suspected exposure. ]]>

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:1
Finding
Optional Google Places key is declared as a globally required Skill secret<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:1-4` **Vulnerability Type**: Excessive secret access and violation of least privilege **Risk Level**: Medium ### Vulnerable Code ```yaml --- name: food402 description: Order food from TGO Yemek (Trendyol GO), Turkey's leading food delivery service. Use when user wants to order food delivery in Turkey, browse restaurants, search for foods, manage delivery addresses, check order history, or checkout with 3D Secure payment. metadata: {"openclaw": {"emoji": "🍕", "requires": {"bins": ["curl", "jq", "openssl"], "env": ["TGO_EMAIL", "TGO_PASSWORD", "GOOGLE_PLACES_API_KEY"]}, "primaryEnv": "TGO_EMAIL"}} ``` The key is described as optional later at `SKILL.md:600-609`: ```markdown ## Google Reviews (Optional) ### get_google_reviews Fetch Google Maps rating and reviews for a restaurant. **Requires GOOGLE_PLACES_API_KEY env var.** ... This operation uses Google Places API to find the restaurant and compare ratings. Only use if GOOGLE_PLACES_API_KEY is configured. ``` ### Technical Analysis The metadata places `GOOGLE_PLACES_API_KEY` in the Skill-wide required environment list even though Google Reviews are explicitly optional and unrelated to the core food-ordering workflow. This grants the entire Skill process access to a third-party credential whenever the Skill is loaded. No implementation in the reviewed scripts actually references or transmits this key. Therefore, the static pre-scan's flagged line does not itself demonstrate active exfiltration. The confirmed issue is excessive credential scope: the package requests access to a secret that its implemented core functionality does not require. If any script, shell command, dependency, or future update executed in the Skill context is compromised, the unnecessarily injected key becomes available for theft. This increases the blast radius without providing current functionality. ### Attack Path 1. A user configures a valuable Google Places API ...[truncated 1112 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Remove `GOOGLE_PLACES_API_KEY` from the Skill-wide `requires.env` list. - Request or inject the key only when the user explicitly invokes the optional Google Reviews operation. - Run optional integrations in a separate, narrowly scoped process that receives only the required key. - Do not expose TGO credentials to the Google integration, and do not expose the Google key to TGO-only operations. - Implement the optional feature explicitly or remove its documentation; the current package advertises it without reviewed implementation. - Require Google API restrictions, including Places-only API scope, suitable application restrictions, low quotas, and billing alerts. - Ensure the key is transmitted only to documented Google HTTPS endpoints and never included in logs, URLs where avoidable, or user-visible output. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (40)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
This code chunk is narrowly focused on authentication support, not the broader end-user food delivery capabilities claimed in the description. While auth can be a supporting component of such a skill, the declared purpose suggests a complete ordering workflow and multiple user-facing features that are absent from the supplied code. The code also relies on TGO_EMAIL and TGO_PASSWORD environment variables and stores tokens in /tmp, which are implementation capabilities not mentioned in the declared description. Therefore the description does not accurately represent what this code chunk actually does.

Chaining Abuse

High
Category
Tool Misuse
Content
echo "{\"success\": true, \"message\": \"3D Secure page opened in browser\", \"tempFile\": \"$TEMP_FILE\"}"

# Clean up after 5 minutes in background
(sleep 300 && rm -f "$TEMP_FILE") &>/dev/null &
Confidence
75% confidence
Finding
Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill documents extensive shell-based network and payment operations but does not declare any explicit tool scope or allowed-tools boundary. That makes the runtime permissions opaque and increases the chance an agent can invoke shell unexpectedly or more broadly than reviewers and users expect, especially for authenticated account actions.

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The description says to use the skill whenever the user wants food delivery 'in Turkey,' which imposes a country-specific service scope. Under the policy, locale constraints should either be user-selectable or clearly documented as justified; the file does not explicitly frame this as a region-specific limitation the user must opt into.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/addresses" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
80% confidence
Finding
Retrieving saved delivery addresses sends and receives personal address data tied to an authenticated account from an external API. That is expected for the skill, but the combination of PII, shell execution, and token-based auth makes this security-relevant because leakage of responses or tokens would expose sensitive location information.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X POST "https://api.tgoapis.com/web-checkout-apicheckout-santral/shipping" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
84% confidence
Finding
This external call changes shipping/invoice address selection for the authenticated cart, affecting where an order may be delivered. Because it modifies live account state and uses location-linked identifiers, misuse could redirect orders or expose personal address associations.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X POST "https://api.tgoapis.com/web-checkout-apicheckout-santral/shipping" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
84% confidence
Finding
This external call changes shipping/invoice address selection for the authenticated cart, affecting where an order may be delivered. Because it modifies live account state and uses location-linked identifiers, misuse could redirect orders or expose personal address associations.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X POST "https://api.tgoapis.com/web-user-apimemberaddress-santral/addresses" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
86% confidence
Finding
Adding a new delivery address transmits substantial personal data, including name, phone number, street address, and exact coordinates, to an external service. This is highly sensitive PII, and the skill context makes it more dangerous because free-form parameter interpolation in shell examples increases the risk of accidental disclosure or misuse if inputs are not carefully handled.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-user-apimemberaddress-santral/cities" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X POST "https://api.tgoapis.com/web-restaurant-apirestaurant-santral/restaurants/{restaurantId}/products/{productId}?latitude={latitude}&longitude={longitude}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X POST "https://api.tgoapis.com/web-discovery-apidiscovery-santral/recommendation/product" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X POST "https://api.tgoapis.com/web-checkout-apicheckout-santral/carts/items" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
88% confidence
Finding
Adding items to a basket under an authenticated account is a state-changing operation that combines order details with precise location data. In the context of an agent skill, that raises material risk of unauthorized purchases or cart manipulation if the shell pathway, parameters, or token cache are abused.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X POST "https://api.tgoapis.com/web-checkout-apicheckout-santral/carts/items" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
88% confidence
Finding
Adding items to a basket under an authenticated account is a state-changing operation that combines order details with precise location data. In the context of an agent skill, that raises material risk of unauthorized purchases or cart manipulation if the shell pathway, parameters, or token cache are abused.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-checkout-apicheckout-santral/carts" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
80% confidence
Finding
Reading the current basket reveals purchase intent, merchant information, and pricing associated with an authenticated user session. This is sensitive transactional data, and leaking it through logs or unintended outputs would expose private consumer behavior.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X DELETE "https://api.tgoapis.com/web-checkout-apicheckout-santral/carts/items/{itemId}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
84% confidence
Finding
Removing an item from the basket modifies a live order state for the authenticated user. That creates integrity risk: an agent or attacker with access to the skill could silently alter the user's intended purchase.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X DELETE "https://api.tgoapis.com/web-checkout-apicheckout-santral/carts" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
87% confidence
Finding
Clearing the entire basket is a destructive account action executed via an authenticated external request. In an agent environment, a mistaken or malicious invocation can immediately wipe pending purchase selections and materially affect the user's transaction flow.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s "https://api.tgoapis.com/web-checkout-apicheckout-santral/carts?cartContext=payment&limitPromoMbs=false" \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-correlationid: $(uuidgen)" \
  -H "pid: $(uuidgen)" \
Confidence
81% confidence
Finding
Checkout readiness requests expose sensitive cart and pricing data in a payment context, potentially including warnings or conditions relevant to order completion. This is legitimate behavior, but the data sensitivity is elevated because it is tied to an authenticated commerce session.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
TOKEN=$({baseDir}/scripts/auth.sh get-token)
curl -s -X PUT "https://api.tgoapis.com/web-checkout-apicheckout-santral/carts/customerNote" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -H "x-correlationid: $(uuidgen)" \
Confidence
82% confidence
Finding
Updating customer notes and delivery preferences transmits potentially sensitive household or personal instructions to an external service. Free-text fields increase the chance of oversharing, accidental retention, or inappropriate display if not carefully handled.

Static analysis

No suspicious patterns detected.