T09 · Insecure Skill Coding Practices
- Location
scripts/generate.py:43- Finding
Azure API Key Disclosure Through an Unrestricted Configurable Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its image-generation purpose, but it handles an Azure API key in a way that can send it to an unvalidated endpoint and writes unescaped prompt text into a generated gallery.
Install only if you trust and control the skill directory and its .env file. Verify AZURE_OPENAI_ENDPOINT is your real Azure HTTPS endpoint before running, avoid sharing generated galleries from untrusted prompts until HTML escaping is fixed, and treat manifest/gallery files as containing prompt history.
scripts/generate.py:43Azure API Key Disclosure Through an Unrestricted Configurable Endpoint
scripts/generate.py:142Stored HTML Injection in the Generated Image Gallery
{img['prompt']}
{img['size']} • {img['quality']} • {img['style']}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
def load_env():
"""Load environment variables from .env file if present."""
env_file = Path(__file__).parent.parent / ".env"
if env_file.exists():
with open(env_file) as f:
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
def load_env():
"""Load environment variables from .env file if present."""
env_file = Path(__file__).parent.parent / ".env"
if env_file.exists():
with open(env_file) as f:
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
def load_env():
"""Load environment variables from .env file if present."""
env_file = Path(__file__).parent.parent / ".env"
if env_file.exists():
with open(env_file) as f:
for line in f:
The skill documentation describes capabilities that require access to environment variables, network communication with Azure OpenAI, and file writes, but it does not declare any tool scope or permissions boundary. This creates a transparency and least-privilege problem: an agent or reviewer cannot easily determine what the skill is allowed to access, increasing the risk of overbroad execution and misuse if the implementation is run in a permissive environment.
Skill contains patterns that could indirectly extract system prompts through rephrasing, translation, summarization, or side-channel techniques.
**404 Not Found**: Verify your `AZURE_OPENAI_DALLE_DEPLOYMENT` name matches exactly
**Content Policy**: Azure has strict content filters. Rephrase prompts that get blocked.
No suspicious patterns detected.