CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/pci-dss-control-test-author

Build-an-X for PCI DSS v4.0 scope verification - cardholder data environment (CDE) boundary tests, segmentation tests (PCI Req 1), prohibited-data-storage assertions per Req 3 (no full track data, no CVV/CAV2/CVC2/CID, no PIN/PIN block post-authorization), key-management tests per Req 3.6, encryption-of-transmissions per Req 4; includes the scope catalog (SAQ A / A-EP / D levels, PAN-storage rules, hosted-fields / tokenization scope-reduction patterns) in references/pci-scope.md. Use when authoring PCI DSS scope-reduction + control tests for any system handling payment-card data, or when determining a payment integration's SAQ level.

72

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files
Low

W011: Third-party content exposure detected (indirect prompt injection risk).

What this means

The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.

Why it was flagged

The workflow reads database dumps and recent logs via export_database() and recent_logs(), which can contain outsider-authored transaction data or log messages.

Where we found it

database dump (export_database)

content-type · 2 sites

The plugin reads database dumps via export_database() which can contain outsider-authored transaction data (e.g., payment webhooks, user-submitted card data) that could be used for indirect prompt injection if processed by an LLM.

SKILL.md

19

def export_database() -> DatabaseDump: ...

SKILL.md

90

db_dump = export_database()

recent logs (recent_logs)

content-type · 2 sites

The plugin reads recent logs via recent_logs() which can contain outsider-authored log messages (e.g., error messages with user input, webhook payloads, API request bodies) that could be used for indirect prompt injection if processed by an LLM.

SKILL.md

20

def recent_logs() -> list[LogEntry]: ...

SKILL.md

99

log_entries = recent_logs()

Report incorrect finding
Audited
Security analysis
Snyk