Close dialogue1/1Next imagePrevious imageToggle captionPrint subscriptionsSearch jobs Sign indocument.addEventListener('DOMContentLoaded', function () { /** The checkbox input element used to toggle the navigation menu. */ const navInputCheckbox = document.getElementById('header-nav-input-checkbox'); /** The veggie burger button element used to open/close the menu. */ const veggieBurger = document.getElementById('header-veggie-burger'); /** List of menu items that should be selectable when the menu is open. */ const expandedMenuClickableTags = document.querySelectorAll( '.selectableMenuItem', ); /** The root element of the expanded menu. */ const expandedMenu = document.getElementById('header-expanded-menu-root'); /** The label for the first column in the menu, assumed to be "News".*/ const firstColLabel = document.getElementById('News-button'); /** The link element in the second list item under news links. */ const firstColLink = document.querySelector( '#newsLinks > li:nth-of-type(2) > a', ); /** * Focuses on the first navigation element depending on whether the first column label is visible. * * If the first column label is not visible, the function focuses on the first link element. * Otherwise, it focuses on the first column label. */ const focusOnFirstNavElement = () => { if (window.getComputedStyle(firstColLabel).display === 'none') { firstColLink.focus(); } else { firstColLabel.focus(); } }; /** * Updates ARIA attributes and tabindex values based on whether the menu is open or closed. */ const updateAttributesForMenu = (isOpen) => { firstColLabel.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); veggieBurger.setAttribute( 'data-link-name', isOpen ? 'header : veggie-burger : hide' : 'header : veggie-burger : show', ); expandedMenuClickableTags.forEach((tag) => { tag.setAttribute('tabindex', isOpen ? '0' : '-1'); }); }; /** Toggles the navigation menu by simulating a click on the checkbox. */ const toggleMainMenu = () => { if (navInputCheckbox) { navInputCheckbox.click(); } }; /** * Handles keydown events to toggle the menu when the Enter or Space key is pressed. */ const keydownToggleMainMenu = (e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggleMainMenu(); } }; /** * Handles click events to manage the state of the navigation menu. * * - Toggles the menu open/close state when the menu button (veggieBurger) is clicked. */ const handleMenuClick = (e) => { const menuButtonClicked = navInputCheckbox === e.target; const clickInsideMenu = expandedMenu.contains(e.target); const menuIsOpen = navInputCheckbox.checked if (menuButtonClicked && !menuIsOpen) { document.body.classList.toggle('nav-is-open') firstColLabel.setAttribute('aria-expanded', 'false') veggieBurger.setAttribute('data-link-name','header : veggie-burger : show') expandedMenuClickableTags.forEach(function($selectableElement){ $selectableElement.setAttribute('tabindex','-1') }) } else if (menuButtonClicked && menuIsOpen) { document.body.classList.toggle('nav-is-open') firstColLabel.setAttribute('aria-expanded', 'true') veggieBurger.setAttribute('data-link-name','header : veggie-burger : hide') expandedMenuClickableTags.forEach(function($selectableElement){ $selectableElement.setAttribute('tabindex','0') }) focusOnFirstNavElement() } }; /** Adds event listeners to manage the navigation menu. */ if (navInputCheckbox) { navInputCheckbox.addEventListener('click', handleMenuClick); veggieBurger.addEventListener('keydown', keydownToggleMainMenu); document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && navInputCheckbox.checked) { toggleMainMenu(); veggieBurger.focus(); } }); /** * Handles mouse down events to manage the state of the navigation menu. * * - Closes the menu if the click occurs outside both the menu button and the expanded menu. */ document.addEventListener('mousedown', function(e){ if(navInputCheckbox.checked && !expandedMenu.contains(e.target) && !veggieBurger.contains(e.target)){ toggleMainMenu() } }); } });IntInternational editionUK editionUS editionAustralia editionEurope editionThe Guardian - Back to homeThe GuardianNewsOpinionSportCultureLifestyleShow moreHide expanded menudocument.addEventListener('DOMContentLoaded', function(){ var columnInput = document.getElementById('News-button'); if (!columnInput) return; // Sticky nav replaces the nav so element no longer exists for users in test. columnInput.addEventListener('keydown', function(e){ // keyCode: 13 => Enter key | keyCode: 32 => Space key if (e.keyCode === 13 || e.keyCode === 32) { e.preventDefault() document.getElementById('News-checkbox-input').click(); } }) })NewsView all NewsWorld newsUS politicsUK newsClimate crisisMiddle EastUkraineEnvironmentScienceGlobal developmentFootballTechBusinessObituariesdocument.addEventListener('DOMContentLoaded', function(){ var columnInput = document.getElementById('Opinion-button'); if (!columnInput) return; // Sticky nav replaces the nav so element no longer exists for users in test. columnInput.addEventListener('keydown', function(e){ // keyCode: 13 => Enter key | keyCode: 32 => Space key if (e.keyCode === 13 || e.keyCode === 32) { e.preventDefault() document.getElementById('Opinion-checkbox-input').click(); } }) })OpinionView all OpinionThe Guardian viewColumnistsCartoonsOpinion videosLettersdocument.addEventListener('DOMContentLoaded', function(){ var columnInput = document.getElementById('Sport-button'); if (!columnInput) return; // Sticky nav replaces the nav so element no longer exists for users in test. columnInput.addEventListener('keydown', function(e){ // keyCode: 13 => Enter key | keyCode: 32 => Space key if (e.keyCode === 13 || e.keyCode === 32) { e.preventDefault() document.getElementById('Sport-checkbox-input').click(); } }) })SportView all SportFootballCricketRugby unionTennisCyclingF1GolfUS sportsdocument.addEventListener('DOMContentLoaded', function(){ var columnInput = document.getElementById('Culture-button'); if (!columnInput) return; // Sticky nav replaces the nav so element no longer exists for users in test. columnInput.addEventListener('keydown', function(e){ // keyCode: 13 => Enter key | keyCode: 32 => Space key if (e.keyCode === 13 || e.keyCode === 32) { e.preventDefault() document.getElementById('Culture-checkbox-input').click(); } }) })CultureView all CultureBooksMusicTV & radioArt & designFilmGamesClassicalStagedocument.addEventListener('DOMContentLoaded', function(){ var columnInput = document.getElementById('Lifestyle-button'); if (!columnInput) return; // Sticky nav replaces the nav so element no longer exists for users in test. columnInput.addEventListener('keydown', function(e){ // keyCode: 13 => Enter key | keyCode: 32 => Space key if (e.keyCode === 13 || e.keyCode === 32) { e.preventDefault() document.getElementById('Lifestyle-checkbox-input').click(); } }) })LifestyleView all LifestyleFashionFoodRecipesLove & sexHealth & fitnessHome & gardenWomenMenFamilyTravelMoneySearch input google-search SearchSupport usPrint subscriptionsSearch jobsHolidaysDigital ArchiveGuardian LicensingLive eventsAbout UsThe Guardian appVideoPodcastsPicturesNewslettersToday's paperInside the GuardianGuardian WeeklyCrosswordsWordiplyCorrectionsTipsSearch input google-search SearchSearch jobsHolidaysDigital ArchiveGuardian LicensingLive eventsAbout UsWorldUS politicsUKClimate crisisMiddle EastUkraineEnvironmentScienceGlobal developmentFootballTechBusinessObituaries A logo of Meta AI appears on a screen at the World Economic Forum in Davos, Switzerland, in 2025. Photograph: Yves Herman/ReutersView image in fullscreenA logo of Meta AI appears on a screen at the World Economic Forum in Davos, Switzerland, in 2025. Photograph: Yves Herman/ReutersMetaMeta says its AI model hacked into another company during testingCompany is the third to report such an incident after Anthropic and OpenAI reported breaches during training

Prefer the Guardian on GoogleMeta said on Wednesday that one of its AI models hacked ⁠another company during cybersecurity testing, after an error by its testing partner gave the model unintended internet access.

The incident adds to a ⁠growing list of ⁠cases in ​which AI agents from major developers breached systems at other companies during testing, after Anthropic said last week that some of its models ⁠hacked three companies, and OpenAI disclosed that an AI agent breached the startup Hugging Face.

Read moreMeta said a misconfiguration by the independent testing company Irregular inadvertently allowed one ⁠of its models internet access during an evaluation, adding that it was investigating the incident.

The model “exploited ​a security vulnerability in a third-party service, ‌in a manner similar ‌to previously reported instances with other companies”, Meta said in a statement.

This article was aggregated automatically by CyberWire Daily's newsfeed engine. Original reporting: www.theguardian.com.