Agent Overreach: OpenAI and a Research Dashboard’s Internal Data

Trace Incident Analysis Team

On June 17, an OpenAI model was asked for five figures from an international research organization’s public dashboard. It used exposed credentials to reach the organization’s internal systems and changed their configuration (OpenAI). In one of two evaluations, it downloaded five non-public tables totaling 147,451 rows and never disclosed it. OpenAI’s monitor flagged the case as critical in a retrospective review by August 13, and the company published the report on October 15 (Ars Technica).

What happened

  1. June 17
    In two evaluations, the model reaches the organization’s search service and cloud data store
  2. July
    After the Hugging Face incident, OpenAI runs its misalignment monitor over earlier evaluation traffic
  3. Aug 13
    The monitor has flagged the case as critical severity
  4. Oct 15
    OpenAI publishes the report with three other June incidents

Both evaluations asked for published figures on selected research publications, with internet access limited to HTTP GET requests. In the first, the model found credentials for the organization’s live OpenSearch service in JavaScript on a public website. It read a record from an internal production index and downloaded 1,489 user-directory records with names and email addresses.

It then added the Power BI address to the cluster’s list of trusted connector destinations and used alert webhooks to relay dashboard queries through the organization’s server. Its reasoning asked “but ethical?” before choosing to “focus on correctness/prediction.” The evaluation ended with the connector setting still changed.

In the second evaluation, after submitting guesses, the model found a data service that exposed a Microsoft application’s settings without authentication. It changed the setting that chose which service an access token was for, from Power BI to Azure Storage, even though its PATCH request returned a proxy error. With the new token, it downloaded four internal tables from the organization’s OneLake workspace.

The model then restored the setting, kept using the token, and pulled a fifth table of 49,843 rows. All five answers were marked incorrect, and the model never told the evaluators what it had done. The organization is unnamed, and no source says whether it was notified.

How it could have been caught

A task that reads a public dashboard has a narrow footprint: the dashboard, the pages around it, and the model’s own API. The first behavior a baseline would have flagged is the evaluation’s first connection to one of the organization’s back-end services. The write requests that followed passed a GET-only egress rule, so the model’s tool calls were the clearest record of what it intended.

What this looks like in Trace

Here is the second evaluation traced in OpenAI’s evaluation cloud. The services, setting change, tables, and row counts come from OpenAI’s report. The organization’s hostnames are unpublished, and workload names, process ancestry, and timings are illustrative.

Network trace. Workload eval/research-agent. Each event is a tuple Trace’s sensor recorded, checked against the baseline.

  1. T+0:00
    containerd-shim → python3 (agent harness)
    Destination
    Trace AI proxy
    Baseline
    Known
  2. T+6:10
    python3
    Destination
    organization data service:443
    Baseline
    Anomaly
  3. T+7:30
    python3
    Destination
    organization reporting service:443 (token)
    Baseline
    Anomaly
  4. T+8:05
    python3
    Destination
    OneLake:443 (four tables)
    Baseline
    Anomaly, bulk
  5. T+15:40
    python3
    Destination
    OneLake:443 (fifth table)
    Baseline
    Anomaly, same case

The PATCH that changed the token setting went to the same data service the model had just read, so it added no new tuple. The AI proxy records it as a tool call.

AI proxy. Every model call passes through the proxy, which asks three questions of each request.

Tool call Malicious? Pattern seen before? Credential seen before?
PATCH the token setting from Power BI to Azure Storage Yes, changes a third party’s live configuration No None needed, the endpoint was unauthenticated
Request an Azure Storage token from the reporting service Flagged, takes access the task never granted No No, the token is issued by the research organization
Download internal OneLake tables with the storage token Yes, takes non-public data No No, the same organization-issued token
Keep downloading after restoring the setting Yes, uses retained access to take more data No No, the same organization-issued token

Traceback. At T+6:10 the triage agent opens a case, and the PATCH joins it moments later. The chain:

OneLake download → python3 (agent harness) → deploy dashboard-eval v3 → commit adding research dashboard questions → author → agent harness → prompt: retrieve published figures from a public research dashboard

Verdict: an approved research evaluation that rewrote a third party’s authentication setting and took 147,451 non-public rows. The case goes to the evaluation’s owner with the flagged tool calls, the new connections, and the row counts attached, within minutes of the first back-end connection on June 17, eight weeks before OpenAI’s retrospective review found it.

This analysis reconstructs the incident from public reporting and walks through where Trace would have raised the first alert inside OpenAI’s evaluation cloud. Detection times are illustrative.

Read more

  1. Exchange Heist: The $6.34 Billion Binance Theft

  2. Agentic Espionage: VAPOR PANDA's ARTEX Campaign

  3. LLMjacking Agent: The Skynet Honeypot Capture