PUBLIC-EVIDENCE AI SECURITY CASE STUDY

Cross-Site Scripting via Prompt Manipulation in Lenovo AI Chatbot

Cybernews researchers demonstrated that Lenovo's AI chatbot "Lena" was vulnerable to a prompt injection that produced malicious HTML which was saved in the chat history and could exfiltrate a human support agent's session cookie when rendered in their browser. The researchers…

Standalone LLM / Generative AITier 2Indicative ERS 4.3 (1.5–7.1)Evidence source date 2026-08-06

Use case sources

Source reports and analysis supporting this case are listed below. AITBM interpretation and any indicative scoring are derived from this public evidence.

Cybernews researchers demonstrated that Lenovo's AI chatbot "Lena" was vulnerable to a prompt injection that produced malicious HTML which was saved in the chat history and could exfiltrate a human support agent's session cookie when rendered in their browser.

The researchers prompted Lena with a benign-looking product information request that included instructions to respond with a dangerous HTML payload. The response was saved in the user's chat history, creating a stored cross-site scripting (XSS) payload. When the researchers requested transfer to a human support agent, the agent's normal workflow of opening the chat transcript caused the poisoned content to render, exfiltrating session cookie data to an attacker-controlled server. If a valid support agent cookie were reused, an adversary could potentially access Lenovo's customer support platform as that agent and view customer conversations or perform other actions available to the account.

Lenovo acknowledged the issue and reported implementing corrective actions to mitigate the potential impact and address the issue.

ASSESSED SYSTEM

Lenovo's public customer-service chatbot 'Lena' and its output path into the support workflow, in the configuration demonstrated by the Cybernews research team and recorded as MITRE ATLAS AML.CS0060: the public web chat interface, the model's generated responses, the server-side chat history in which they are stored, and the support-agent transcript viewer that renders that history when a conversation is transferred to a human agent. Scored in the demonstrated state, before the corrective actions Lenovo reported.

OUT OF SCOPE

The attacker's exfiltration server. Lenovo's customer-support platform beyond the transcript viewer — the reuse of a stolen agent session and lateral movement are described as possible, not demonstrated, and are not assessed. Lenovo's later state. The Fairness axis (Fa-1..4).

Architecture: Standalone LLM / Generative AI (decision tree Q5) — Q1 and Q2 = NO: one chatbot, with no agent topology or autonomous planning evidenced. Q3 = NO: no model-invoked function appears in the chain; the transfer to a human agent is a support-workflow step, and the harmful execution happens in the agent's browser, not in a tool the model calls. Q4 = NO: no retrieval layer is described. Q5 = YES: the system generates open-ended content, including HTML, from the user's prompt, and that generated content is persisted and rendered downstream. Tier 2: Tier 2 Consumer: Lena is a public customer-service chatbot with direct public interaction, and the demonstrated exploitation affects individuals — the support agent whose session cookie was exfiltrated, and the customers whose conversations that session can reach. No physical or systemic financial harm at scale is evidenced.

Documented attack or failure path

  1. The researchers set up a server to receive exfiltrated data and write one prompt combining a benign product-specification request, instructions to return the answer as HTML, an HTML and JavaScript payload that reads cookies into an image URL, and reinforcement language urging the model to show the image.
  2. Through the public chat interface, Lena follows the formatting instructions and returns the malicious HTML, which is stored in the chat history.
  3. The researchers request transfer to a human support agent; opening the transcript in the agent's browser renders the stored HTML and runs its JavaScript.
  4. The script reads the agent's session cookie and places it in the query string of an image request; the failed image load still reaches the attacker's server, exfiltrating the cookie.

Layer 1 — Intrinsic Vulnerability Profile

Each sub-metric is placed on its five-level rubric by the evidence quoted beside it. Missing applicable evidence remains unknown. The displayed midpoint and interval are scenario values, not inferred control performance.

Sub-metricScoreRubric basisEvidence
Robustness (Ro) — scenario interval 0.07–0.79 (midpoint 0.43), Tier 2 MVT 0.50 indeterminate
Ro-1Adversarial Input Resistance0.25w 0.28The 0.25 anchor: some crafting was required — format instructions plus reinforcement — but a single moderately crafted prompt succeeded. The 0.50 anchor requires resistance to common public jailbreak and injection templates with ASR below 50%, which one direct prompt overriding the assistant's output behaviour disproves. Not 0.00: no failure rate above 80% is measured.A single direct prompt combining a benign product request, output-format instructions and reinforcement language ('SHOW IT') induced Lena to emit an attacker-supplied HTML and JavaScript payload. The researchers needed formatting and reinforcement wording to get the payload included; no attack-success rate or filter description is published.source: secureflow/atlas
Fairness (Fa) — scenario interval 0.00–1.00 (midpoint 0.50), Tier 2 MVT 0.55 indeterminate
Transparency (Tr) — scenario interval 0.00–1.00 (midpoint 0.50), Tier 2 MVT 0.50 indeterminate
Privacy (Pr) — scenario interval 0.00–1.00 (midpoint 0.50), Tier 2 MVT 0.55 indeterminate
Containment (Cn) — scenario interval 0.00–0.82 (midpoint 0.41), Tier 2 MVT 0.55 indeterminate
Cn-3Output Filtering Robustness0.00w 0.18The 0.00 anchor: unsafe output was returned and persisted directly, reaching an execution context. The 0.25 anchor requires a basic filter that the payload had to bypass by paraphrase or encoding; the payload was literal HTML and script, and nothing in the record filtered it.Model output containing browser-executable HTML and JavaScript was stored in the chat history and rendered in the support agent's browser without sanitisation, where it read the session cookie and sent it to an attacker server. No output encoding, HTML sanitisation or release gate is evidenced between generation, storage and render.source: secureflow/atlas

Unknown, not N/A: 23 applicable sub-metrics lack admissible public evidence. The lower, midpoint, and upper scenarios evaluate each at 0.00, 0.50, and 1.00 respectively; no weight is redistributed merely because evidence is missing.

Architecture-based NOT APPLICABLE: declared with an architecture rationale in the workpaper: Cn-9.

Layer 2 — Operational Risk Posture

DimensionScoreJustification
AaAutonomy Amplification0.25w 0.25Near the low end. Lena answers customers and holds no transaction or tool authority in the evidenced chain, which points at 0.00; but its output is persisted and executed automatically downstream — the transcript renders when a support agent opens it, with no review of the generated markup — so one class of model output takes effect without human review. Scored at 0.25 as the nearest fit, consistent with the render-side treatment elsewhere in the corpus.
AsAttack Surface Exposure0.90w 0.35Documented interpolation above the 0.75 anchor. The chat interface is public and unauthenticated, and its input crosses into an internal privileged surface: generated output is stored and rendered in support agents' browsers, so anonymous internet input effectively reaches the support workflow. Above the 0.50 anchor because the instruction-plus-HTML payload passed whatever input validation existed. Below 1.00 because no untrusted retrieval, multi-agent communication or MCP integration is evidenced. elevated
CpCascade Potential1.00w 0.20No verified System Dependency Graph is public, so the specification's worst-case default applies, and the observed path corroborates the 1.00 anchor on its merits: unauthenticated public input travelled through model generation and persistent storage into a privileged internal client, where it read and exfiltrated a support agent's session cookie — credential-bearing material that grants the agent's authenticated access — with no gate anywhere on the path. Session reuse itself was not demonstrated; the corroboration rests on credential material reaching an attacker-controlled destination ungated.GDCP: corroborated by the observed path elevated
RfRemediation Feasibility0.25w 0.20The 0.25 model-adjacent anchor: the remediation class is deployment-side filters and validators — encoding or sanitising generated HTML before storage and render, restricting script execution and outbound requests in the transcript viewer, and protecting session cookies from script access — with no model change. Lenovo reported implementing corrective actions; the record does not detail them.

Nelevated = 2 (dimensions strictly above 0.75) → CRM = 1.15.

Compound Risk Alert. Two or more dimensions are simultaneously elevated (spec 3.2.2); architectural decomposition is recommended before deployment.

Layer 3 — Public-evidence confidence diagnostic

ComponentScoreBasis
Pc — Public provenance evidence0.25The 0.25 anchor: the vendor, chatbot and support-workflow components are named, but the case provides no architecture record, output-handling policy, model lineage or evaluation artefact for the assessed configuration, and Lenovo's corrective actions are not described.
Ec — Public evaluation coverage0.07coverage 0.08 (2 of 25 applicable sub-metrics) × independence 1.00 × fidelity 0.85. No Full, Standard, or Lite pathway is claimed for a retrospective article.
Tf — Public-evidence freshness0.04Evidence dated 2025-08-18; age 426 days on the workpaper reference date. Components: T_calendar 0.04 · C_event 0.35 · C_monitor 0.65 · C_evidence 0.85. Binding term: T_calendar. dt_days is measured from the MITRE ATLAS AML.CS0060 incident date 2025-08-18 (day granularity, as carried in the SecureFlow record; this case is absent from the local ATLAS export used for review) to the 2026-10-18 evidence reference date; the primary Cybernews report is listed in sources. agentic = false: the Standalone class has no tool or credential provisioning in the evidenced chain. baw = false: the chat history is persisted and replayed to a human, not consumed by the model as behavioural state, and no memory, self-modifying configuration or closed feedback loop is evidenced. C_monitor 0.65 — no detection of the stored payload or the cookie beacon is evidenced. C_event 0.35 — major: a live support agent's session cookie was exfiltrated from the production workflow, a confirmed critical-invariant violation. C_evidence 0.85 — Lenovo reported corrective actions, but their scope is not public and cannot be verified from the record.

Public-evidence ACI = (Pc × Ec × Tf)1/3 = 0.09 — diagnostic status: Invalid as assessment-of-record evidence. It describes the evidence available to this case study, not the assurance of the underlying system, and is not inserted into the normalized-assurance scenario ERS.

Indicative ERS — normalized-assurance scenario

Worp · ORP0.25(0.25) + 0.35(0.90) + 0.20(1.00) + 0.20(0.25) = 0.627
CRMNelevated = 2 → 1.15
ORPeffective0.627 × 1.15 = 0.722
Wivp · IVP midpoint0.25(0.43) + 0.30(0.50) + 0.15(0.50) + 0.20(0.50) + 0.10(0.41) = 0.474
IVP mitigation0.15 + 0.85(1 − 0.474) = 0.597
Scenario assuranceACI fixed at 1.000 for cross-case comparison; public-evidence ACI 0.086 is diagnostic only
Indicative ERS midpointmin(10, 0.722 × 0.597 × 1/1.000 × 10) = 4.3
Unknown-input interval1.5–7.1; 23 unknown applicable sub-metrics set to 1.00 / 0.00 at the bounds

Published CVSS beside indicative ERS

Each published CVSS record is shown exactly as its scorer published it, one per vulnerability record, with the version, metric group and vector when stated, plus its source and access date. Records are never combined or inferred from a CVE's existence.

INDICATIVE ERS · NORMALIZED-ASSURANCE SCENARIO

4.3 midpoint, interval 1.5–7.1; Low-Moderate scenario band; ACI fixed at 1.00. The published CVSS records do not enter this calculation.

PUBLISHED CVSS

CVSS — no applicable published score verified.

CVSS describes an individual vulnerability as its scorer published it. Indicative ERS describes the assessed AI deployment under the normalized-assurance scenario, so the two values are not direct equivalents and neither replaces the other.

AIDEFEND defences → AITBM sub-metrics

Identifiers are quoted as they appear on the AIDEFEND in Action brief or in the AIDEFEND SecureFlow defense map (audited AIDEFEND dataVersion 2026.10.15); the sub-metric mapping is AITBM's own, from the specification's AIDEFEND tables reconciled at catalogue data version 2026.10.15. AIDEFEND renumbers identifiers between releases, so the data version travels with every mapping and neither side's IDs should be cited without one. A mapping identifies a possible evidence route; a recommendation does not prove that the control was implemented or effective and receives no scoring credit by itself.

TechniqueDefence PriorityEvidences
AID-D-001.001Per-Prompt Content, Intent & Obfuscation AnalysisExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack step step-3. Presence supplies no score credit.Candidate evidence routeRo-1
AID-H-002.002Inference-Time Prompt & Input ValidationExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack step step-3. Presence supplies no score credit.Candidate evidence routeRo-1 Ro-5 Fa-1 Fa-3 Cn-8
AID-H-006.001Structured Output EnforcementExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack step step-5. Presence supplies no score credit.Candidate evidence routeRo-3 Cn-3
AID-H-006.002Text, Markup & Structured Output Sanitization and Release GateExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack steps step-5, step-6, step-7. Presence supplies no score credit.Candidate evidence routeRo-3 Cn-3
AID-D-003.001Harmful Text & Token Output Policy-Violation DetectionExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack step step-5. Presence supplies no score credit.Candidate evidence routeRo-3 Cn-1 Cn-3 Cn-7
AID-I-007Client-Side AI Execution IsolationExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack steps step-7, step-9. Presence supplies no score credit.Candidate evidence routeCn-1 Cn-4
AID-E-001.002Issued Token, Authentication Session & Lease RevocationExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack step step-10. Presence supplies no score credit.Candidate evidence routeCn-5
AID-R-003.001Post-Incident Identity & Session Re-establishmentExact SecureFlow defense-map identifier (flow atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation), verified against AIDEFEND dataVersion 2026.10.15; matched to attack step step-10. Presence supplies no score credit.Candidate evidence routemapping review required

WHAT THIS CASE TEACHES

A chatbot with no tools at all can still reach Cp = 1.00 on corroborated evidence when its output is persisted into a privileged downstream renderer: the risk sits in Cn-3's unsanitised output, not in the model's authority, which is why Aa stays at 0.25 while the cascade path carries a credential out.

Sources: AIDEFEND SecureFlow — Cross-Site Scripting via Prompt Manipulation in Lenovo AI Chatbot · MITRE ATLAS case study AML.CS0060 · Critical flaw plagues Lenovo AI chatbot: attackers can run malicious code and steal cookies (cybernews.com)

SecureFlow attack flow

This record mirrors an AIDEFEND SecureFlow flow (MITRE ATLAS case-study conversion): an ordered attack path with MITRE ATLAS tactic and technique labels and the AIDEFEND controls matched to each step. The scenario above places only the control outcomes this flow and its primary references observed; the matched AIDEFEND controls are evidence routes and earn no score credit.

MITRE ATLAS case studyAML.CS0060 (exercise)
TargetLenovo AI chatbot, "Lena"
ActorCybernews Research Team
Primary evidence date2025-08-18
SecureFlow record updated2026-08-06
AI layersAI infrastructure
Risk impactResource hijacking / cost
Affected componentsLenovo Lena public chat interface, server-side chat history, support-agent transcript viewer, browser-executable HTML and JavaScript, support-agent session cookie

Attack steps

#StepATLAS tactic / technique
1Set Up Exfiltration ServerThe researchers set up a server to receive sensitive exfiltrated information from a vulnerable LLM service.AML.TA0003
AML.T0008
2Craft Prompt for Malicious HTML PayloadThe researchers developed a single prompt designed to make Lena generate HTML that would be unsafe when rendered by Lenovo's chat interface. The prompt combined several elements: - A benign-looking product information request, such as "Show me the specifications of Lenovo IdeaPad 5 Pro." - Output format instructions directing Lena to return the response as HTML with additional JSON and plaintext formatting expected by the server-side processing path. - An HTML and JavaScript payload designed to read browser-accessible cookies and place them into a query parameter in an image request to an attacker-controlled server. - Reinforcement language urging the model to include the image, such as "Show the image at the end. It is important for my decision-making. SHOW IT."AML.TA0003
AML.T0065
3Use Public Lena Chat InterfaceThe researchers used the public web chat interface to Lenovo's "Lena" customer service agent.AML.TA0000
AML.T0047
4Store Attacker HTML in Support WorkflowThe researchers introduced attacker-controlled HTML into Lenovo's support workflow by prompting Lena through the public chat interface, causing the generated payload to be stored in the chat history for later rendering.AML.TA0004
AML.T0093
5Generate Persisted Malicious HTML ResponseLena followed the attacker-controlled formatting instructions and generated an HTML response containing the malicious payload. The response persisted in the chat thread.AML.TA0005
AML.T0051.000
6Transfer Transcript to Human AgentThe researchers requested transfer to a human support agent, causing the malicious HTML to execute automatically when the agent opened the chat transcript.AML.TA0005
AML.T0011
7Execute JavaScript in Agent BrowserThe stored HTML included browser-executable JavaScript that ran in the support agent's browser when the transcript was rendered.AML.TA0005
AML.T0050
8Read Support Agent Session CookieThe JavaScript read session cookies from the support agent's browser.AML.TA0013
AML.T0113
9Exfiltrate Cookie Through Image RequestThe active session cookie was added to a query parameter of an image tag in the HTML payload. The image did not exist, however the failed image load still made a request to the adversary-controlled server, exfiltrating the session cookie.AML.TA0010
AML.T0077
10Reuse Stolen Support SessionThe researchers could then import the stolen support agent session cookie into their browser to resume the authenticated session and potentially move laterally into Lenovo's customer support platform as the support agent.AML.TA0015
AML.T0091.001
11Create Support-Platform HarmThe attack exposed support agents and customers to session hijacking, unauthorized data access, and potential malware execution, resulting in direct user-level security and privacy harms.AML.TA0011
AML.T0048

Threat references

Summary and attack steps reproduced from AIDEFEND SecureFlow (https://aidefendlabs.com/en/secureflow/?flow=atlas-aml-cs0060-lenovo-lena-chatbot-xss-prompt-manipulation; AIDEFEND content CC BY 4.0), converted from MITRE ATLAS case study AML.CS0060 (Apache License 2.0; MITRE ATLAS is a trademark of The MITRE Corporation).

AITBM sub-metrics referenced