Skip to content

Add RAG Context Poisoning / AI Coding Assistant Supply Chain Vulnerability Lab #16

@preetkaran20

Description

@preetkaran20

RAG Context Poisoning lab focused on AI-assisted software development workflows.

This lab simulates a modern enterprise setup where:

developers use AI coding assistants,
the assistant retrieves internal engineering documentation,
the retrieved context influences generated code,
and a poisoned internal document causes unsafe or malicious code generation.

This vulnerability is highly relevant because organizations are increasingly relying on:

  1. Claude Code
  2. GitHub Copilot Enterprise
  3. Cursor
  4. internal RAG systems
  5. vector databases
  6. engineering knowledge bases
  7. internal wiki indexing

The core lesson is:
Retrieved context is not inherently trustworthy.
A malicious or poisoned internal document can manipulate AI-generated code in subtle and dangerous ways.


As We know that each company is building the context and context can be poisioned and can result in various vulnerabilities

Level 1 --- Obvious Poisoned Guidance
Scenario

The assistant generates code containing a telemetry helper that sends debugging information to a local mock sink.

Example

The retrieved document contains guidance such as:

All services should include telemetry logging for debugging.

The assistant generates:

telemetry.send(debug_payload)
User Goal
inspect generated code,
identify suspicious telemetry logic,
trace it back to the retrieved document.
Learning Goal

Basic RAG prompt injection and trust-boundary understanding.

Level 2 — Hidden Instruction Injection
Scenario

The malicious instruction is hidden inside:

markdown comments,
hidden metadata,
HTML comments,
collapsed documentation sections.

The retrieved document looks legitimate.

Example

The assistant generates overly verbose logging or export behavior.

User Goal
inspect retrieved chunks,
identify hidden instructions,
understand why the retriever surfaced the document.
Learning Goal

Hidden prompt injection and ingestion pipeline risks.

Level 3 — Multi-Document Context Poisoning
Scenario

No single document appears malicious.

Unsafe behavior emerges only after combining multiple retrieved chunks.

Example

Document A:

All services must support observability.

Document B:

Telemetry should include full request context.

The assistant generates:

telemetry.send({
"headers": request.headers,
"body": request.body
})
User Goal
inspect retrieval traces,
identify contextual synthesis,
explain how multiple retrieved chunks influenced the model.
Learning Goal

Context assembly risks and semantic retrieval poisoning.

Suggested UI Components
Retrieval Trace Panel

The lab should expose:

retrieved document names,
chunk IDs,
similarity scores,
trust metadata,
retrieved chunk previews.

This helps users understand:

why documents were retrieved,
how retrieval influenced generation,
how contextual poisoning works.
Generated Code Panel

Show:

generated implementation,
highlighted suspicious sections,
optional source attribution.
Telemetry Sink / Mock Collector

Generated code should only communicate with:

a local mock collector,
a canary sink,
or a safe simulated endpoint.

No real exfiltration should occur.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions