meta-ads

ISSUES FOUND max severity CRITICALSkillSpector Do not install 100 registry hoodini last scanned 1 scan

13 findings (5 critical, 7 medium, 1 info), mainly data exfiltration, unauthorized tool use, policy violation. Most recent scan 2026-05-09.

Second scanner: NVIDIA SkillSpector

Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.

What this skill does

Pull, analyze, manage, and CREATE Meta ads (Facebook, Instagram, Messenger, Threads, Click-to-WhatsApp) via the Marketing API. Use when the user mentions Meta/FB/IG ads, Ads Manager, ROAS, CPA, CPM, CTR, ad spend, campaign or ad set performance, creative fatigue, frequency, CTWA, audience/placement breakdowns, A/B ad tests, or wants to pause an ad, change a budget, duplicate a winner, or launch a new campaign from scratch. Trigger on Hebrew terms like פרסום בפייסבוק/באינסטגרם, פרסומות מטא, ביצועי קמפיין, פרסומות, צור קמפיין, השק קמפיין, A/B טסט. Trigger on questions like how are my ads…

Package
22 files, 174 KB
SKILL.md
2406 words, 12+ sections
Code
Python (13)

SKILL.md covers: Meta Ads (Marketing API) · When to consult this skill · Three things to internalize before touching any script · The 37-month data wall · Before anything else: check setup + discover accounts · How to guide a user through setup (first-timers) · Path A vs Path B: which token type? · Workflow: read operations · Workflow: write operations (pause, budget, duplicate) · Workflow: creating a campaign from scratch · When NOT to use `create_campaign.py` · Gotchas the scripts already handle for you

Findings

CRITICAL Cross-file env var exfiltration: 3 files Data Exfiltrationbehavioral

Environment variable access with network calls in scripts/exchange_token.py, scripts/meta_client.py

Remediation: Review data flow across files: scripts/create_campaign.py, scripts/meta_client.py, scripts/exchange_token.py
CRITICAL Cross-file exfiltration chain: 3 files Data Exfiltrationbehavioral

Multi-file exfiltration chain detected: scripts/exchange_token.py, scripts/meta_client.py collect data → encode → scripts/exchange_token.py, scripts/meta_client.py, scripts/create_campaign.py transmit to network

Remediation: Review data flow across files: scripts/create_campaign.py, scripts/meta_client.py, scripts/exchange_token.py
CRITICAL Environment variable access with network calls detected Data Exfiltrationbehavioral

Script accesses environment variables and makes network calls in ../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/exchange_token.py

../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/exchange_token.py

Remediation: Remove environment variable harvesting or network transmission
CRITICAL Environment variable access with network calls detected Data Exfiltrationbehavioral

Script accesses environment variables and makes network calls in ../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/meta_client.py

../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/meta_client.py

Remediation: Remove environment variable harvesting or network transmission
CRITICAL PROMPT INJECTION detected by YARA Prompt Injectionstatic

Detects coercive prompt injections in tool description fields: hidden input

scripts/exchange_token.py:76

help="Short-lived user token. If omitted, you'll be prompted (hidden input).",
Remediation: Review and remove prompt injection pattern
MEDIUM Undeclared network usage Unauthorized Tool Usestatic

Skill code uses network libraries but doesn't declare network requirement

../skills/hoodini-ai-agents-skills/skills/meta-ads/SKILL.md

Remediation: Declare network usage in compatibility field or remove network calls
MEDIUM Environment variable harvesting detected Data Exfiltrationbehavioral

Script iterates through environment variables in ../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/exchange_token.py

../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/exchange_token.py

Remediation: Remove environment variable collection unless explicitly required and documented
MEDIUM Environment variable harvesting detected Data Exfiltrationbehavioral

Script iterates through environment variables in ../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/meta_client.py

../skills/hoodini-ai-agents-skills/skills/meta-ads/scripts/meta_client.py

Remediation: Remove environment variable collection unless explicitly required and documented
MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic

Pattern detected: requests.post(

scripts/create_campaign.py:108

resp = requests.post(url, data=data, files=files, timeout=120)
Remediation: Ensure network operations are necessary and document allowed destinations
MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic

Pattern detected: requests.get(

scripts/exchange_token.py:47

resp = requests.get(url, params=params, timeout=30)
Remediation: Ensure network operations are necessary and document allowed destinations
MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic

Pattern detected: requests.request(

scripts/meta_client.py:129

resp = requests.request(method, url, params=params, data=data, timeout=60)
Remediation: Ensure network operations are necessary and document allowed destinations
MEDIUM Outbound network request primitives that can transmit data externally Data Exfiltrationstatic

Pattern detected: requests.get(

scripts/meta_client.py:189

resp = requests.get(next_url, timeout=60)
Remediation: Ensure network operations are necessary and document allowed destinations
INFO Skill does not specify a license Policy Violationstatic

Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.

SKILL.md

Remediation: Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)

What is in the package

22 files, 174 KB. Show the list.
FileKindSize
SKILL.mddoc17 KB
requirements.txtdoc15 B
assets/env.templateother1.5 KB
references/analysis-playbooks.mddoc9.7 KB
references/campaign-creation.mddoc10 KB
references/insights-fields.mddoc7.7 KB
references/setup.mddoc16 KB
references/troubleshooting.mddoc14 KB
references/write-actions.mddoc12 KB
scripts/anomaly_detect.pyscript6.9 KB
scripts/auth_check.pyscript4.3 KB
scripts/create_campaign.pyscript19 KB
scripts/creative_fatigue.pyscript7.4 KB
scripts/duplicate_ad.pyscript4.6 KB
scripts/exchange_token.pyscript5.2 KB
scripts/fetch_insights.pyscript8.9 KB
scripts/list_accounts.pyscript7.0 KB
scripts/list_campaigns.pyscript2.7 KB
scripts/meta_client.pyscript8.7 KB
scripts/pause_ad.pyscript3.2 KB
scripts/rollback_creation.pyscript2.8 KB
scripts/update_budget.pyscript5.8 KB

External hosts referenced

developers.facebook.com www.python.org business.facebook.com graph.facebook.com

Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.

Environment variables referenced

META_AD_ACCOUNT_ID META_ACCESS_TOKEN META_APP_ID META_APP_SECRET META_API_VERSION

Package contents recorded 2026-10-22 at commit f7a43d8f8525. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.

What we checked

What we did not check

Sources