Back to skill

Security audit

Pixeltable

Security checks for vulnerabilities and agentic risk

Overview

This Pixeltable skill is mostly documentation, but it needs review because some examples can create unauthenticated data endpoints, LLM-writable persistent memory, and destructive local cleanup steps.

Install only if you are comfortable reviewing the generated code before running or deploying it. Pin package versions where possible, run scaffolding in a restricted environment, add authentication and authorization before exposing generated APIs, bind memory writes to server-side identity, and back up Pixeltable state before any destructive cleanup.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (4)

T08 · Insecure Dependencies

Error
Location
SKILL.md:94
Finding

Unpinned Third-Party Package Is Downloaded and Executed During Scaffolding

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
references/workflows.md:477
Finding

Production API Examples Expose Data Mutation and Deletion Without Access Control

Content
View full analysis
0.3).order_by( sim, asc=False ).select( text=chunks.text, sim=sim, title=chunks.title, ).limit(20) router.add_query_route(path="/list", query=list_docs, method="get") router.add_query_route(path="/search", query=search_docs, method="post") ``` ```python # main.py from fastapi import FastAPI import setup_pixeltable from routers import data app = FastAPI() app.include_router(data.router) ``` ### Technical Analysis The examples are presented as a production-ready application pattern but register upload, listing, search, and deletion routes without authentication dependencies, authorization checks, or tenant restrictions. The delete route directly exposes a data-destructive operation. The list and search routes can disclose stored document metadata and content, while the upload route can trigger document proce ...[truncated 1258 chars]
Remediation
View remediation

T02 · Agent Memory Poisoning

Error
Location
references/agents-memory-mcp.md:96
Finding

LLM-Controlled Memory Tool Can Persist Data Under Another User's Identity

Content
View full analysis
str: """Save a new fact or preference to the user's memory bank.""" memory_bank.insert([{ 'content': content, 'category': category, 'user_id': user_id, 'timestamp': datetime.now(), }]) return f'Saved to memory: {content}' ``` ```python agent.add_computed_column( initial_response=chat_completions( messages=[{'role': 'user', 'content': agent.prompt}], model='gpt-4o-mini', tools=tools, ), if_exists='ignore', ) agent.add_computed_column( tool_output=openai_invoke_tools(tools, agent.initial_response), if_exists='ignore', ) ``` ### Technical Analysis The `save_memory` tool accepts `user_id` as an ordinary tool argument. Because the model selects the tool and supplies its arguments, the model can choose an identifier unrelated to the authenticated user associated with the request. The function performs no authorization check and does not bind the supplied identifier to trusted server-side identity. Although memory retrieval filters records by `user_id`, that filter only protects reads; it does not prevent unauthorized writes into another user's memory namespace. Prompt injection can therefore cause the model to persist attacker-controlled facts, preferences, or instruction-like content under a victim's identifier. That content may later be retrieved and inserted into the victim's model context, allowing the poisoning to influence future sessions. ### Attack Path 1. An attacker learns or guesses another user's identifier. 2. The attacker submits a prompt instructing the model to invoke `save_memory`. 3. The promp ...[truncated 797 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
references/core-api.md:1056
Finding

Recovery Instructions Recursively Delete All Local Pixeltable State

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (82)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Create tables, insert data, query | **Core Concepts** (below) and [core-api.md](references/core-api.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Add AI-powered columns (summarize, classify, embed) | **Computed Columns** (below) and [providers.md](references/providers.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Add AI-powered columns (summarize, classify, embed) | **Computed Columns** (below) and [providers.md](references/providers.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Add AI-powered columns (summarize, classify, embed) | **Computed Columns** (below) and [providers.md](references/providers.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Build a RAG pipeline | [workflows.md → RAG Pipeline](references/workflows.md#rag-pipeline) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Build a RAG pipeline | [workflows.md → RAG Pipeline](references/workflows.md#rag-pipeline) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Build a RAG pipeline | [workflows.md → RAG Pipeline](references/workflows.md#rag-pipeline) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Build a RAG pipeline | [workflows.md → RAG Pipeline](references/workflows.md#rag-pipeline) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Build a RAG pipeline | [workflows.md → RAG Pipeline](references/workflows.md#rag-pipeline) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| Build a RAG pipeline | [workflows.md → RAG Pipeline](references/workflows.md#rag-pipeline) |

Static analysis

No suspicious patterns detected.