Close dialogue1/5Next 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 German soldiers fire a Patriot missile from a Nato installation in Chania, Greece. Photograph: Sebastian Apel/APGerman soldiers fire a Patriot missile from a Nato installation in Chania, Greece. Photograph: Sebastian Apel/APRussia This article is more than 1 month oldPatriot missile shortage has created ‘window of vulnerability’ Russia is exploiting in UkraineThis article is more than 1 month oldCountries that rely on US-made air defence system feel increasingly exposed as interceptor supplies dwindle
Peter Beaumont Senior international correspondentTue 2 Jun 2026 14.26 BSTLast modified on Wed 3 Jun 2026 02.30 BSTSharePrefer the Guardian on GoogleRussia is exploiting a critical global shortage of air defence interceptor missiles as it ramps up its airstrikes against Ukraine, amid warnings that a shortfall for the Patriot system in particular is creating a “window of vulnerability” for the countries that rely on them.
The MIM-104 Patriot manufactured by Raytheon and Lockheed Martin is the primary surface-to-air system of the US military to shoot down ballistic missiles, and has been widely relied on by US allies – not least in the Gulf, as well as by Ukraine.
Each individual battery, consisting of multiple elements, costs about $1bn (£740m) and their heavy use during the current protracted US-Israeli campaign against Iran, in addition to Ukraine, has triggered a scramble for the dwindling supply of interceptor missiles.
On Tuesday, in the aftermath of the latest massive Russian air raid on Ukraine – in which Moscow fired 73 missiles and almost 700 drones – President Volodymyr Zelenskyy repeated his plea from last week to the US for more stocks of interceptors, as experts warn that the already well-documented shortages will have been noted from China to Iran, even as the US moves to step up production.
This article was aggregated automatically by CyberWire Daily's newsfeed engine. Original reporting: www.theguardian.com.
