Back to skill

Security audit

Auth0 Flask

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly legitimate Auth0 Flask guidance, but bundled setup and evaluation tooling includes high-impact actions that need review before installation.

Install only if you are comfortable reviewing the setup steps manually. Avoid running the automated setup script as-is; install the Auth0 CLI from a pinned, verified release or package manager path. Do not run the bundled eval runner on projects containing secrets unless .env and other credential files are excluded and you accept sending selected source content to an external model.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (3)

T03 · Remote Payload Retrieval and Execution

Error
Location
references/setup.md:44
Finding

Mutable Remote Installation Script Is Executed Directly Through a Shell

Content
View full analysis
/dev/null; then [[ "$OSTYPE" == "darwin"* ]] && brew install auth0/auth0-cli/auth0 || \ curl -sSfL https://raw.githubusercontent.com/auth0/auth0-cli/main/install.sh | sh -s -- -b /usr/local/bin fi ``` ### Technical Analysis The setup guide downloads `install.sh` from the mutable `main` branch of an external GitHub repository and immediately pipes it into `sh`. The downloaded content is neither displayed for review nor verified against a pinned cryptographic checksum or signature. Although the URL belongs to the official Auth0 GitHub organization, using a mutable branch means that the effective code executed by the Skill can change after the Skill itself has been reviewed. Compromise of the upstream repository, maintainer account, release process, or delivery channel could therefore turn this installation command into arbitrary shell execution. The command also requests installation into `/usr/local/bin`, which is a system-wide executable directory. This exceeds the minimum privileges required to document or configure a Flask integration. If the setup is run by a privileged agent or inside a root container, the remote script can modify system files with the agent's full privileges. This is a supply-chain execution weakness rather than evidence that the current Auth0 script is intentionally malicious. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or another component capable of changing the contents returned for `main/install.sh`. 2. The attacker inserts arbitrary commands into the remote installation script. 3. A user or agent follows the automated setup instructions on a system without the `auth0` command. 4. `curl` retrieves the attacker-controlled content. 5. The conten ...[truncated 966 chars]
Remediation
View remediation
" INSTALLER="$(mktemp)" curl --proto '=https' --tlsv1.2 -fL \ "https://raw.githubusercontent.com/auth0/auth0-cli//install.sh" \ -o "$INSTALLER" printf '%s %s\n' "" "$INSTALLER" | sha256sum -c - less "$INSTALLER" sh "$INSTALLER" -b "$HOME/.local/bin" rm -f "$INSTALLER" ``` The checksum must come from an independently authenticated, publisher-controlled release channel. ]]>

T09 · Insecure Skill Coding Practices

Error
Location
tests/run-evals.mjs:44
Finding

Evaluation Runner Can Upload Project Files and Environment Files to an External Model

Content
View full analysis
`--- ${path.relative(workspaceDir, s.path)} ---\n${s.content.slice(0, 3000)}`) .join("\n\n") let questionBlock = grader.question if (grader.examples) { questionBlock += `\n\n## Examples\n${grader.examples}` } const judgePrompt = `You are evaluating code quality. Review the following source files and answer this question: ${questionBlock} Answer with exactly "YES" or "NO" on the first line, followed by a brief explanation. ${fileSummary}` const judgeArgs = ["-p", judgePrompt, "--permission-mode", "dontAsk", "--no-session-persistence"] if (MODEL) judgeArgs.push("--model", MODEL) try { const { stdout } = await $({ timeout: 60000, })`claude ${judgeArgs}` ``` Age ...[truncated 3884 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:212
Finding

Generated Flask Profile Route Renders Unescaped Identity Claims as HTML

Content
View full analysis
{user['name']}" f"

Email: {user['email']}

" f"{user[" f"

Logout

" ) ``` ### Technical Analysis The example constructs an HTML response with Python f-strings and inserts the `name`, `email`, and `picture` identity claims without contextual escaping. Flask/Jinja templates escape untrusted values by default, but directly returning an interpolated string bypasses that protection. A value containing HTML markup, quote characters, or event-handler attributes can alter the generated document. The `picture` field is particularly sensitive because it is placed inside a single-quoted HTML attribute. A value containing a single quote can terminate the `src` attribute and add a new attribute such as an event handler. The `name` value is used in both element content and an attribute, requiring different contextual escaping rules. OIDC claims should not be assumed safe merely because they originate through Auth0. They may derive from user-editable upstream identity-provider records, social profiles, migration scripts, custom claims, or administrative metadata. ### Attack Path 1. An attacker or compromised identity provider causes an identity claim to contain an HTML payload, for example a `picture` value that terminates the `src` attribute and adds an `onerror` handler. 2. The affected user authenticates through Auth0. 3. The claim is stored in the application's session and returned by `auth0.get_user()`. 4. The user opens `/profile`. 5. The route interpolates the claim directly into an ...[truncated 1107 chars]
Remediation
View remediation

{{ user.name }}

Email: {{ user.email }}

{{ user.name }}

Logout

``` Additional hardening should include: 1. Validate `picture` as an absolute HTTPS URL with an approved scheme and, where appropriate, an approved host. 2. Never apply Jinja's `safe` filter to identity claims. 3. Add a restrictive Content Security Policy that disallows inline scripts and event handlers. 4. Avoid exposing access tokens or sensitive session data to browser-side JavaScript. 5. Add tests using claims containing `<`, `>`, `"`, `'`, and event-handler payloads, and verify they are rendered only as escaped text. 6. Apply the same escaping correction to any other route that interpolates identity claims into raw HTML strings. ]]>
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (44)

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 325)May include surrounding context.

md
| `start_interactive_login` | `await auth0.start_interactive_login()` | Returns authorization URL string — wrap in `redirect()` |
| `complete_interactive_login` | `await auth0.complete_interactive_login(str(request.url))` | Processes the callback URL, exchanges code for tokens |
| `get_user` | `await auth0.get_user()` | Returns current session user dict or `None` |
| `get_access_token` | `await auth0.get_access_token()` | Returns the access token for calling external APIs |
| `logout` | `await auth0.logout()` | Returns Auth0 logout URL string |

---

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/api.md (reported line 151)May include surrounding context.

get_access_token()

Retrieves the access token for calling external APIs. Handles token refresh automatically if a refresh token is available and the access token is expired.

python
access_token = await auth0.get_access_token()

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/integration.md (reported line 74)May include surrounding context.

Calling External APIs

Get Access Token

python
import httpx

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/api.md (reported line 157)May include surrounding context.

md
try:
        access_token = await auth0.get_access_token()
    except Exception as e:
        return f"Access token error: {e}", 401

    async with httpx.AsyncClient() as client:
        response = await client.get(

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/integration.md (reported line 91)May include surrounding context.

md
try:
        access_token = await auth0.get_access_token()
    except Exception as e:
        return f"Access token error: {e}", 401

    async with httpx.AsyncClient() as client:
        response = await client.get(

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/integration.md (reported line 250)May include surrounding context.

md
try:
        access_token = await auth0.get_access_token()
    except Exception as e:
        return f"Access token error: {e}", 401

    async with httpx.AsyncClient() as client:
        response = await client.get(

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

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

Before writing credentials, check which env files exist:

bash
test -f .env.local && echo "ENV_LOCAL_EXISTS" || echo "ENV_LOCAL_NOT_FOUND"
test -f .env && echo "ENV_EXISTS" || echo "ENV_NOT_FOUND"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 20)May include surrounding context.

Before writing credentials, check which env files exist:

bash
test -f .env.local && echo "ENV_LOCAL_EXISTS" || echo "ENV_LOCAL_NOT_FOUND"
test -f .env && echo "ENV_EXISTS" || echo "ENV_NOT_FOUND"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 72)May include surrounding context.

Before writing credentials, check which env files exist:

bash
test -f .env.local && echo "ENV_LOCAL_EXISTS" || echo "ENV_LOCAL_NOT_FOUND"
test -f .env && echo "ENV_EXISTS" || echo "ENV_NOT_FOUND"

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

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

md
- If `.env.local` exists, ask:
  - Question: "A `.env.local` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env.local" / "No, I'll update it manually"

- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 28)May include surrounding context.

md
- If `.env.local` exists, ask:
  - Question: "A `.env.local` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env.local" / "No, I'll update it manually"

- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 73)May include surrounding context.

md
- If `.env.local` exists, ask:
  - Question: "A `.env.local` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env.local" / "No, I'll update it manually"

- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 32)May include surrounding context.

md
- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env" / "No, I'll update it manually"

- If neither exists, ask:
  - Question: "This setup will create a `.env` file containing Auth0 credentials (AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_SECRET) and a placeholder for AUTH0_CLIENT_SECRET. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 36)May include surrounding context.

md
- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env" / "No, I'll update it manually"

- If neither exists, ask:
  - Question: "This setup will create a `.env` file containing Auth0 credentials (AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_SECRET) and a placeholder for AUTH0_CLIENT_SECRET. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 75)May include surrounding context.

md
- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env" / "No, I'll update it manually"

- If neither exists, ask:
  - Question: "This setup will create a `.env` file containing Auth0 credentials (AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_SECRET) and a placeholder for AUTH0_CLIENT_SECRET. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 77)May include surrounding context.

md
- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env" / "No, I'll update it manually"

- If neither exists, ask:
  - Question: "This setup will create a `.env` file containing Auth0 credentials (AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_SECRET) and a placeholder for AUTH0_CLIENT_SECRET. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · tests/run-evals.mjs (reported line 51)May include surrounding context.

js
- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env" / "No, I'll update it manually"

- If neither exists, ask:
  - Question: "This setup will create a `.env` file containing Auth0 credentials (AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_SECRET) and a placeholder for AUTH0_CLIENT_SECRET. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · tests/run-evals.mjs (reported line 378)May include surrounding context.

js
- If `.env.local` does **not** exist but `.env` exists, ask:
  - Question: "A `.env` file already exists and may contain secrets unrelated to Auth0. This setup will append Auth0 credentials to it without modifying existing content. Do you want to proceed?"
  - Options: "Yes, append to existing .env" / "No, I'll update it manually"

- If neither exists, ask:
  - Question: "This setup will create a `.env` file containing Auth0 credentials (AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_SECRET) and a placeholder for AUTH0_CLIENT_SECRET. Do you want to proceed?"

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

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

md
{"type": "matches", "pattern": "await\\s+auth0\\.logout\\(|await\\s+\\w+\\.logout\\(", "description": "Implements logout functionality"},
  {"type": "matches", "pattern": "flask\\[async\\]|flask\\[Async\\]|\"flask\\[async\\]\"", "description": "Uses flask[async] in requirements (required for async route handlers)"},

  {"type": "file_contains", "file_pattern": "**/.env*", "value": "dev-example.auth0.com", "description": "Auth0 domain written to .env config file"},
  {"type": "file_contains", "file_pattern": "**/.env*", "value": "abc123def456ghi789jkl012", "description": "Client ID written to .env config file"},

  {"type": "not_contains_any", "values": ["Authlib", "python-jose", "Flask-Login", "Flask-Dance"], "description": "Does not use wrong authentication libraries (Authlib, python-jose, Flask-Login, Flask-Dance)"},

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 21)May include surrounding context.

md
{"type": "matches", "pattern": "await\\s+auth0\\.logout\\(|await\\s+\\w+\\.logout\\(", "description": "Implements logout functionality"},
  {"type": "matches", "pattern": "flask\\[async\\]|flask\\[Async\\]|\"flask\\[async\\]\"", "description": "Uses flask[async] in requirements (required for async route handlers)"},

  {"type": "file_contains", "file_pattern": "**/.env*", "value": "dev-example.auth0.com", "description": "Auth0 domain written to .env config file"},
  {"type": "file_contains", "file_pattern": "**/.env*", "value": "abc123def456ghi789jkl012", "description": "Client ID written to .env config file"},

  {"type": "not_contains_any", "values": ["Authlib", "python-jose", "Flask-Login", "Flask-Dance"], "description": "Does not use wrong authentication libraries (Authlib, python-jose, Flask-Login, Flask-Dance)"},

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 74)May include surrounding context.

md
{"type": "matches", "pattern": "await\\s+auth0\\.logout\\(|await\\s+\\w+\\.logout\\(", "description": "Implements logout functionality"},
  {"type": "matches", "pattern": "flask\\[async\\]|flask\\[Async\\]|\"flask\\[async\\]\"", "description": "Uses flask[async] in requirements (required for async route handlers)"},

  {"type": "file_contains", "file_pattern": "**/.env*", "value": "dev-example.auth0.com", "description": "Auth0 domain written to .env config file"},
  {"type": "file_contains", "file_pattern": "**/.env*", "value": "abc123def456ghi789jkl012", "description": "Client ID written to .env config file"},

  {"type": "not_contains_any", "values": ["Authlib", "python-jose", "Flask-Login", "Flask-Dance"], "description": "Does not use wrong authentication libraries (Authlib, python-jose, Flask-Login, Flask-Dance)"},

Credential Access

High
Category
Privilege Escalation
Confidence
60% 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 108)May include surrounding context.

md
{"type": "matches", "pattern": "await\\s+auth0\\.logout\\(|await\\s+\\w+\\.logout\\(", "description": "Implements logout functionality"},
  {"type": "matches", "pattern": "flask\\[async\\]|flask\\[Async\\]|\"flask\\[async\\]\"", "description": "Uses flask[async] in requirements (required for async route handlers)"},

  {"type": "file_contains", "file_pattern": "**/.env*", "value": "dev-example.auth0.com", "description": "Auth0 domain written to .env config file"},
  {"type": "file_contains", "file_pattern": "**/.env*", "value": "abc123def456ghi789jkl012", "description": "Client ID written to .env config file"},

  {"type": "not_contains_any", "values": ["Authlib", "python-jose", "Flask-Login", "Flask-Dance"], "description": "Does not use wrong authentication libraries (Authlib, python-jose, Flask-Login, Flask-Dance)"},

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · tests/evals.json (reported line 17)May include surrounding context.

json
{"type": "matches", "pattern": "await\\s+auth0\\.logout\\(|await\\s+\\w+\\.logout\\(", "description": "Implements logout functionality"},
  {"type": "matches", "pattern": "flask\\[async\\]|flask\\[Async\\]|\"flask\\[async\\]\"", "description": "Uses flask[async] in requirements (required for async route handlers)"},

  {"type": "file_contains", "file_pattern": "**/.env*", "value": "dev-example.auth0.com", "description": "Auth0 domain written to .env config file"},
  {"type": "file_contains", "file_pattern": "**/.env*", "value": "abc123def456ghi789jkl012", "description": "Client ID written to .env config file"},

  {"type": "not_contains_any", "values": ["Authlib", "python-jose", "Flask-Login", "Flask-Dance"], "description": "Does not use wrong authentication libraries (Authlib, python-jose, Flask-Login, Flask-Dance)"},

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · tests/evals.json (reported line 18)May include surrounding context.

json
{"type": "matches", "pattern": "await\\s+auth0\\.logout\\(|await\\s+\\w+\\.logout\\(", "description": "Implements logout functionality"},
  {"type": "matches", "pattern": "flask\\[async\\]|flask\\[Async\\]|\"flask\\[async\\]\"", "description": "Uses flask[async] in requirements (required for async route handlers)"},

  {"type": "file_contains", "file_pattern": "**/.env*", "value": "dev-example.auth0.com", "description": "Auth0 domain written to .env config file"},
  {"type": "file_contains", "file_pattern": "**/.env*", "value": "abc123def456ghi789jkl012", "description": "Client ID written to .env config file"},

  {"type": "not_contains_any", "values": ["Authlib", "python-jose", "Flask-Login", "Flask-Dance"], "description": "Does not use wrong authentication libraries (Authlib, python-jose, Flask-Login, Flask-Dance)"},

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

Scanner excerpt · tests/graders.json (reported line 11)May include surrounding context.

json
{"type": "matches", "pattern": "await\\s+auth0\\.logout\\(|await\\s+\\w+\\.logout\\(", "description": "Implements logout functionality"},
  {"type": "matches", "pattern": "flask\\[async\\]|flask\\[Async\\]|\"flask\\[async\\]\"", "description": "Uses flask[async] in requirements (required for async route handlers)"},

  {"type": "file_contains", "file_pattern": "**/.env*", "value": "dev-example.auth0.com", "description": "Auth0 domain written to .env config file"},
  {"type": "file_contains", "file_pattern": "**/.env*", "value": "abc123def456ghi789jkl012", "description": "Client ID written to .env config file"},

  {"type": "not_contains_any", "values": ["Authlib", "python-jose", "Flask-Login", "Flask-Dance"], "description": "Does not use wrong authentication libraries (Authlib, python-jose, Flask-Login, Flask-Dance)"},