10. Verifying AI Applications: AISVS and LEARN
Introduction
You have shipped an AI feature. Your security lead asks a reasonable question: “How do we know it’s secure?”
Nothing you have learned so far answers that question in a form anyone can check. The Blueprint tells you what to deploy, layer by layer, and it is an infrastructure answer to an infrastructure question. Section 9’s loop tells you how to keep those controls aimed at arriving attacks. Both are about the platform around your application. Neither hands you a list of things a reviewer can walk through and mark pass or fail on the code you wrote.
That gap has a name, and until recently it was a genuine hole in the field: there was no application-level equivalent of the checklists that web application security has used for a decade. OWASP closed it on 24 June 2026 with the Artificial Intelligence Security Verification Standard (AISVS) 1.0 – 191 testable requirements across 12 chapters, every one phrased as “Verify that…”, modelled directly on the ASVS that web security already runs on.
This section teaches AISVS as the thing you actually verify against, and keeps LEARN – five letters covering the application-level practices this course has taught since Chapter 1 – as the recall aid that gets you to the right chapter when you are away from the document. The two do different jobs. A mnemonic is for remembering; a standard is for proving. Reach for the mnemonic in a design review and the standard in an audit.
Why this section changed shape
Earlier versions of this course taught LEARN alone. LEARN is a teaching device this course invented – useful for recall, and not something you can cite, hand to an auditor, or hold a supplier to. Now that a published, versioned, vendor-neutral standard covers the same ground in testable form, the standard is the spine and the mnemonic is the index to it. Where the two disagree, the standard wins.
What will I get out of this?
By the end of this section, you will be able to:
- Describe the shape of AISVS – its 12 chapters, its three verification levels, and its identifier scheme – and select the right level for a given system.
- Use LEARN to reach the right AISVS chapter for the five application-level practices developers most often own.
- State what LEARN does not cover, and name the AISVS chapters that have no mnemonic letter and are therefore the ones most often skipped.
- Verify an agent against a chapter of AISVS, working from a real incident to the specific requirements that would have caught it.
- Choose between Blueprint, LEARN and AISVS for a given question, and explain why the three are not competing.
What AISVS Is – and What It Is Not
AISVS is a catalogue of testable security requirements for AI-enabled systems. It does not tell you what can go wrong – that is the Top 10 lists’ job – and it does not tell you what product to buy. It tells you what to check.
The shape of it, as of version 1.0:
| Property | Value |
|---|---|
| Chapters | 12, C1 through C12 |
| Requirements | 191, each phrased “Verify that…” |
| Verification levels | 3, assigned per requirement |
| Identifier format | C<chapter>.<section>.<requirement> – e.g. C9.4.3 |
| Licence | CC BY-SA 4.0 |
| Status | 1.0 folder locked; later work lands in a new version folder |
The twelve chapters:
| # | Chapter | What it verifies |
|---|---|---|
| C1 | Training Data Integrity & Traceability | Where the data came from and whether you can prove it |
| C2 | Input Validation | Everything entering the context, not just the user’s message |
| C3 | Model Lifecycle Management & Change Control | Versioning, approval and rollback of the model itself |
| C4 | Infrastructure, Configuration & Deployment Security | The stack the model runs on |
| C5 | Access Control & Identity | Who and what may reach each AI resource |
| C6 | Supply Chain Security for Models | Provenance of weights, adapters and dependencies |
| C7 | Model Behavior, Output Control & Safety Assurance | What comes out, and what it is allowed to trigger |
| C8 | Memory, Embeddings & Vector Database Security | Durable state: RAG corpora, memory, indices |
| C9 | Orchestration & Agentic Security | Agents, tools, budgets, approvals – 34 requirements, the largest chapter |
| C10 | Model Context Protocol (MCP) Security | MCP servers, tokens, transport, schemas |
| C11 | Adversarial Robustness | Behaviour under deliberate manipulation |
| C12 | Monitoring, Logging & Anomaly Detection | Whether you could reconstruct what happened |
Note the weighting. C9 and C10 together are 57 of the 191 requirements – 30% of the standard, all of it agentic. That is the same conclusion Chapter 2 Section 5 reached from the attack side, arrived at independently by a different group of people.
Pin the version in every citation
AISVS identifiers are stable within a version and may move between versions. OWASP’s own guidance is to write v<version>-C<chapter>.<section>.<requirement> – so v1.0-C9.4.3, not C9.4.3 – and to treat a bare identifier as meaning “whatever is current,” which is exactly the ambiguity that breaks a document two years later.
This is the durable habit, not a formatting preference
This course has been bitten by the unpinned-identifier problem twice already. The OWASP LLM Top 10 renumber moved eight of ten identifiers between the 2025 and 2026 editions, and LLM07: System Prompt Leakage became LLM08: Hidden Context Exposure – every unpinned reference in the course silently became wrong. A control document that says “we satisfy C9.2.5” is a document nobody can check after the next release. One that says “we satisfy v1.0-C9.2.5” is checkable forever.
What AISVS explicitly is not
OWASP is unusually direct about the boundaries, and they matter for how you use it:
- Not a governance framework. NIST AI RMF and the EU AI Act cover that ground, and Section 11 is where this course does.
- Not a risk management framework. AISVS supplies the technical controls a risk process points at; it does not tell you how to assess risk.
- Not a tool recommendation list. It is vendor-neutral, which is precisely why it is the right thing to hold a supplier to.
Where it sits among the frameworks you already know
Chapter 2 Section 1 taught you to pick a framework by the question it answers. AISVS adds a fourth question, and OWASP positions it as supplying “the detailed controls to mitigate” the two Top 10 lists:
| Framework | The question it answers |
|---|---|
| OWASP LLM Top 10 | What can go wrong? |
| OWASP Agentic Top 10 | What can go wrong when it acts? |
| MITRE ATLAS | How do adversaries actually operate? |
| OWASP AISVS | What do I verify, and how would someone confirm it? |
| Security for AI Blueprint | What do I deploy, and who owns it? |
The first three describe threats. AISVS and the Blueprint describe responses – AISVS at the application, the Blueprint at the platform. A finding from the Top 10 lists becomes an AISVS requirement to verify and a Blueprint layer to deploy.
Choosing Your Level
Every AISVS requirement carries a level, and the level is the mechanism that stops a 191-item list from being unusable.
| Level | Scope | Applies to |
|---|---|---|
| 1 | Essential baseline every AI system should meet | All AI applications, including internal tools |
| 2 | Standard controls for sensitive data or consequential decisions | Production and customer-facing systems, anything handling personal data |
| 3 | Advanced controls for high-assurance environments | Safety-critical, regulated, high-value targets |
OWASP’s guidance is that most production systems should target Level 2. The distribution is deliberately front-loaded: of the 191 requirements, 51 are Level 1, so a team starting from nothing has a bounded first target rather than an aspirational one.
Level selection is a decision about consequence, not about effort
The temptation is to pick Level 1 because Level 2 looks expensive. Read the level definitions again and note that they key on what the system can do to someone, not on how much work the controls are. An internal tool with a write-capable tool binding is making consequential decisions, whatever its user count. The question Section 9 asks of a scan finding is the same one to ask here: not how sophisticated the attack is, but what it could reach.
The ownership split is the same one running through all of Chapter 3. A platform team can satisfy C4 (Infrastructure) and much of C5 (Access Control) on your behalf, and no platform team can satisfy C2, C7 or C9 for you – those are properties of the application you wrote. Run Section 9’s ownership table alongside your level choice and mark each chapter ours, theirs, or shared before you start evidencing anything.
LEARN: The Recall Overlay
Five letters, covering the application-level practices this course has taught across all three chapters. Each one is an index into AISVS, not a substitute for it.
| Letter | Remember | Verify against |
|---|---|---|
| L | Linguistic Shielding – everything entering the context is untrusted | v1.0-C2 Input Validation |
| E | Execution Supervision – bound what the agent may do and undo | v1.0-C9 Orchestration & Agentic Security |
| A | Access Control – separate, scoped credentials per function | v1.0-C5 Access Control & Identity |
| R | Robust Prompt Hardening – test the prompt, do not trust it | v1.0-C11 Adversarial Robustness, v1.0-C7 Model Behavior |
| N | Nondisclosure – inspect what leaves | v1.0-C7 Model Behavior, v1.0-C2.2 Content & Policy Screening |
L – Linguistic Shielding
Treat every element of the context window as untrusted input, not just the user’s message.
What actually works, and each item maps to a requirement:
- Normalise before inspecting –
v1.0-C2.1.1requires input normalisation before tokenization or embedding, andv1.0-C2.1.2requires that encoding and representation smuggling be detected and mitigated. This is Chapter 2’s filter-evasion finding turned into a check: a filter that tokenizes differently from the model is inspecting a different string. - Screen every steering input, not the prompt field –
v1.0-C2.1.3requires that “all inputs that could steer model behavior” be treated as untrusted and screened. Retrieved documents, tool outputs, agent messages, uploaded files. - Reject over-length input rather than truncating –
v1.0-C2.1.4is explicit that controls “must reject inputs that exceed token limits rather than truncating them”, because silent truncation decides for you which half of a payload survives. - Encode reserved special tokens as literals –
v1.0-C2.1.7, which closes the special-token injection route Chapter 1 Section 4 describes.
Two corrections to how this used to be taught
Delimiters are labelling, not a boundary. Wrapping user content in <user_input> tags does not create a privilege level – Chapter 2 Section 2 is built on the fact that the context window has none. Delimiters are useful only if the content cannot close its own envelope, which means stripping any delimiter sequence the content itself contains before assembly. A delimiter strategy without that escaping step is decoration.
An instruction hierarchy is real, and you do not implement it in application code. v1.0-C2.1.6 requires that “the system enforces an instruction hierarchy in which system and developer messages override user instructions and other untrusted inputs, even after user instructions have been processed” – note it says the system, not your code. The mechanism is training-time: Wallace et al. (2024) trains models on a synthetic hierarchy so they learn to privilege system and developer instructions. You satisfy this requirement by selecting a model that has one – a Layer 2 decision – and by supplying the provenance labels it consumes, as Layer 5 describes. Writing code that asserts the hierarchy satisfies nothing, and evaluations find compliance is partial and degrades under conflict.
And carry Chapter 2’s verdict on the whole letter: input filtering is a cost-raiser, not a boundary. v1.0-C2 is worth every requirement in it, and the measured residual on the best production guardrail on record is still low single digits.
E – Execution Supervision
Bound what the agent may do, and what it may do irreversibly. This is v1.0-C9, the largest chapter in the standard, and the one where AISVS is most obviously ahead of common practice.
- Budgets and circuit breakers –
v1.0-C9.1.1andC9.1.2require per-tool quotas and per-execution budgets (recursion depth, token use, monetary spend) enforced by the runtime, andC9.1.3requires a swarm-level kill switch. - Approval gates on the irreversible subset –
v1.0-C9.2.1requires the runtime to block privileged, high-impact or irreversible actions pending verified human approval. This is Layer 4’s human-in-the-loop enforcement expressed as a check. - Reversibility classification –
v1.0-C9.2.3requires each high-impact action to carry a trusted classification (read-only, reversible, externally reversible, irreversible), andC9.2.4requires the runtime to act on it. This is the structural version of the advice Chapter 2 keeps giving: gate the irreversible subset, not everything. - Isolate untrusted data from tool-calling –
v1.0-C9.3.5requires that “components processing untrusted data are isolated from tool-calling capabilities, ensuring that compromised data processing cannot trigger unauthorized tool invocations.” That single requirement breaks the lethal trifecta at its third leg without needing to detect anything. - Verify externally-named resources before invoking them –
v1.0-C9.3.7requires that resources named in model output be checked against an allow-list before the agent installs or invokes them.
Correction: what the Cursor MCP cases actually show
This section previously said Cursor’s MCP exploitation succeeded “without supervision” and that an approval workflow would have blocked it. Both Cursor CVEs say the opposite, and the difference is the lesson.
CurXecute (CVE-2025-54135): Cursor executed newly added MCP entries immediately, before the approval prompt. The approval existed. It ran too late. That is v1.0-C9.2.1’s word “until” doing real work – a gate that fires after execution is not a gate.
MCPoison (CVE-2025-54136): the approval was bound to the server’s name rather than its contents, so a teammate’s genuine approval carried over to a silently swapped command. The judgement was sound and the approved thing changed. That is v1.0-C9.2.8, which requires approvals to be “cryptographically bound to action parameters, requester identity, execution context, and a unique single-use nonce.”
Neither case is fixed by adding an approval step. One needs the gate to precede execution; the other needs the approval bound to what was approved. “Add human approval” is not a control until you specify when it fires and what it is bound to.
A – Access Control
Separate, scoped credentials per function, enforced outside the model. v1.0-C5, with the agentic identity requirements in v1.0-C9.4.
- Default-deny on every AI resource –
v1.0-C5.2.1covers datasets, endpoints, vector collections, embedding indices and compute instances with explicit allow-lists. - Carry the end user’s authorization into retrieval –
v1.0-C5.2.2requires retrieval pipelines to enforce the end-user’s authorization context at each retrieval and assembly stage “rather than relying solely on” the service’s. This is the single most commonly missed requirement in RAG systems, and it is the mechanism behind most “the assistant showed me someone else’s document” incidents. - Filter after inference too –
v1.0-C5.2.4requires post-inference filtering to prevent responses including data the requester is not authorised to receive, because retrieval scoping and generation are different failure points. - Agents are principals –
v1.0-C9.4.1requires each agent instance to hold a unique cryptographic identity and authenticate as a first-class principal downstream. An agent borrowing a shared service account is unattributable by construction. - Isolate the policy decision point –
v1.0-C5.2.5requires the agent’s authorization decision point to sit outside the agent’s execution environment. An agent that can reach its own policy engine has no policy engine, which is the same structural error as CVE-2025-53773 below.
Credentials never go in the system prompt, the conversation, or memory. Chapter 2 established that anything in the window is reachable by anyone who can talk to the model.
R – Robust Prompt Hardening
Here the honest framing has changed most, and it is worth being blunt: you are testing the prompt, not trusting it.
The earlier version of this section taught role boundaries “the model cannot be talked out of.” Chapter 2 Section 2 exists to disprove exactly that. Alignment and role adherence are probabilistic, phrasing-sensitive, provider-set properties, and no wording makes a system prompt a boundary. Prompt hardening raises cost. It does not hold.
What survives, and what to verify:
- Adversarial testing as a standing requirement –
v1.0-C11Adversarial Robustness is a chapter, not a technique, and this is where prompt hardening earns its place: you measure whether your phrasing survives, you do not assert it. ATLAS names the same practiceAML.M0035AI Red Team, and Section 9’s loop is how the results stop decaying. - Output format enforcement –
v1.0-C7.1treats structure as a control: an output constrained to a schema cannot carry a paragraph of leaked instructions. - Detect hidden and encoded content in outputs –
v1.0-C7.3.4covers homoglyphs, formatting, metadata and structured fields, which is the return path of the evasion families in Chapter 2.
The practical rule: keep the system prompt short, put nothing in it that would hurt if published, and hold your defence in the action scope rather than the wording.
N – Nondisclosure
Inspect what leaves, and constrain what the output can trigger.
- Block system prompt and backend disclosure –
v1.0-C7.3.2requires output filters that detect and block responses disclosing system prompt content or backend data. This is LLM08: Hidden Context Exposure, covered as an attack in Chapter 2 Section 6. - Classify every response –
v1.0-C7.3.1requires automated classifiers on every response against defined harmful content categories. - Prevent output from triggering outbound requests –
v1.0-C7.3.3, and this one deserves attention out of proportion to its length. It is the EchoLeak control: the exfiltration leg of that attack was a rendered image request to an allowlisted proxy. An output that cannot cause a fetch cannot exfiltrate through a renderer. - Propagate classification labels downstream –
v1.0-C5.2.7carries data classification into embeddings, prompt caches and model outputs, which is Layer 1’s discipline extended to the artifacts your application creates.
What LEARN Does Not Cover
This is the section that justifies the standard, and leaving it out is how a mnemonic quietly becomes a ceiling.
LEARN’s five letters reach five chapters. Six of the twelve have no letter at all:
| Uncovered chapter | Why it has no letter | Where the course has already met it |
|---|---|---|
v1.0-C1 Training Data Integrity |
Not usually the app developer’s artifact – but it is somebody’s | Layer 1, Chapter 2 Section 3 |
v1.0-C3 Model Lifecycle & Change Control |
Feels like MLOps, fails like security: an unreviewed model swap changes behaviour under a passing test suite | Layer 2, Section 9’s re-scan triggers |
v1.0-C6 Supply Chain for Models |
Weights, adapters and dependencies | Layer 2, nullifAI in Chapter 2 Section 3 |
v1.0-C8 Memory, Embeddings & Vector DB |
The biggest gap. Durable state is where WarningASI06: Memory and Context Poisoning lives | Layer 1, Layer 5 |
v1.0-C10 MCP Security |
23 requirements. The course teaches three MCP incidents and had no verification counterpart | Chapter 2 Section 5 |
v1.0-C12 Monitoring & Logging |
You cannot investigate what you did not record | Layer 6, AML.M0024 |
Two of these deserve singling out because the course has spent real time on the attacks and never on the checks.
Memory (v1.0-C8). Chapter 2 Section 5 rates ASI06 the worst agentic category to already have – both invisible to the user and indefinitely persistent. The chapter is small and specific: C8.1.3 requires retrieval operations to enforce scope constraints, C8.1.2 makes document metadata tags immutable after the initial write, C8.3.2 requires that memory can be reset, and C8.3.3 requires quarantined content to be retained but excluded from retrieval. That last pair is the incident-response capability for a poisoned memory, and most systems discover they lack it during the incident.
MCP (v1.0-C10). Three of this course’s case studies are MCP incidents – CurXecute, MCPoison, and the postmark-mcp rug pull. The chapter answers them directly: C10.1.2 allow-lists MCP servers, C10.1.3 requires locally launched servers to run in a least-privilege sandbox, C10.2.5 requires access control on every tool invocation validating both the tool and the specific argument values, and C10.2.7 forbids passing client tokens through to downstream APIs.
The gap is the point
A mnemonic covers what its letters spell. That is its strength for recall and its weakness as a checklist, and the failure is silent – nobody notices the chapter that has no letter. Use LEARN to remember; use the chapter list to be complete. If you take one habit from this section, make it running the twelve-chapter list rather than the five-letter one when the question is “what have we missed?”
Worked Example: Verifying an Agent Against v1.0-C9
Take the incident Section 9 closes on and run it the other way – from the attack to the requirements that would have failed the review.
The incident. Injected text in repository content caused GitHub Copilot to write "chat.tools.autoApprove": true into .vscode/settings.json, disabling every confirmation prompt, after which it executed arbitrary commands with the developer’s privileges. Wormable, because the payload could be committed back.
What a v1.0-C9 review would have flagged, before the CVE existed:
| Requirement | The check | Verdict on Copilot as shipped |
|---|---|---|
v1.0-C9.2.5 |
“any self-modification capability (e.g., prompt rewriting, tool-list changes, parameter updates) is restricted by enforceable boundaries” | Fail. The agent could rewrite the file governing its own approvals |
v1.0-C9.2.1 |
Runtime blocks high-impact actions until approval is received and verified | Fail. The settings write took no approval at all |
v1.0-C9.3.5 |
Components processing untrusted data isolated from tool-calling | Fail. Repository content was read into the same context that held file-write capability |
v1.0-C9.2.3 |
Each high-impact action carries a reversibility classification | Fail. A config write that disables approvals is the most consequential write in the system and was classified as an ordinary file operation |
Four Level 1 and Level 2 failures, all findable at design review, none requiring knowledge of the specific attack. That is the argument for a verification standard in one table: C9.2.5 was not written in response to CVE-2025-53773 – it describes the class, and any agent that can edit its own approval configuration fails it whether or not anyone has published an exploit yet.
Compare that with what Section 9’s loop could do here. SCAN would have found that the agent follows instructions in files it reads. PROTECT could not have caught the payload as text, because it was an ordinary sentence about a configuration setting. The loop finds the susceptibility; the standard names the structural control. Neither replaces the other, and this incident needed both.
Section 10 → OWASP Mapping
Application-level verification is not a layer, so it does not own categories the way Layers 1-6 do. What it does is give each category a checkable counterpart, which is what the master mapping has been pointing at all along.
| Category | Verify against | What still cannot be verified here |
|---|---|---|
| LLM01: Prompt Injection | v1.0-C2.1 – normalisation, smuggling detection, screening of all steering inputs |
That the filter holds. The residual is a design assumption, not a checkbox |
| LLM02: Sensitive Information Disclosure | v1.0-C5.2.4 post-inference filtering, v1.0-C7.3.2 disclosure blocking |
Memorised training data – that is v1.0-C1 and Layer 1, upstream of the application |
| LLM03: Excessive Agency | v1.0-C9.2 approvals and reversibility, v1.0-C9.3 isolation and tool authorization |
Nothing structural – this is the category AISVS covers best and the one LEARN covered worst |
| LLM08: Hidden Context Exposure | v1.0-C7.3.2 output filters for system prompt content |
That the context stays secret. Keep nothing in it that would hurt if published |
| LLM09: Vector and Embedding Weaknesses | v1.0-C8.1 retrieval scope and tenant isolation, v1.0-C8.2 embedding sanitisation |
Corpus curation upstream – Layer 1 |
| LLM10: Improper Output Handling | v1.0-C7.1 format enforcement, v1.0-C7.3.3 no output-triggered outbound requests |
The sink’s own encoding. Each consumer encodes for itself |
| WarningASI01: Agent Goal Hijacking | v1.0-C9.3.5 untrusted-data isolation, v1.0-C9.1 budgets and circuit breakers |
Detection of the hijack itself – Layer 6 sees consequences |
| WarningASI03: Identity and Privilege Abuse | v1.0-C9.4.1 per-agent cryptographic identity, v1.0-C5.2.5 isolated policy decision point |
Human misuse of legitimate access – Layer 4 |
| WarningASI04: Agentic Supply Chain Vulnerabilities | v1.0-C10.1 MCP component integrity and allow-listing, v1.0-C6 model supply chain |
A rug pull after approval – v1.0-C10.1.2 bounds it, nothing eliminates it |
| WarningASI06: Memory and Context Poisoning | v1.0-C8.1.2 immutable metadata, v1.0-C8.3.2 memory reset, v1.0-C8.3.3 quarantine |
A poisoned entry that reads as an ordinary preference. Nothing here flags it |
Read the third column and the pattern matches every layer section in this chapter: verification establishes that a control exists and is correctly built. It never establishes that the control cannot be beaten. A fully-passing AISVS Level 2 assessment is a strong statement about your engineering and not a statement about your adversary.
Blueprint, LEARN, AISVS: Which to Reach For
| You are… | Reach for | Because |
|---|---|---|
| Designing the platform | Blueprint | It is organised by what you deploy and who owns it |
| In a design review, from memory | LEARN | Five letters you can hold in your head, indexing the right chapter |
| Writing or reviewing application code | AISVS, at your target level | Testable, specific, and someone else can check your answer |
| Answering a supplier questionnaire | AISVS with pinned identifiers | Vendor-neutral and citable; “we meet v1.0-C9 Level 2” means something |
| Deciding what to fix first | The Top 10 lists, then AISVS | Threat prioritisation first, then the requirement that addresses it |
| Keeping any of it current | Section 9’s loop | Verification is a point-in-time statement; the loop is what stops it ageing |
The last row is the one to internalise, and it is why this section sits after Section 9 rather than before it. An AISVS assessment is true on the day it is signed. The model gets updated, a retrieval source is added, a tool binding changes – and requirements that passed now describe a system you no longer run. Verification and the continuous loop are the same discipline seen from two ends: the standard tells you what “correct” means, and the loop tells you whether you are still it.
Checking this section is still current
AISVS 1.0 was published 24 June 2026 and its 1.0 folder is locked, so every identifier cited here is stable. Later releases land in new version folders and may renumber – a 1.01-dev folder is already open in the repository, which is exactly why the version belongs in the citation rather than in a footnote. Before relying on a citation in your own documents, check the OWASP AISVS repository for the current version, and keep the v1.0- prefix on anything you have already written – that is what makes an old document readable rather than wrong.
Requirement counts quoted in this section come from data/frameworks.yaml, the course’s single source for framework versions, and were verified against the locked 1.0/en folder. Be wary of secondary summaries: several widely-circulated write-ups state chapter and requirement counts that do not match the standard.
Framework versions and counts on this page were verified on 17 August 2026. Counts and versions were checked against each project's own repository or release on the date shown. All of them move; the distinctions they encode do not. Re-check before quoting a number in an audit or a risk register.
Key Takeaways
- AISVS 1.0 is the application-level answer the Blueprint does not give – 191 testable requirements across 12 chapters at 3 levels, vendor-neutral and citable, published 24 June 2026.
- Pin the version in every citation.
v1.0-C9.2.5, never bareC9.2.5. Identifiers move between versions, and this course has already been through one Top 10 renumber that silently broke every unpinned reference. - LEARN is a recall aid, not a checklist. Its five letters reach five of twelve chapters; six have no letter, and the two that matter most are Memory (
C8) and MCP (C10) – exactly where this course’s agentic case studies live. - An instruction hierarchy is a model property you select, not code you write.
v1.0-C2.1.6requires the system to enforce it; the mechanism is training-time, so you satisfy it by choosing the model and supplying provenance labels. - “Add human approval” is not a control until you say when it fires and what it is bound to. CurXecute’s approval ran after execution; MCPoison’s was bound to a name instead of contents. Both had approvals.
v1.0-C9.2.5describes the class, not the CVE. Any agent that can edit its own approval configuration fails it, published exploit or not – which is what a verification standard buys you over an incident list.- A passing assessment is a statement about your engineering, not about your adversary, and it is true only on the day it is signed. Section 9’s loop is what keeps it true.
Test Your Knowledge
Ready to test your understanding of AISVS and LEARN? Head to the quiz to check your knowledge.
Up next
You now have the threat lists, the Blueprint, the continuous loop, and a verification standard to hold it all to. What remains is the part no framework can supply: the people. In Section 11 you’ll cover AI red-teaming, incident response for AI systems, and the regulatory frameworks – NIST AI RMF and the EU AI Act – that turn all of this into an organizational practice rather than a project.