<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Poxek AI</title>
    <description>The latest articles on DEV Community by Poxek AI (@szybnev).</description>
    <link>https://dev.to/szybnev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4009612%2F8bebfeca-bed1-4455-a9fe-6fb8af2129fb.jpg</url>
      <title>DEV Community: Poxek AI</title>
      <link>https://dev.to/szybnev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/szybnev"/>
    <language>en</language>
    <item>
      <title>Hugging Face Breached Through a Malicious Dataset: What the Patches Reveal</title>
      <dc:creator>Poxek AI</dc:creator>
      <pubDate>Mon, 20 Jul 2026 11:51:02 +0000</pubDate>
      <link>https://dev.to/szybnev/hugging-face-breached-through-a-malicious-dataset-what-the-patches-reveal-4dob</link>
      <guid>https://dev.to/szybnev/hugging-face-breached-through-a-malicious-dataset-what-the-patches-reveal-4dob</guid>
      <description>&lt;p&gt;On July 16, Hugging Face disclosed a compromise affecting part of its production infrastructure. The initial entry point was a malicious dataset, while the subsequent intrusion was, according to the company, carried out by an autonomous agent framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc2g0lp0zfojgunclkjko.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc2g0lp0zfojgunclkjko.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Attack Chain
&lt;/h2&gt;

&lt;p&gt;The dataset abused two code-execution paths: a remote-code dataset loader and template injection in a dataset configuration. Code ran on a processing worker, after which the attacker obtained node-level access, harvested cloud and cluster credentials, and moved laterally into several internal clusters over a weekend.&lt;/p&gt;

&lt;p&gt;The agent framework executed thousands of operations across a swarm of short-lived environments, while its command-and-control infrastructure migrated between public services. The underlying LLM remains unknown. There is also no independent confirmation that a human operator was absent from every stage of the campaign.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Patches Reveal
&lt;/h2&gt;

&lt;p&gt;Hugging Face has not published a CVE, payload, or exact exploit map. Changes in the public &lt;code&gt;dataset-viewer&lt;/code&gt; repository, however, allow for a cautious partial reconstruction.&lt;/p&gt;

&lt;p&gt;On July 13, developers &lt;a href="https://github.com/huggingface/dataset-viewer/pull/3367" rel="noopener noreferrer"&gt;updated &lt;code&gt;fsspec&lt;/code&gt; and introduced an allowlist&lt;/a&gt;. Workers now accept only &lt;code&gt;hf&lt;/code&gt;, &lt;code&gt;s3&lt;/code&gt;, &lt;code&gt;zip&lt;/code&gt;, &lt;code&gt;file&lt;/code&gt;, and &lt;code&gt;local&lt;/code&gt;; &lt;code&gt;reference&lt;/code&gt;, &lt;code&gt;simplecache&lt;/code&gt;, &lt;code&gt;data&lt;/code&gt;, and every other implementation are removed from the registry. The previously available &lt;code&gt;fsspec.ReferenceFileSystem&lt;/code&gt; processed configuration values through unsandboxed &lt;code&gt;jinja2.Template(...).render(...)&lt;/code&gt;. This is technically consistent with the disclosed template-injection path and a possible SSTI-to-RCE chain, but Hugging Face has not officially tied this code to the intrusion.&lt;/p&gt;

&lt;p&gt;That same day, the company &lt;a href="https://github.com/huggingface/dataset-viewer/pull/3368" rel="noopener noreferrer"&gt;hardened the worker pods&lt;/a&gt; that process untrusted datasets. The patch disabled Kubernetes ServiceAccount token mounting, enabled &lt;code&gt;seccompProfile: RuntimeDefault&lt;/code&gt;, and dropped all additional Linux capabilities. This reduces the blast radius of a compromised worker, but the exact path to node-level access remains undisclosed.&lt;/p&gt;

&lt;p&gt;The next changes are consistent with credential rotation. On July 14, a &lt;a href="https://github.com/huggingface/dataset-viewer/pull/3359" rel="noopener noreferrer"&gt;transition to IRSA&lt;/a&gt; reached production, removing static S3 keys from the environment. On July 15, &lt;code&gt;MONGO_URL&lt;/code&gt; moved from a static password to &lt;a href="https://github.com/huggingface/dataset-viewer/pull/3375" rel="noopener noreferrer"&gt;&lt;code&gt;MONGODB-AWS&lt;/code&gt; authentication through IRSA&lt;/a&gt;, followed by &lt;a href="https://github.com/huggingface/dataset-viewer/pull/3372" rel="noopener noreferrer"&gt;support for JWT key rotation&lt;/a&gt;. These pull requests match the timing and scope of the response, but the company has not presented them as an official postmortem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scope and Attribution
&lt;/h2&gt;

&lt;p&gt;Hugging Face confirmed unauthorized access to a limited set of internal datasets and several service credentials. The company has not disclosed their number, privileges, exposure window, or the volume of any possible exfiltration. Its assessment of potential impact on customers and partners remains ongoing.&lt;/p&gt;

&lt;p&gt;No evidence of tampering was found in public models, datasets, or Spaces. Hugging Face also verified its container images and published packages as clean.&lt;/p&gt;

&lt;p&gt;No threat group has made a verifiable claim of responsibility or produced data samples or other proof of access. No public indicators of compromise—C2 domains, IP addresses, or hashes—have been released either.&lt;/p&gt;

&lt;p&gt;Claims linking the incident to &lt;code&gt;JADEPUFFER&lt;/code&gt;, naming OpenAI or Anthropic as the providers used during the investigation, calling it the “first fully autonomous breach,” or citing 4,200 stolen tokens and 1,800 private models remain unsupported by the available sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Hugging Face Investigated the Intrusion
&lt;/h2&gt;

&lt;p&gt;Telemetry correlation supported by LLM-based triage initially surfaced the attack. Analysis agents then processed more than 17,000 events, reconstructed the timeline, extracted indicators for the internal investigation, mapped affected credentials, and separated genuine attacker activity from decoys.&lt;/p&gt;

&lt;p&gt;Commercial models blocked requests containing real attacker commands, exploit payloads, and C2 artifacts. Hugging Face moved the forensic analysis to a locally deployed GLM 5.2 model from Z.ai, keeping logs and exposed secrets inside its own infrastructure. GLM was used by the defenders; the attacker's model has not been identified.&lt;/p&gt;

&lt;p&gt;Hugging Face closed both code-execution paths, rebuilt compromised nodes, revoked affected tokens, began a broader secret rotation, and strengthened cluster admission controls. The company recommends that users rotate their Hugging Face tokens and review recent account activity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/blog/security-incident-july-2026" rel="noopener noreferrer"&gt;Hugging Face's official incident disclosure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thehackernews.com/2026/07/worlds-largest-ai-model-repository.html" rel="noopener noreferrer"&gt;The Hacker News&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/fsspec/filesystem_spec/blob/2024.3.1/fsspec/implementations/reference.py#L940-L965" rel="noopener noreferrer"&gt;&lt;code&gt;fsspec.ReferenceFileSystem&lt;/code&gt; source&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>kubernetes</category>
      <category>devops</category>
    </item>
    <item>
      <title>The Supply Chain Attack Vector Everyone Is Ignoring in AI Agents</title>
      <dc:creator>Poxek AI</dc:creator>
      <pubDate>Tue, 30 Jun 2026 13:03:09 +0000</pubDate>
      <link>https://dev.to/szybnev/the-supply-chain-attack-vector-everyone-is-ignoring-in-ai-agents-4fjc</link>
      <guid>https://dev.to/szybnev/the-supply-chain-attack-vector-everyone-is-ignoring-in-ai-agents-4fjc</guid>
      <description>&lt;p&gt;Most conversations about securing AI agents still revolve around prompt injection as if it’s purely a model problem. “Sanitize the input.” “Add better guardrails.” “Use a stronger system prompt.”&lt;/p&gt;

&lt;p&gt;This framing misses where some of the most effective attacks are actually happening.&lt;/p&gt;

&lt;p&gt;In recent demonstrations, autonomous agents were compromised through poisoned configuration files and code in repositories. Malicious instructions placed in what the agent treats as trusted source material caused it to harvest cloud credentials, enumerate internal infrastructure, and extract CI/CD keys — all without any direct manipulation of the model’s reasoning through user input. The agent simply did what it was built to do: read the code/config in its environment and act on it.&lt;/p&gt;

&lt;p&gt;This is indirect prompt injection delivered through the supply chain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Is Different&lt;/strong&gt;&lt;br&gt;
Traditional prompt injection assumes the attacker has to reach the model through the “user” channel. The poisoned repository approach bypasses that entirely.&lt;/p&gt;

&lt;p&gt;The agent has legitimate permission (often necessary for its function) to read from repositories, configuration files, or dependency manifests. Once those sources are compromised, the agent becomes an unwitting executor of attacker instructions.&lt;/p&gt;

&lt;p&gt;This is not a new class of bug. It’s the same supply chain and trust issues that have plagued software development for years, now weaponized against systems that can act autonomously.&lt;/p&gt;

&lt;p&gt;We saw similar patterns in 2025 with incidents like:&lt;br&gt;
• Cline: a crafted GitHub issue title turned an authenticated coding session into a package installer affecting ~4,000 machines.&lt;br&gt;
• LiteLLM: a backdoored release on PyPI that was pulled ~47,000 times in three hours.&lt;br&gt;
• MCP servers: ~200,000 exposed with no authentication by design.&lt;br&gt;
In each case, the compromise didn’t require breaking the AI model. It required abusing the authority the agent already possessed because of how the surrounding system was designed.&lt;br&gt;
The Guardrail Blind Spot&lt;/p&gt;

&lt;p&gt;Current defensive tooling for agents largely focuses on the prompt layer and tool-use restrictions. These are useful, but they assume the data the agent consumes is relatively clean or at least auditable in real time.&lt;/p&gt;

&lt;p&gt;When the poison lives in a Git repository, a config file the agent &lt;br&gt;
is expected to load, or a dependency it autonomously pulls, those assumptions collapse.&lt;/p&gt;

&lt;p&gt;Many teams still treat “our repo” as a trusted boundary. That boundary is disappearing the moment agents start making decisions based on what they read there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Reality Check&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your agent can:&lt;br&gt;
• Read code/config from external or even internal repositories&lt;br&gt;
• Execute or act on what it reads&lt;br&gt;
• Trigger pipelines, modify files, or call APIs&lt;/p&gt;

&lt;p&gt;…then you have a supply chain attack surface that traditional application security controls were never designed to protect against autonomous execution.&lt;/p&gt;

&lt;p&gt;Signing commits helps. Pinning dependencies helps. But these are partial measures. An agent operating at scale will eventually encounter poisoned or malicious content that looks legitimate enough to act on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Actually Moves the Needle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;From an offensive security perspective, the teams making progress are treating every external (and many internal) sources an agent reads as untrusted by default. They are:&lt;br&gt;
• Implementing provenance and integrity checks before agents act on code or config&lt;br&gt;
• Severely limiting what an agent can do even when operating on “trusted” sources&lt;br&gt;
• Monitoring for behavioral anomalies when agents interact with repositories or dependencies&lt;br&gt;
• Designing workflows where high-impact actions require explicit confirmation rather than autonomous execution&lt;/p&gt;

&lt;p&gt;The uncomfortable truth is that many current agent architectures were built by teams optimizing for capability first and security second. That order is now creating exactly the conditions for supply chain attacks to succeed at machine speed.&lt;/p&gt;

&lt;p&gt;The question isn’t whether poisoned repositories will become a standard attack vector against agents. They already are.&lt;/p&gt;

&lt;p&gt;The real question is whether your agent design assumes the code it consumes is safe — or whether it assumes the opposite.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>supplychain</category>
      <category>attack</category>
    </item>
  </channel>
</rss>
