xlsx

Pass

Audited by Gen Agent Trust Hub on Sep 29, 2026

Risk Level: SAFECOMMAND_EXECUTIONDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTIONPERSISTENCE
Full Analysis
  • [COMMAND_EXECUTION]: The recalc.py script executes system-level commands to perform headless formula recalculation in Excel files.
  • It uses subprocess.run to call soffice (LibreOffice) with specific arguments to trigger a recalculation macro.
  • It optionally utilizes the timeout or gtimeout utilities to manage execution duration.
  • [DYNAMIC_EXECUTION]: The script recalc.py dynamically generates a LibreOffice Basic macro (Module1.xba) at runtime.
  • The macro is written to the user's local LibreOffice configuration directory and contains code to calculate all formulas, save, and close the workbook.
  • This generated code is subsequently executed via a command-line call to the office suite.
  • [INDIRECT_PROMPT_INJECTION]: The skill is designed to ingest and process data from external spreadsheet files (.xlsx, .csv, etc.), creating a potential surface for indirect prompt injection.
  • Ingestion points: The agent reads files using pandas.read_excel (as instructed in SKILL.md) and the recalc.py script loads workbooks via openpyxl.load_workbook to scan cell values.
  • Boundary markers: The instructions do not specify any delimiters or safety warnings for handling untrusted content within spreadsheets.
  • Capability inventory: The skill has the ability to write files and execute system commands (soffice, timeout) through the recalc.py utility.
  • Sanitization: There is no evidence of sanitization or filtering of Excel cell content before it is processed by the agent or script.
  • [PERSISTENCE]: The recalc.py script modifies the local environment by persisting a macro in the LibreOffice application configuration directory (~/.config/libreoffice/ or ~/Library/Application Support/LibreOffice/). While this is a functional requirement for the skill, the macro remains in the user's application configuration across different sessions.
Audit Metadata
Risk Level
SAFE
Analyzed
Sep 29, 2026, 03:43 PM