Rule set sha256:ced554567772
rego-art15-ipi-010
One rule of the rule set with digest ced554567772bc778cb2c7761a23d2775e31500d6b0d887c23c750017ee02779. An audit record that names this digest and this rule was decided by the rule as shown here. Every rule in this set.
| Rule | rego-art15-ipi-010 |
|---|---|
| Rule version | f60f248bfaf3d6ce3dd19ca4541c2b7b287479cd7555c017648bb5903fc4ee39 |
| Provision | Regulation (EU) 2024/1689, Article 15(5) ELI: http://data.europa.eu/eli/reg/2024/1689/art_15/par_5/oj |
| Approval | Not approved |
rules/rego/complyedge/prompt_security/tool_hijack.rego
- Citation
- Not stated in the rule file.
- Condition
- Text that tries to make an AI call a tool (http, email, file, payment) to send data out or take an action its user did not ask for.
- Layer 1 detects
- in any letter case, forward, send, post, transmit, exfiltrate, leak, upload or email, then within 90 characters (no ".", "!", "?" or line break between) "system prompt", credential(s), "API key(s)", secret(s), conversation, "chat history", password or "the above", then within 90 more such characters "to" followed by an http or https URL or by an address containing "@"; make, issue, perform or execute "a" or "an" HTTP, HTTPS, GET, POST, curl or fetch "request to" an http or https URL; and call, invoke, use or execute (optionally "the") one word followed by tool, function or API, then "to send", "to forward", "to exfiltrate", "to leak", "to delete" or "to transfer", or "with my" or "with the user's" credential(s) or secret(s). It matches wording, not meaning: it does not read whose data goes where or at whose request, so it fires on the user's own request ("Email the chat history to ana@example.com", "use the email tool to send the invoice"), and it misses a hijack worded any other way. Whether the text directs the agent to act for an attacker is judged in Layer 2. Deterministic OPA/Rego leaf so this indirect/direct prompt-injection pattern blocks on the /v1/check hot path (previously YAML/TrustLint only, retired from /v1/check). Pattern ported verbatim from the vetted universal YAML corpus.
- Condition type
- Not stated in the rule file.
- Status in the file
- review