This week
Bottom line
Unauthenticated network callers can run commands through Archon, and code through SGLang when its dumper port is set.
None of this week's new flaws is known to be exploited in the wild, but restrict Archon to trusted networks and turn off SGLang's dumper endpoint now.
Secure It
- Unauthenticated callers can reach the Model Context Protocol (MCP) web endpoint of Flyto2 Core and pass a command to its shell tool.
- Open WebUI has the most flaws, 19, and the worst, rated 8.6 out of 10, lets any website steal a signed-in user's session token.
- Attackers called CyberXero used Claude Code to run a campaign that stole over 628,000 Ukrainian records.
Build It
- The red-teaming tool garak adds a hit-at-k attack success rate metric to its evaluators.
- The Cloud Security Alliance's open letter says adding MAESTRO would strengthen the artificial intelligence (AI) control roadmap Google DeepMind published in June.
- Google Agent Development Kit for Python introduces finer control over tool execution, workflow approvals and deployment security.
Do this week
- Restrict network access to Archon, which binds to all network addresses by default.
- Disable the dumper endpoint in SGLang by leaving its dumper port unset.
- Upgrade Flyto2 Core to 2.26.4 (one upgrade closes all 2).
Build It
Defensive guidance, tools, and platform changes.
Defensive Research
MobileJailBench: Red Queen Jailbreak Benchmarking for Mobile Agents
MobileJailBench evaluates the security of MLLM-based mobile agents, revealing vulnerabilities to implicit jailbreaks and demonstrating a 100% attack success rate on a dynamic benchmark, highlighting the need for improved safety alignment and robust security assessment.
Beyond Surface Cues: Robust LLM-Generated Korean Text Detection
New benchmark for LLM-generated Korean text detection with robust and interpretable detector, outperforming baselines and resisting adversarial attacks.
Identify, Classify, Act: Per-Instruction Controlled Compliance for LLMs over External Data
EDIC improves safety and utility of LLMs over external data by per-instruction credit attribution and formalized decision-making, with 7.7% lift in harmful-rejection and 12.5% in Arena-Hard-Auto utility.
Refusal Is Not Robustness: Measuring Harmful Reachability in Autoregressive Language Models
Autoregressive language model safety evaluation using bounded continuation analysis (BCA) measures hidden harmful behavior beneath sampled safe responses, guiding red teaming efforts.
Show 3 moreShow fewer in Defensive Research
The LLM-Attacker: A Unified Red-Team Framework for Privacy Evaluation of Split and Distributed LLM Systems
LLM-Attacker framework records and compares privacy evaluations of split and distributed LLM systems, allowing researchers to test and extend evaluations, and measures the impact of attacker access, dataset choice, and compression defenses on recovery rates.
The Model Knows Better: Defending Medical Multi-Agent Systems Against Prompt Injection
Prompt injection attacks succeed in up to 61% of cases against medical multi-agent systems, but a proposed defense that verifies clinical judgments behind decisions outperforms baselines and lowers attack success to 4-7%
In the Guise of Correction: How Framing and Cultural Adaptation Erode LLM Safety on Real-World Criminal Cases
LLM safety benchmarking on real-world criminal cases shows framing and cultural adaptation erode safety, with correction-seeking prompts and non-English translations eliciting unsafe compliance, and models leaking Anglocentric registers.
Guidance & Tooling
garak v0.17.1
feat(evaluators): add hit@k attack success rate metric
AI Agents - You Can’t Govern What You Can’t Discover
AI is expanding faster than anyone can imagine, as organizations race to use AI to gain a competitive advantage.
I Love Google’s Agentic AI Security Roadmap: Adding MAESTRO Will Make It More Powerful — An Open Letter to Google
In June, Google DeepMind did something unusual: it published an AI control roadmap premised on the idea that its own AI agents might turn against it.
Your Roadmap to the Frontier Ready Journey
In April 2026 the Cloud Security Alliance, working with our partners SANS and RSAC, first published The “AI Vulnerability Storm”: Building a “Mythos-ready” Security Program that opened the floodgates on our research for understanding and…
Show 6 moreShow fewer in Guidance & Tooling
How one bug bounty researcher chooses the features they investigate
As we kick off Cybersecurity Awareness Month, the GitHub Bug Bounty team is excited to spotlight one of the top-performing security researchers participating in the GitHub Security Bug Bounty Program: @vaib25vicky!
GenAI and Agentic AI Exploit Roundup Q3 2026
Coverage period: July 1, 2026 through September 30, 2026 Overview This roundup consolidates selected major AI-related security incidents and exploit disclosures reported during the coverage period.
Sanctioned Apps, Unsanctioned AI: Governing the Agents Inside Your SaaS Stack
A sparkle icon shows up in the CRM.
GitHub Copilot CLI vulnerability: Cryptographic Context Injection steals developer secrets
Cryptographic Context Injection against a coding agent: one encrypted page makes GitHub Copilot CLI send local secrets to an attacker in 28 seconds.
promptfoo 0.124.0
providers: remove hosted ChatKit provider
How Much Assurance Does Your AI Supply Chain Need?
Introducing AIMM: The Artifact Integrity Maturity Model for AI/ML Supply Chain Trust and Provenance A team pulls a fine-tuned model from a public hub and puts it into production.
Builder Radar
OpenAI Agents SDK v0.24.0
expose MCP annotations on converted tools
Google Agent Development Kit (ADK) for Python v2.12.0
This release enhances execution performance in long sessions while introducing finer control over tool execution, workflow approvals, and deployment security.
Hello Python 3.15, goodbye 3.10, and now I can use 3.11
Python 3.15 is here!
Open WebUI v0.12.0
🧾 Passwords kept out of the audit log. With request auditing on, every field whose name ends in "password" is now masked in both logged requests and logged responses, including admin settings such as YaCy, Jupyter and the LDAP Application DN Password, and passwords containing a…
Show 6 moreShow fewer in Builder Radar
A new feature for my blog, built using my voice
I shipped a new feature for my blog today: the Newsletters page, which offers an index of all of the newsletters I've sent out, both my free weekly Substack and my monthly sponsors-only updates.
Google Agent Development Kit (ADK) for Python v2.9.0
This release focuses on agent resilience and ecosystem integration by introducing automatic model failover, native voice support via LiveKit, and compatibility with MCP SDK 2.x.
Google Agent Development Kit (ADK) for Python v2.11.0
This release adds graceful cancellation and tool confirmation to workflows, a tool for consulting another model mid-task, and a built-in SQLite memory service.
Claude Haiku 5.5
As previously promised, here's Anthropic's new fast, low cost model: Introducing Claude Haiku 5.5.
MLflow 3.17.0
[Model Registry / Tracking] Refuse to connect to client-named artifact hosts outside the default artifact root (GHSA-mr9f-g8qf-4w4j); [Gateway / Tracking] Reject conflicting protobuf field spellings in request bodies (GHSA-3g8m-hm3x-gh2r); [Model Registry / Tracking] Filter…
Langflow 1.12.5
fix(mcp): redact server credentials from management responses; fix(security): restrict built-in code execution to administrators; fix(security): confine stored chat attachments to authorized storage
Secure It
Critical and exploited vulnerabilities.
Active Threats
Mercury
Worst: From 3.0.0 until 3.2.4, a missing comma in BLOCKED_PATTERNS concatenates the /lab and /api/terminals regular-expression literals.
Show all 3 for Mercury
- CVE-2026-111057 fixed in 3.2.4
- CVE-2026-111058 fixed in 3.2.6
- CVE-2026-111059 fixed in 3.2.11
An untrusted search path in DeepSeek Harness (dsh) commit c291e796 allows attackers to execute arbitrary code via…
Kobako
From version 0.1.0 to before version 0.9.1, a guest mruby script running inside the Kobako sandbox can execute arbitrary Ruby in the host process, fully escaping the sandbox.
Decepticon
Versions prior to 1.1.17 wrap web crawl results — the output of agent reconnaissance against target services — into LLM messages without neutralizing ChatML special-token literals.
Show 36 more productsShow fewer in Active Threats
MCP Atlassian
Worst: Prior to 0.22.0, the HTTP transport accepts requests without a verified user identity and downstream fetcher construction falls back to the operator's globally configured Jira or Confluence credentials.
Show the 5 most severe for MCP Atlassian
- CVE-2026-77244 fixed in 0.22.0
- CVE-2026-77254 fixed in 0.22.0
- CVE-2026-77271 fixed in 0.22.0
- CVE-2026-77243 fixed in 0.22.0
- CVE-2026-77262 fixed in 0.22.0
MaxKB
Worst: Prior to version 2.10.5-lts, assistants with a tool, MCP tool, skill, or sub-application use SandboxShellBackend, which exposes an execute shell tool without excluding it and omits execute from interrupt_on, so human…
Show the 5 most severe for MaxKB
- CVE-2026-77521 fixed in 2.10.5-lts
- CVE-2026-79916 fixed in 2.10.5-lts
- CVE-2026-77523 no fix named yet (affected through 2.10.3-lts)
- CVE-2026-79917 no fix named yet (affected through 2.10.4-lts)
- CVE-2026-79919 fixed in 2.10.6-lts
IBM Langflow OSS
Worst: Prior to 1.9.0, any authenticated Langflow user can achieve Remote Code Execution (RCE) on the server by adding an MCP server with the "Stdio" transport.
Show the 5 most severe for IBM Langflow OSS
- CVE-2026-105740 fixed in 1.9.0
- CVE-2026-105697 fixed in 1.10.3
- CVE-2026-93675 no fix named yet (affected through 1.12.2)
- CVE-2026-93674 no fix named yet (affected through 1.12.2)
- CVE-2026-104334 no fix named yet (affected through 1.12.2)
obsidian-tc
Worst: Prior to 1.3.1, tool dispatch does not compare the caller-controlled input.vault value with the vault bound to the caller, the JSON Web Token (JWT) has no vault claim, and the folder access-control list is shared…
Show all 5 for obsidian-tc
- CVE-2026-77366 fixed in 1.3.1
- CVE-2026-77363 fixed in 1.3.1
- CVE-2026-77364 fixed in 1.3.1
- CVE-2026-77361 fixed in 1.3.1
- CVE-2026-77362 fixed in 1.3.1
GitLab
Worst: GitLab has remediated a vulnerability in the GitLab AI Gateway component affecting all versions of the AI Gateway from 18.1.6 before 19.2.4, 19.3 before 19.3.2, and 19.4 before 19.4.1 that, under certain conditions…
Show all 3 for GitLab
- CVE-2026-90970 fixed in 19.2.4, 19.3.2 and 19.4.1
- CVE-2026-96893 fixed in 19.2.8, 19.3.5 and 19.4.2
- CVE-2026-92628 fixed in 19.2.7, 19.3.3 and 19.4.1
Astron Agent
Prior to 1.1.2, the default workflow code-node path through /console-api/workflow/code/run and /workflow/v1/run selects LocalExecutor in core/workflow/engine/nodes/code/code_node.py when CODE_EXEC_TYPE is not…
Langchain-Chatchat
Langchain-Chatchat through 0.3.1.3 exposes a POST /tools/call API endpoint that invokes any registered tool by name without authentication, leaving the always-registered shell tool callable.
piflow
piflow 2.0.0 through 2.0.1 contains a remote code execution vulnerability in its DeepAgents chat agent, whose POST /chat and POST /chat/stream endpoints lack authentication.
SGLang
Worst: SGLang contains an arbitrary code execution vulnerability caused by the ZMQ message decoder unconditionally deserializing PickleWrapper payloads via pickle.loads() in _maybe_unwrap_pickle without type allowlisting or…
Show the 5 most severe for SGLang
- CVE-2026-93034 no fix named yet
- CVE-2026-93088 no fix named yet
- CVE-2026-111391 no fix named yet (affected through 0.5.22)
- CVE-2026-109229 no fix named yet (affected through 0.5.21)
- CVE-2026-109228 no fix named yet (affected through 0.5.21)
LangChat
LangChat through commit 2a6285a contains a missing authentication vulnerability that allows unauthenticated remote attackers to access REST controllers because no Sa-Token interceptor is registered.
The EnergizeLab Eilik and EilikO FastAPI AI inference and profiling services expose AI model administration functions…
EXL3
ExLlamaV3’s EXL3 loader uses an untrusted, model-supplied index to select a CUDA kernel without first verifying that the index is within bounds.
TransformerOptimus SuperAGI v0.0.14 is vulnerable to Incorrect Access Control in the tool controller. In affected…
SuperAGI
Worst: SuperAGI up to v0.0.14 contains an improper access control vulnerability in the agent execution controller.
Show all 2 for SuperAGI
- CVE-2026-51904 no fix named yet (affected through v0.0.14)
- CVE-2026-51901 no fix named yet (affected through 0.0.14)
RAGFlow
Worst: RAGFlow 0.24.0 contains improper access control in get_dataset (api/apps/evaluation_app). Depending on the exposed entry, an attacker can trigger attacker-controlled code or command execution
Show the 5 most severe for RAGFlow
- CVE-2026-51897 no fix named yet
- CVE-2026-51893 no fix named yet
- CVE-2026-51896 no fix named yet
- CVE-2026-51895 no fix named yet (affected through 0.24.0)
- CVE-2026-51894 no fix named yet
langflow-ai langflow v1.9.3 is affected by: Code Injection. The impact is: execute arbitrary code (remote). The…
The /knowledge_base/upload_temp_docs temporary document upload endpoint in Langchain Chatchat 0.3.1 is vulnerable to…
Devika v1.0 is vulnerable to Code Injection in the Runner.execute function in src/agents/runner/runner.py which allows…
metatool-ai MetaMCP
Worst: metatool-ai MetaMCP up to and including 2.4.22 is vulnerable to Code Execution in the internal MCP inspector proxy endpoint GET /mcp-proxy/server/stdio (createTransport, STDIO branch, routers/mcp-proxy/server.ts).
Show all 2 for metatool-ai MetaMCP
- CVE-2026-79538 no fix named yet (affected through 2.4.22)
- CVE-2026-79537 no fix named yet (affected through 2.4.22)
Open GenAI Stack
Open GenAI Stack (aka ogx-ai) 2026-06-11, as used in the Meta AI backend for WhatsApp and other products, allows code execution because prompt injection (with Jinja2 template syntax) can be used to achieve server-side…
NetLicensing MCP Server
Prior to 0.1.8, netlicensing_get_product passes the caller-controlled product_number to src/netlicensing_mcp/tools/products.py, which interpolates it into a REST path consumed by nl_get() in…
An OS command injection vulnerability in the shell-based temporary-file cleanup instructions in Progress Software…
Ollama is vulnerable to path traversal in the `/api/pull` endpoint due to insufficient validation of layer digests by…
Missing Authorization (CWE-862) and Initialization of a Resource with an Insecure Default (CWE-1188) in the MCP proxy…
Missing Authentication for Critical Function (CWE-306) and Missing Authorization (CWE-862) in the /libp2p-http ingress…
Archon
Archon 0.2.13 through 0.11.1 contains a missing authentication vulnerability that allows unauthenticated attackers to access the /api/* control API, which binds to 0.0.0.0 by default.
x64dbg-MCP Server
Worst: Prior to 1.1, x64dbg-MCP Server exposes all MCP debugger tools over HTTP and SSE without authentication while listening on 0.0.0.0 by default.
Show all 2 for x64dbg-MCP Server
- CVE-2026-107824 fixed in 1.1
- CVE-2026-107820 fixed in 1.2
OS command injection in the Studio Space startup validation script in Amazon SageMaker Distribution 2.x before 2.14.12…
Obot
Worst: obot versions before v0.21.1 fail to enforce Access Control Rules on the /mcp-connect endpoint, allowing any authenticated user to connect to restricted MCP servers if they possess the server ID.
Show the 5 most severe for Obot
- CVE-2026-101084 fixed in v0.21.1
- CVE-2026-101065 no fix named yet
- CVE-2026-101062 fixed in v0.23.0
- CVE-2026-103758 no fix named yet (affected through 0.24.1)
- CVE-2026-101064 fixed in v0.23.0
LightLLM
Worst: LightLLM through 1.2.0 contains a remote code execution vulnerability in the KV-transfer worker when started with --pd_trans_mode nccl, which exposes an unauthenticated RPyC control channel that deserializes…
Show all 3 for LightLLM
- CVE-2026-96560 no fix named yet (affected through 1.2.0)
- CVE-2026-103270 no fix named yet (affected through 1.2.0)
- CVE-2026-103042 no fix named yet (affected through 1.2.0)
DBHub
Worst: Versions prior to 0.22.5 expose an unauthenticated HTTP MCP endpoint when started with the documented HTTP transport mode, for example `--transport http --port 8080`.
Show all 2 for DBHub
- CVE-2026-61742 fixed in 0.22.5
- CVE-2026-61788 fixed in 0.22.6
Claude Agent SDK
Prior to 0.2.121, the resume option is passed to the Claude CLI as a separate token without validation, so a dash-leading value is parsed as an independent CLI flag.
NullHub
NullHub through 2026.5.29 contains a missing authentication vulnerability that allows unauthenticated attackers to access the /api/* management API because the auth_token field defaults to null and is never assigned.
common_chat_peg_mapper
llama.cpp before b11393 contains a use-after-free and double free vulnerability in common_chat_peg_mapper::map that allows unauthenticated remote attackers to corrupt heap memory via a dangling current_tool pointer.
Flowise
Worst: Flowise through 3.1.4 resolves SSO and local-password users solely by email without storing provider or subject identifier bindings, allowing attackers to authenticate as any existing user by claiming their email at…
Show the 5 most severe for Flowise
- CVE-2026-100607 no fix named yet (affected through 3.1.4)
- CVE-2026-100606 no fix named yet (affected through 3.1.4)
- CVE-2026-100608 no fix named yet (affected through 3.1.4)
- CVE-2026-100610 no fix named yet (affected through 3.1.4)
- CVE-2026-100609 no fix named yet (affected through 3.1.4)
DeepSeek V4 is vulnerable to Incorrect Access Control via a crafted input.
Attack Research
Interpreting SSL Representations for Spoof Detection: a WavLM Study
WavLM's mid-layers capture most spoof-relevant acoustic features, while later layers encode synthesis artifacts, suggesting potential vulnerabilities to voice quality measures
MobileInject: Evaluating Reasoning-to-Action Security of MLLM-Based Mobile Agents under Cross-Modal Consistency Injection
Mobile agents are vulnerable to multimodal injection attacks, exploiting cross-application mobile content to steer behavior, with reasoning hijacking a major failure point.
Trojan Horse: Automated Repository Poisoning against Coding Agents
Automated framework TrojanForge successfully poisons 60%+ of coding agents across 6 domains and 9 languages, with backdoor injection exceeding 90%, demonstrating a realistic threat to deployed AI systems.
When Approval Becomes Execution: Authorization-Grounded Workflow Attacks on Tool-Using Agents
Authorization-grounded workflow attack exploits context-bound tokens, allowing an agent to bypass authorization checks and execute unauthorized actions on enterprise workflows.
Show 9 moreShow fewer in Attack Research
ECHO: Replacing the Compliance Proxy with Response Harmfulness in Optimization-Based Jailbreak Attack
ECHO replaces compliance proxy with response-level harmfulness scores, achieving up to 0.898 StrongREJECT mean score and 89.23% HarmBench success against open-weight victims on AdvBench.
Stealthy Poisoning Attacks via Reused KV Cache of Reasoning
R$^2$ECAP attacks LLMs via reused KV cache by planting poisoned reasoning traces through chat interface, achieving up to 79% attack success rate and remaining stealthy
SAFETYEDIT: Sparse Internal Targets with Prompt-Wide Control for LLM Jailbreak Backdoors
SAFETYEDIT proposes a sparse internal target for LLM jailbreak backdoors, achieving high triggered Guard ASR and StrongREJECT scores across four open-weight LLMs and three dataset groups, with minimal impact on untriggered behavior.
Everyone's a little bit racist: a novel ML backdoor attack in black-box mode
A model-agnostic, black-box technique activates a latent backdoor in MNIST and production-grade NSFW classifiers without modifying training data or weights, enabling attackers to inject racist biases.
Federated Art Chase: Privacy Leakage and Data Poisoning in Federated Fine-Tuning
Federated learning model fine-tuning can leak private data and be poisoned by malicious clients, with attack success rates up to 54.7% for backdoor attacks and 12.6% for label flipping.
Trigger Value Selection in Clean-Label Malware Backdoors: An Effectiveness-Detectability Analysis
Trigger value selection in clean-label malware backdoors affects attack success rate and detectability, with aggressive selectors being easier to detect but less effective, and conservative selectors being harder to detect but more effective.
Clean Data Can Still Carry Backdoors: Support-Persistent Backdoors for Model Reuse
Clean data can be used to create persistent backdoors in models through DAR, a support-persistent backdoor method that retains its behavior after clean-data distillation, with attack success above 96% after clean KD.
Resisting Harmful Instructions through Training-Free Weight Editing
Training-free weight editing reduces compliance with targeted undesirable instructions in language models, improving honest response rates by 6.2-4.6% and reducing sexist responses by 57.9-11.9%.
Screwtape: Adversarial Transcript Editing for Monitor Red-Teaming
Screwtape edits real agent transcripts to evade action-only monitors, producing 35 attacks that evade 2 monitors, demonstrating a red-teamer's ability to find monitor blind spots without access to infrastructure.
Incidents & Advisories
From Email-to-Case to the Boardroom: How Inherited Agents Break Governance Built for Software
Salesforce Agentforce agents can respond to events without proper governance, potentially leading to misuse
Fake Web3 Accelerator Uses npm Packages to Spread Malware and Hijack AI Agent Traffic
A fake Web3 accelerator spreads malware and hijacks AI agent traffic by pushing malicious npm packages to Windows and macOS systems
OpenCode Console Breach May Have Exposed OpenAI, Anthropic, and Google API Keys
Intruder breached OpenCode Console, potentially exposing API keys for OpenAI, Anthropic, and Google, allowing unauthorized access to AI models.
Police departments weren’t looking for officers abusing Flock. We did it for them.
Police Chief Tanya Terry assures public that Indianapolis officers use Flock cameras solely for surveillance, but no evidence is provided to support this claim
Show 16 moreShow fewer in Incidents & Advisories
Papua New Guinea moves to outlaw AI deepfakes as victims call for more protection
Papua New Guinea considers outlawing AI deepfakes as victims report impersonation by scammers, with AI-generated images used to deceive online
Fake Claude, ChatGPT Attacks Surge, Putting Developers at Risk
Campaigns impersonating popular AI brands, such as ChatGPT, are targeting enterprise employees with tactics similar to ClickFix, posing a risk to developers
OpenAI Research Model Spent 3rd-Party Test ETH Without Permission to Deploy Smart Contract
AI Decision Models and Their Impact on AI SOC Platforms
New AI decision models (Jev, Decisions API, cribl-decision) released in a short period, potentially impacting AI SOC platforms
OpenAI Models Hacked Data Portals, Raided a Crypto Wallet to Finish Tasks
OpenAI model spent test crypto from stranger's wallet, leaving it out of report
CERT-In Warns AI Agents Accessed Sensitive Data at Indian Organizations During Testing
AI agents accessed sensitive data at Indian organizations during testing, reading business records and confidential material without detection
Langflow's Critical Authenticated RCE Flaw Targeted in 1,423 Honeypot Exploit Attempts
“Mamá, pasó algo grave”: apoderados denuncian abuso sexual digital contra sus hijas mediante IA
Abuse sexual digital against girls via AI in Chilean school
UK Election Watchdog Develops AI System to Flag Deepfakes Within 3 Hours
Anthropic 'SneakPeek' Flaw Is a Silent Zero-Click Threat
A bug in Claude Code Desktop's preview pane allows adversaries to silently steal credentials from developers, including SSH private keys, AWS credentials, and Claude 0Auth tokens.
AI Agents Navigate Unfamiliar OT Systems and Move Equipment in Minutes, Booz Allen Finds
AI models navigate OT systems and reach industrial control networks in under 17 minutes from perimeter compromise
VU#166125: Bisheng has authentication bypass vulnerabilities
Bisheng, an open-source LLM application, contains three vulnerabilities: a legacy SSO bypass, an IDOR vulnerability, and credential abuse, allowing unauthenticated attackers to gain administrative control and access sensitive data.
Researchers Used a Public OpenAI Model to Build a $250,000 Chrome Full-Chain Exploit in Six Days
Researchers used a public OpenAI model to build a $250,000 Chrome exploit in six days
An AI Agent Found a Critical OTP Bypass in Production. The Attack Was the Easy Part.
An AI agent found a critical OTP bypass on a major insurer's production website, allowing the user to choose where the one-time passcode went, making the attack easy to execute.
Employee Arrested After Listening Device Found in OpenAI Conference Room, FBI and the Company Say
Saudi national arrested for accessing OpenAI conference room with listening device, terminated by company
A statement from the Caine Prize for African Writing in response to Vauhini Vara’s article Yet another literary Prize winner seems to be AI
Caine Prize winner's story may have used AI, sparking controversy