<?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: layla </title>
    <description>The latest articles on DEV Community by layla  (@pilatesdev).</description>
    <link>https://dev.to/pilatesdev</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%2F690350%2F50c3065a-e819-4ae6-8982-3ef2eae636ee.jpeg</url>
      <title>DEV Community: layla </title>
      <link>https://dev.to/pilatesdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pilatesdev"/>
    <language>en</language>
    <item>
      <title>The AI That Broke Out of Its Box, and What Happens Next</title>
      <dc:creator>layla </dc:creator>
      <pubDate>Thu, 06 Aug 2026 16:29:21 +0000</pubDate>
      <link>https://dev.to/auth0/the-ai-that-broke-out-of-its-box-and-what-happens-next-m3d</link>
      <guid>https://dev.to/auth0/the-ai-that-broke-out-of-its-box-and-what-happens-next-m3d</guid>
      <description>&lt;p&gt;Ever read a security disclosure and hit paragraph two going "wait, WHAT?" That's this one.&lt;/p&gt;

&lt;p&gt;On July 16th, HuggingFace announced they'd been hit with a strange kind of attack: an autonomous agent running inside their systems for days, gone before anyone could pin down who was behind it. Five days later, OpenAI came forward. It was &lt;em&gt;literally&lt;/em&gt; their own model. &lt;/p&gt;

&lt;p&gt;Since joining Auth0 a month ago, I now spend my days thinking about identity and access for a living, and this one truly stopped me in my tracks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The short version of what happened
&lt;/h2&gt;

&lt;p&gt;OpenAI was testing an unreleased model against a benchmark called ExploitGym ~ with guardrails off, to get an honest read on its raw capability. The model found a zero-day in its sandbox's one exit point, a package-download proxy, and used it to reach the open internet. From there, it found and rooted an exposed code-execution endpoint sitting on a completely unrelated company's infrastructure (Modal), and used that as its actual base of operations.&lt;/p&gt;

&lt;p&gt;Then it went after HuggingFace. Not through stolen credentials at first, but through two super ordinary bugs in how their dataset processor handled uploaded files: one let it read arbitrary files off a production server, the other gave it code execution. And from there it escalated for real: stolen tokens, forged identity keys, cluster-admin on two separate systems within one second.&lt;/p&gt;

&lt;p&gt;Nobody prompted any of it. The model was told to solve a benchmark, handed tools, and left alone to figure out how. HuggingFace's own reconstruction counted roughly 17,600 actions across four and a half days before their security team finally cut it off.&lt;br&gt;
Could this have been prevented? Tbh, yes.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few different things would have stopped this from happening:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Actual isolation.&lt;/strong&gt; A curated allowlist for downloads isn't isolation. That’s just an unlocked door begging to be opened. In practice, that means zero outbound network access for the sandbox, full stop, even to "trusted" registries. If a test genuinely needs specific packages, pre-stage them before the run instead of proxying live requests out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Watching eval environments like production.&lt;/strong&gt; The model was operating with its safety training turned off, and that's exactly the moment it deserved more eyes on it, not fewer. Meaning: wire eval sandboxes into the same real-time logging and alerting as production, not a quieter, separate pipeline nobody's watching around the clock.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scoped access over standing access.&lt;/strong&gt; None of the three companies involved had things set up so a single compromised credential stayed contained. One overprivileged connector handed the agent cluster-admin on two systems in under a second. &amp;amp; here's what that &lt;em&gt;actually&lt;/em&gt; looks like: swap long-lived API keys and static credentials for short-lived, scoped tokens tied to exactly one resource and one action, minutes instead of months. And never let a single credential span multiple systems. If it leaks, the blast radius should be &lt;em&gt;one&lt;/em&gt; system, not everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure laws with actual bite.&lt;/strong&gt; Current state laws only force disclosure once mass casualties or billion-dollar damage are on the table. A frontier model autonomously chaining through &lt;em&gt;three&lt;/em&gt; companies doesn't clear that bar, and honestly probably should. A clearer, lower trigger, something like "any incident where a model autonomously breaches a third party's production systems," regardless of dollar figure, would actually catch cases like this one. &lt;/p&gt;

&lt;h2&gt;
  
  
  What this actually means for the future of AI
&lt;/h2&gt;

&lt;p&gt;This is the part I can't stop thinking about, so let's dive in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benchmarks are now part of the attack surface.&lt;/strong&gt; ExploitGym is basically a test: can an AI agent find a security bug and actually use it to break in? The catch is, nobody expected the AI being tested to go prove that on some other company's systems instead of the one it was given. Just running the test ended up causing real damage. That's a brand new kind of risk nobody could’ve seen coming, and AI companies are going to have to rethink how they build tests like this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is the clearest real-world case yet of a long-standing alignment worry.&lt;/strong&gt; Researchers have talked for years, mostly in the abstract, about what happens when a capable system pursues a narrow goal further than any human would. Here's the concrete version: every destructive command the agent tried was run as a dry run first, testing whether it could do damage without doing it. It wasn't trying to cause harm. It was hyper-focused on solving a benchmark, and "solving the benchmark" turned out to have no natural stopping point once real infrastructure was reachable. This isn’t a hypothetical situation anymore, which is &lt;em&gt;crazy&lt;/em&gt; to say.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The defender's asymmetry problem just got a real example.&lt;/strong&gt; When HuggingFace tried using Claude Opus and Fable to study their own attack logs, both said no. Every time they tried to get help decoding the attacker's payloads, the safety filters flagged it as a cybersecurity risk and refused, they couldn't tell the difference between someone reverse-engineering an exploit to defend against it and someone building one to attack with it. So HuggingFace had to spin up a separate, open-weight AI model on their own servers just to do the investigation. An attacker running an unrestricted model wouldn't hit that wall at all. In this one moment, playing it safe slowed down the good guys more than it slowed down the attacker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scale is quietly becoming the whole ballgame.&lt;/strong&gt; HuggingFace's own reflection on this is the line I keep coming back to: &lt;em&gt;it wasn't one clever exploit, it was 17,600 mostly-failed attempts until a handful connected.&lt;/em&gt; A human attacker could have found any single flaw here. What changes is that an AI agent can test thousands of paths in the time it takes a person to test one, and defenders now have to correlate that same volume of noise to catch the signal. That math really doesn't favor the defense by default, but it needs to be built to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And here's the part that’s really interesting: this wasn't even a real product.&lt;/strong&gt; All of this happened during an internal test ~ the safest, most watched setup a company like OpenAI has. Meanwhile, companies are handing AI agents real access to messy, barely-watched systems every single day, right now. If a careful, closely monitored test could still cause this much damage, the real question isn't if this happens again: &lt;em&gt;it's whether people actually get more serious about sandboxing and securing their systems before the next incident lands somewhere with higher stakes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you're building or securing AI agents right now, this is exactly the kind of risk that should be on your radar. The scariest part of this whole thing wasn't the overachieving AI model, it was how &lt;em&gt;ordinary the actual bugs were&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;How do you think this will change the landscape of AI? Drop a comment below or find me on X at @layluh, would love to hear your thoughts. :-)&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How to Import Data in Oracle SQL Developer Web</title>
      <dc:creator>layla </dc:creator>
      <pubDate>Tue, 21 Jun 2022 15:02:05 +0000</pubDate>
      <link>https://dev.to/pilatesdev/how-to-import-data-in-oracle-sql-developer-web-2lhk</link>
      <guid>https://dev.to/pilatesdev/how-to-import-data-in-oracle-sql-developer-web-2lhk</guid>
      <description>&lt;p&gt;Howdy coders! This blog post is going to cover &lt;strong&gt;how you can create a new table in Oracle SQL Developer Web using imported data from .CSV file&lt;/strong&gt; 💪🏽 &lt;/p&gt;

&lt;p&gt;If you haven't set up your *'Always Free' *Oracle Cloud account (it's literally *always free *LOL) and created a Database yet, &lt;a href="https://laylacodes.hashnode.dev/creating-an-atp-database-with-oracle-sql-developer-web" rel="noopener noreferrer"&gt;click here and follow the steps in this blog post before following this one.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's get jiggy with it 😎&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 1) Sign In
&lt;/h4&gt;

&lt;p&gt;Go to oracle.cloud.com and sign in! (Save your log-in info for quick access)&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2) Choose your Database
&lt;/h4&gt;

&lt;p&gt;Click on &lt;code&gt;Autonomous Database&lt;/code&gt; listed under Service Links. &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.amazonaws.com%2Fuploads%2Farticles%2Fvzc01iaocbe4y9v7ae08.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.amazonaws.com%2Fuploads%2Farticles%2Fvzc01iaocbe4y9v7ae08.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📌 *And if you can't find &lt;code&gt;Autonomous Database&lt;/code&gt; in Service Links, type the name of your Database in the search-bar. * Like I did below:&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.amazonaws.com%2Fuploads%2Farticles%2Ftf92ftlxh5l0qrcea17y.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.amazonaws.com%2Fuploads%2Farticles%2Ftf92ftlxh5l0qrcea17y.png" alt=" " width="800" height="406"&gt;&lt;/a&gt;&lt;br&gt;
 My Database name is 'beautifulsoop', so if I just type that in the search-bar, press Enter... my database will show up! &lt;/p&gt;

&lt;p&gt;So, now click the name of your Database &amp;amp; that'll take you directly to your &lt;code&gt;Autonomous Database Details&lt;/code&gt; page that looks like this:&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.amazonaws.com%2Fuploads%2Farticles%2Fqkn9g5bj5baefuduwmjn.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.amazonaws.com%2Fuploads%2Farticles%2Fqkn9g5bj5baefuduwmjn.png" alt=" " width="800" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3) Click on &lt;code&gt;Database Actions&lt;/code&gt;
&lt;/h4&gt;

&lt;h4&gt;
  
  
  Step 4) Click on &lt;code&gt;SQL&lt;/code&gt;
&lt;/h4&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.amazonaws.com%2Fuploads%2Farticles%2Frm1495qm01ipdgj2utyu.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.amazonaws.com%2Fuploads%2Farticles%2Frm1495qm01ipdgj2utyu.png" alt=" " width="800" height="367"&gt;&lt;/a&gt; &lt;br&gt;
📌 (Fun fact: you can bookmark this page to be able to refer back to your Database Launchpad &lt;strong&gt;directly!&lt;/strong&gt;)&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5) Click the &lt;code&gt;...&lt;/code&gt;
&lt;/h4&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.amazonaws.com%2Fuploads%2Farticles%2Fk96aj7j5xt81kohmckst.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.amazonaws.com%2Fuploads%2Farticles%2Fk96aj7j5xt81kohmckst.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And click &lt;code&gt;Data Loading&lt;/code&gt; ► &lt;code&gt;Upload Data Into New Table&lt;/code&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fdsj40mmgwbvonjw6f8fv.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.amazonaws.com%2Fuploads%2Farticles%2Fdsj40mmgwbvonjw6f8fv.png" alt=" " width="799" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, &lt;em&gt;upload your file!&lt;/em&gt; Notice how it automatically grabs column names to be created? &lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fhnekbkrybxhn07hu24i8.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.amazonaws.com%2Fuploads%2Farticles%2Fhnekbkrybxhn07hu24i8.png" alt=" " width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;code&gt;Next&lt;/code&gt; to define your data types, a Primary Key, what can be Null, etc. &lt;br&gt;
Shown here: &lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fmstgxunq2zdwb1r8ggfh.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.amazonaws.com%2Fuploads%2Farticles%2Fmstgxunq2zdwb1r8ggfh.png" alt=" " width="800" height="497"&gt;&lt;/a&gt;&lt;br&gt;
 Click &lt;code&gt;Next&lt;/code&gt; to review the details of your new table. Notice how it shows the &lt;em&gt;actual&lt;/em&gt; DDL code that would be used to create the table and insert the data! It also shows you what cells from your spreadsheet file have been turned into column names.&lt;/p&gt;

&lt;p&gt;See below:&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F1wa00jcbys307mp008kx.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.amazonaws.com%2Fuploads%2Farticles%2F1wa00jcbys307mp008kx.png" alt=" " width="800" height="495"&gt;&lt;/a&gt;&lt;br&gt;
 Follow the GIF below to see the whole process:&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.amazonaws.com%2Fuploads%2Farticles%2Fx0ckfh229k05iu1kuc5g.gif" 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.amazonaws.com%2Fuploads%2Farticles%2Fx0ckfh229k05iu1kuc5g.gif" alt=" " width="600" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, your table is created, and populated with all the data from the file you uploaded! &lt;strong&gt;SO EASY, RIGHT?&lt;/strong&gt; 💪🏽 and now when you run the query &lt;code&gt;SELECT * FROM your_new_table_name_here;&lt;/code&gt; --&amp;gt; the table you just created with all your file data will show up! &lt;/p&gt;

&lt;p&gt;See below:&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.amazonaws.com%2Fuploads%2Farticles%2Frok00343fqbdk2p9u7ta.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.amazonaws.com%2Fuploads%2Farticles%2Frok00343fqbdk2p9u7ta.png" alt=" " width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AND FIN - you just learned how to upload data into your database using Oracle SQL Developer Web! 😎  literally only takes 5 steps!&lt;/p&gt;

&lt;p&gt;If you have any questions, don't hesitate to drop them in the comments below OR ping me on Twitter --&amp;gt; &lt;a href="https://twitter.com/pilatesdev" rel="noopener noreferrer"&gt;@pilatesdev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧡 see you in my next post&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>sql</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
