diff --git a/Readability.js b/Readability.js index 5cff4540..778b5226 100644 --- a/Readability.js +++ b/Readability.js @@ -160,6 +160,7 @@ Readability.prototype = { whitespace: /^\s*$/, hasContent: /\S$/, hashUrl: /^#.+/, + httpUrl: /https?:\/\/[^\s<>"')\]]+/g, srcsetUrl: /(\S+)(\s+[\d.]+[xw])?(\s*(?:,|$))/g, b64DataUrl: /^data:\s*([^\s;,]+)\s*;\s*base64\s*,/i, // Commas as used in Latin, Sindhi, Chinese and various other scripts. @@ -1307,10 +1308,12 @@ Readability.prototype = { // Scale the final candidates score based on link density. Good content // should have a relatively small link density (5% or less) and be mostly - // unaffected by this operation. + // unaffected by this operation. Plain-text URLs are counted here + // so a block that is mostly URLs (e.g. an endnote/citation dump) + // can't outscore genuine article prose. var candidateScore = candidate.readability.contentScore * - (1 - this._getLinkDensity(candidate)); + (1 - this._getLinkDensity(candidate, true)); candidate.readability.contentScore = candidateScore; this.log("Candidate:", candidate, "with score " + candidateScore); @@ -2140,7 +2143,7 @@ Readability.prototype = { * @param Element * @return number (float) **/ - _getLinkDensity(element) { + _getLinkDensity(element, includePlainTextUrls) { var textLength = this._getInnerText(element).length; if (textLength === 0) { return 0; @@ -2155,6 +2158,17 @@ Readability.prototype = { linkLength += this._getInnerText(linkNode).length * coefficient; }); + // Optionally count plain-text URLs (e.g. citation sections) as links. + // Used when scoring a candidates so actual article content is + // given precedence over a list of links. + if (includePlainTextUrls) { + var innerText = this._getInnerText(element); + var urls = innerText.match(this.REGEXPS.httpUrl) || []; + urls.forEach(function (url) { + linkLength += url.length; + }); + } + return linkLength / textLength; }, diff --git a/test/test-pages/plain-text-links/expected-metadata.json b/test/test-pages/plain-text-links/expected-metadata.json new file mode 100644 index 00000000..3d790d68 --- /dev/null +++ b/test/test-pages/plain-text-links/expected-metadata.json @@ -0,0 +1,10 @@ +{ + "title": "Russian Offensive Campaign Assessment, June 27, 2026", + "byline": "Fiona Noonan", + "dir": null, + "lang": "en-US", + "excerpt": "Ukraine conducted an FP-5 Flamingo cruise missile strike on the Russian Titan-Barrikady ballistic missile development and production plant.", + "siteName": "Institute for the Study of War", + "publishedTime": "2026-06-27T22:52:28+00:00", + "readerable": true +} diff --git a/test/test-pages/plain-text-links/expected.html b/test/test-pages/plain-text-links/expected.html new file mode 100644 index 00000000..f39af80c --- /dev/null +++ b/test/test-pages/plain-text-links/expected.html @@ -0,0 +1,257 @@ +
+
+
+

Toplines

+

+ Ukrainian forces conducted an FP-5 Flamingo cruise missile strike against the Russian Titan-Barrikady ballistic missile development and production plant overnight on June 26 to 27. The Ukrainian General Staff reported on June 27 that Ukrainian forces struck the Titan-Barrikady enterprise in Volgograd City, Volgograd Oblast, overnight, causing a fire.[1] The Ukrainian General Staff noted that the enterprise produces self-propelled launchers and transport-loading vehicles for Iskander-M ballistic missiles, launchers and ground equipment for Topol-M and Yars intercontinental ballistic missiles (ICBMs), and the Msta-B and Msta-S large-caliber howitzers. Geolocated footage and imagery published on June 27 shows an explosion and smoke rising from the Titan-Barricades enterprise in Volgograd City after five FP-5 Flamingo cruise missiles reportedly struck three workshops.[2] Ukrainian President Volodymyr Zelensky confirmed that Ukrainian forces used Flamingo missiles to strike the Titan-Barrikady plant on June 27.[3] Volgograd Oblast Governor Andrei Bocharov confirmed on June 27 that a Ukrainian “high-speed aerial target” strike damaged an industrial facility in Volgograd City.[4] A Russian milblogger claimed on June 27 that successful Ukrainian Flamingo strikes in 2026 have likely flown at low altitudes and over water features, making them harder for Russian forces to intercept.[5] The milblogger noted that Russian forces lack sufficient Airborne Warning and Control System (AWACS) aircraft to maintain surveillance and detect low-flying missiles. Ukrainian forces have struck Russian AWACS aircraft at several points throughout the war, contributing to shortages.[6] Russian forces reportedly have fewer than ten operational A-50 AWACS aircraft as of June 1, 2025, of which reportedly only four or five are the modernized A-50U variant.[7] ISW previously observed reports of at least eight separate Flamingo cruise missile strikes, with the most recent strike on the night of June 9 to June 10.[8] Ukraine’s increasing use of long-range Flamingo cruise missile strikes demonstrates Ukraine’s increasing ability to sustain and intensify missile strikes against key Russian military facilities.[9] +

+

+ Ukrainian forces also struck Russian oil infrastructure in Vladimir Oblast overnight as part of Ukraine’s 40-day intermediate- and long-range strike campaign to influence Russia to end the war in Ukraine. The Ukrainian Security Service (SBU) reported on June 27 that Ukrainian forces struck the Vtorovo oil pumping station near Penkino, Vladimir Oblast, as part of Ukrainian President Volodymyr Zelensky’s 40-day campaign against Russia, hitting technical buildings and causing a secondary detonation.[10] The SBU noted that the Vtorovo station is part of the state-owned JSC Transneft Upper Volga and a key Russian logistics hub for pumping light petroleum products for export and domestic consumption. The SBU reported that the Vtorovo station transports diesel to the Moscow Ring Oil Product Pipeline and then to large oil depots in Moscow City and to the Baltic Sea. NASA Fire Information for Resource Management System (FIRMS) data from June 27 shows a heat anomaly about 10 kilometers from the pumping station.[11] Ukrainian forces have been intensifying the scope and scale of their long-range strikes against Russian oil infrastructure in Russia over the last several months, exploiting overstretched Russian air defenses.[12] Continued Ukrainian strikes against Russian oil production and transport infrastructure will likely intensify the spread and severity of fuel shortages in Russian regions and occupied Ukraine.[13] +

+

+ The United States reimposed sanctions against Russian seaborne oil exports after temporary sanctions waivers expired and were not renewed.[14] Ukrainian Presidential Commissioner for Sanctions Policy Vladyslav Vlasyuk stated on June 26 that the US sanctions against Russian oil producers Rosneft and Lukoil have re-entered force after the United States issued sanctions waivers on Russian oil exports that were already at sea since March 12.[15] The most recent US waiver on these sanctions expired as of June 17, and US officials have not indicated since June 17 that the United States would extend the sanctions waiver again.[16] +

+
+
+

Key Takeaways

+
    +
  1. Ukrainian forces conducted an FP-5 Flamingo cruise missile strike against the Russian Titan-Barrikady ballistic missile development and production plant overnight on June 26 to 27.
  2. +
  3. Ukrainian forces also struck Russian oil infrastructure in Vladimir Oblast overnight as part of Ukraine’s 40-day intermediate- and long-range strike campaign to influence Russia to end the war in Ukraine.
  4. +
  5. The United States reimposed sanctions against Russian seaborne oil exports after temporary sanctions waivers expired and were not renewed.
  6. +
  7. Ukrainian forces recently advanced in the Borova direction.
  8. +
  9. Russian forces launched 129 drones against Ukraine overnight.
  10. +
+
+
+

+ Map Thumbnail

+

+ We do not report in detail on Russian war crimes because these activities are well-covered in Western media and do not directly affect the military operations we are assessing and forecasting. We will continue to evaluate and report on the effects of these criminal activities on the Ukrainian military and the Ukrainian population and specifically on combat in Ukrainian urban areas. We utterly condemn Russian violations of the laws of armed conflict and the Geneva Conventions and crimes against humanity even though we do not describe them in these reports.   +

+

Ukrainian Operations in the Russian Federation

+

+ Ukrainian forces recently struck satellite communication facilities in Russia. Ukrainian Ministry of Defense (MoD) advisor on defense technology and drone and electronic warfare (EW) expert Serhiy “Flash” Beskrestnov reported on June 27 that Ukrainian forces struck two out of five main Russian satellite communication nodes in June, including the “Dubna” Central Communications Center in Moscow Oblast and the “Vladimir” Central Communications Center in Gus-Khrustalny, Vladimir Oblast.[17] Geolocated satellite imagery published on June 26 shows damage to several facilities at the ”Vladimir” Central Communications Center after a Ukrainian drone strike on June 22.[18] +

+

+ See topline text for additional Ukrainian operations in Russia. +

+
+
+

Russian Supporting Effort: Northern Axis

+

+ Russian objective: Create defensible buffer zones in Sumy Oblast along the international border +

+

+ Russian forces continued offensive operations in northern Sumy Oblast on June 26 and 27 but did not advance.[19] +

+

Map Thumbnail

+
+
+

Russian Main Effort: Eastern Ukraine

+

Russian Subordinate Main Effort #1 Kharkiv Oblast

+

+ Russian objective: Push Ukrainian forces back from the international border to create a defensible buffer zone with Belgorod Oblast and approach to within tube artillery range of Kharkiv City +

+

+ Russian forces continued offensive operations north and northeast of Kharkiv City on June 26 and 27 but did not advance as Ukrainian forces counterattacked.[20] A Russian milblogger claimed that Ukrainian forces counterattacked near Kozacha Lopan (north of Kharkiv City) and Zamlianyi Yar (northeast of Kharkiv City).[21] +

+

+ Ukrainian forces continued their frontline strike campaign against Russian military assets in Belgorod Oblast along the border with Kharkiv Oblast. The Ukrainian General Staff reported on June 27 that Ukrainian forces struck a Russian command post in Leninskiy, Belgorod Oblast (northeast of Kharkiv City and roughly 2 kilometers north of the international border).[22] Geolocated footage published on June 27 shows Ukrainian forces striking a Russian fuel storage warehouse south of Rzhevka, Belgorod Oblast (northeast of Kharkiv City and roughly 7 kilometers north of the international border).[23] A source reporting on the Russian Northern Grouping of Forces claimed on June 27 that the warehouse fell within the Russian 127th Motorized Rifle Regiment’s (71st Guards Motorized Rifle Division, 14th Army Corps [AC], Leningrad Military District [LMD]) and 128th Separate Motorized Rifle Brigade’s (44th AC, LMD) area of responsibility and posted an image showing a plume of smoke coming from the warehouse after the strike.[24] +

+

+ Russian forces continued limited offensive operations northeast of Velukyi Burluk on June 27 but did not advance.[25] +

+

Russian Subordinate Main Effort #2 – Oskil River

+

+ Russian objective: Cross the Oskil River in Kharkiv Oblast and push westward into eastern Kharkiv Oblast and northern Donetsk Oblast +

+

Map Thumbnail

+

Map Thumbnail

+

+ Russian forces continued limited offensive operations in the Kupyansk direction on June 26 and 27 but did not advance as Ukrainian forces recently advanced or maintained positions east of Kupyansk.[26] A Russian milblogger posted a map indicating that Ukrainian forces recently advanced or maintained positions east of Podoly (east of Kupyansk).[27] +

+

+ Ukrainian forces continued to strike Russian military assets in the Kupyansk direction on June 27. The Ukrainian General Staff reported on June 27 that Ukrainian forces struck a Russian command post in occupied Lyman Pershyi (northeast of Kupyansk and roughly 6 kilometers behind the frontline).[28] +

+

+ Ukrainian forces recently advanced in the Borova direction. Geolocated footage published on June 25 indicates that Ukrainian forces recently advanced in eastern Lypove (southeast of Borova).[29] +

+

Map Thumbnail

+

+ Ukrainian forces continued their intermediate-range strike campaign against Russian military assets in occupied Luhansk Oblast. Geolocated footage published on June 26 shows Ukrainian forces striking a gas distribution facility south of Novokrasnianka (roughly 26 kilometers from the frontline).[30] A source reporting on the Russian Western Grouping of Forces claimed on June 27 that Ukrainian forces struck a Russian military vehicle near Dmytrivka (roughly 87 kilometers from the frontline) severely injuring the commander of the 36th Motorized Rifle Regiment (67th Motorized Rifle Division, 25th Combined Arms Army [CAA], Central Military District [CMD]) Lieutenant Colonel Alexander Vladimirovich Zolin, after Zolin took command of the unit a few days prior.[31] +

+

Russian Subordinate Main Effort #3 – Donetsk Oblast

+

+ Russian objective: Capture the entirety of Donetsk Oblast, the claimed territory of Russia’s proxies in Donbas, and advance into Dnipropetrovsk Oblast +

+

Map Thumbnail

+

Map Thumbnail

+

+ Russian forces continued offensive operations in the Slovyansk direction on June 26 and 27 but did not advance.[32] +

+

Map Thumbnail

+

Slovyansk Military Administration Head Vadym Lyakh reported on June 27 that Russian forces conducted a multiple launch rocket system (MLRS) strike against Slovyansk with cluster munitions.[33] Geolocated footage published on June 27 shows Russian forces conducting a FAB-1500 guided glide bomb strike in eastern Mykolaivka (east of Slovyansk).[34]

+

+ Russian forces continued offensive operations in the Kostyantynivka-Druzhkivka and Dobropillya tactical areas on June 26 and 27 but did not advance.[35] +

+

Map Thumbnail

+

+ Russian forces continued offensive operations in the Pokrovsk direction on June 26 and 27 but did not advance.[36] +

+

Spokesperson of the Ukrainian 7th Rapid Reaction Corps of the Air Assault Forces, Volodymyr Polevyi, reported on June 27 that Russian forces continue to claim to have seized Pokrovsk, despite slow Russian progress and an unspecified continued Ukrainian presence in the northern part of the city.[37] ISW continues to observe Russian officials making exaggerated claims of Russian advances as part of a cognitive warfare effort to falsely portray Ukrainian lines as on the verge of collapse.[38]

+

Map Thumbnail

+

+
+ Russian forces continued offensive operations in the Novopavlivka and Oleksandrivka directions on June 26 and 27 but did not make confirmed advances.[39] +

+

Map Thumbnail

+

+ The Russian MoD continued to post likely artificial intelligence (AI)-altered footage of flag-raising events as part of a cognitive warfare effort to exaggerate Russian advances. The Russian MoD claimed on June 27 that Russian forces seized Novoskeliuvate (southwest of Oleksandrivka) and published likely AI-altered footage purportedly showing Russian servicemembers of the 36th Motorized Rifle Brigade (29th Combined Arms Army [CAA], Eastern Military District [EMD]) holding a flag in Novoskeliuvate.[40] Novoskeliuvate is 15 kilometers away from the furthest assessed extent of Russian advances, 13 kilometers away from the furthest assessed extent of Russian presence, and 12 kilometers away from the furthest extent of previous Russian claims. Russian officials have recently intensified their campaign to use likely AI-altered footage to further their aggrandized claims of Russian successes.[41] These videos are part of the Kremlin’s systematic cognitive warfare effort to falsely portray the entire frontline as collapsing, contrary to all available evidence.[42] +

+

+ Ukrainian forces continued their intermediate-range strike campaign against Russian military logistics in occupied Donetsk Oblast on June 26 and 27. A Ukrainian brigade operating in Donetsk Oblast reported on June 27 that it conducted Hornet drone strikes against Russian military and logistics assets along the M-30 Donetsk City-Pokrovsk highway and destroyed 12 artillery guns, one self-propelled artillery system, one BM-21 Grad MLRS, three checkpoints, and four engineering vehicles and trucks.[43] Geolocated footage published on June 26 shows Ukrainian forces reportedly conducting first-person view (FPV) drone strikes against Russian military transport trucks on the Donetsk City Ring Road H-20 highway (at two points both roughly 70 kilometers from the frontline) and north of occupied Starobesheve along the T-05-08 Starobesheve-Donetsk City highway (at a point roughly 90 kilometers from the frontline).[44] Geolocated footage published on June 26 shows Ukrainian forces striking a railyard in occupied Yasynuvata (roughly 55 kilometers from the frontline).[45] +

+
+
+

Russian Supporting Effort: Southern Axis

+

+ Russian objective: Maintain frontline positions, secure rear areas against Ukrainian strikes, and advance within tube artillery range of Zaporizhzhia City +

+

+ Russian forces continue to infiltrate into Hulyaipilske (southwest of Hulyaipole) but do not control the settlement. A Ukrainian mechanized brigade operating in the Hulyaipole direction published footage on June 27 of a Russian soldier holding a flag in Hulyaipilske but noted that Ukrainian forces destroyed the soldier and raised a Ukrainian flag.[46] The brigade also published footage of a Ukrainian flag in Hulyaipilske. A Russian milblogger claimed on June 27 that there is no Ukrainian presence in Hulyaipilske, however.[47] Russian forces likely sought to use the presence of a single Russian soldier holding a flag in Hulyaipilske as part of the Kremlin’s systematic cognitive war effort to aggrandize Russian advances using exaggerated claims.[48] +

+

+ Russian forces continued limited ground attacks northwest and southeast of Orikhiv on June 27 but did not advance as Ukrainian forces counterattacked.[49] The Ukrainian General Staff reported on June 27 that Ukrainian forces struck two Russian drone control points near Luhove and Kamyanske (both southwest of Orikhiv).[50] +

+

Map Thumbnail

+

+ Ukrainian forces continue their intermediate-range strike campaign targeting Russian transport logistics in occupied Zaporizhia Oblast. A geolocated image published on June 27 shows two Russian cargo trucks burning on the M-18 Zaporizhzhia City-Melitopol highway north of occupied Nove (roughly 84 kilometers from the frontline) following Ukrainian drone strikes.[51] Geolocated footage from Ukrainian Unmanned Systems Forces (USF) Commander Major Robert “Magyar” Brovdi on June 26 shows Ukrainian forces striking a Russian logistics truck near the M-14 Melitopol-Mariupol highway east of Kostyanynivka (roughly 72 kilometers from the frontline) and a parked Russian fuel truck in occupied Astrakhanka (roughly 65 kilometers from the frontline).[52] +

+

+ Geolocated footage demonstrates updated battle damage assessments (BDA) of recent Ukrainian strikes against a bridge in occupied Zaporizhia Oblast. Geolocated footage published on June 27 shows the holes and a partially collapsed span of a bridge along the M-14 Rostov-Crimea highway south of Volodymyrivka (roughly 86 kilometers from the frontline) following Ukrainian strikes against the bridge on June 26.[53] +

+

+ Neither Russian nor Ukrainian sources reported ground activity in the Kherson direction on June 27. +

+

Map Thumbnail

+

+ Ukrainian forces continue interdicting Russian ground lines of communication (GLOCs) in and to occupied Kherson Oblast. Geolocated footage from Brovdi on June 26 shows Ukrainian forces striking a Russian 14th Army Corps (AC) communications node in occupied Chulakivka (about 17 kilometers from the frontline) and a truck near occupied Nadiivka (about 48 kilometers from the frontline).[54] Additional geolocated footage from the Ukrainian Navy on June 27 shows Ukrainian forces striking a Russian boat south of the Tendrivska Spit that was providing logistics to Russian forces on the Tendrivska Spit.[55] +

+

+ Ukrainian long-range strikes continue to degrade Russian air defenses and fuel storage capabilities in occupied Crimea. The Ukrainian General Staff reported that Ukrainian forces struck a Pantsir-S1 air defense system near occupied Feodosia (about 245 kilometers from the frontline) on June 26 or overnight on June 26 to 27.[56] Satellite imagery collected on June 21 and June 26 indicates that recent Ukrainian strikes at least damaged fuel storage containers at the Kamysh-Burunskaya Thermal Power Plant and Kerch Oil Depot (both about 287 kilometers from the frontline).[57] +

+

+ Power outages persist in occupied Crimea due to Ukrainian strikes. Crimean occupation Minister of Fuel and Energy Vladimir Voronkin stated on June 27 that there may be rolling power outages in occupied Crimea in the coming days as authorities work to expand the Crimean power grid’s operational capacity amid fuel shortages.[58] Crimean occupation energy operator Krymenergo reported that it introduced restrictions on power supplies on the morning of June 27 to alleviate the overloading of the power grid.[59] +

+
+
+

Russian Air, Missile, and Drone Campaign

+

+ Russian Objective: Target Ukrainian military and civilian infrastructure in the rear and on the front line +

+

+ Russian forces conducted a series of long-range drone strikes against Ukraine on the night of June 26 to 27. The Ukrainian Air Force reported on June 27 that Russian forces launched 129 Shahed- (including jet-propelled), Gerbera-, and Italmas-type strike drones and Parodiya decoy drones from the directions of Kursk, Bryansk, and Oryol cities; Millerovo, Rostov Oblast; Primorsko-Akhtarsk, Krasnodar Krai; occupied Hvardiiske, Crimea; and occupied Donetsk City.[60] The Ukrainian Air Force reported that Ukrainian forces downed 113 drones, that 13 drones struck seven locations, and that debris fell on three locations. Ukrainian officials reported that Russian strikes damaged residential, civilian, transport, and agricultural infrastructure in Chernihiv, Dnipropetrovsk, Kharkiv, Zaporizhia, and Sumy oblasts.[61] Ukrainian Sumy Oblast officials reported on June 24 that Russian forces likely struck Sumy City with three jet-propelled drones that fly faster than conventional strike drones, injuring at least 18 people.[62] The Ukrainian State Emergency Service reported on June 27 that Russian forces used three guided glide bombs to strike residential infrastructure in Zaporizhzhia City, injuring at least nine.[63] +

+

+ Russian forces continue to strike Ukrainian gasoline facilities and rail infrastructure to disrupt Ukrainian logistics. Ukrainian officials reported on June 27 that Russian forces struck several gas stations near Kharkiv City, Zaporizhzhia City, and in Sumy Oblast and railway infrastructure in Kharkiv Oblast.[64] Naftogaz Board Chairman Serhiy Koretsky reported on June 27 that Russian forces struck Naftogaz facilities in Kharkiv and Poltava oblasts with at least four ballistic missiles, some of which had cluster warheads, over the past week (since about June 20).[65] The Russian MoD claimed on June 26 that Russian Geran 2 drones purportedly struck a Ukrainian military equipment depot and a gas station near Perepys, Chernihiv Oblast, and a train station near Korosten, Zhytomyr Oblast.[66] A Russian milblogger claimed on June 26 that Russian forces conducted Geran drone strikes against Ukrainian rolling stock and a gas station in Zaporizhzhia City.[67] +

+

+ Russian forces conducted a drone strike on an airfield in Mykolaiv Oblast. Geolocated footage published on June 27 shows that Russian forces conducted a Geran 4 loitering munition strike on a Ukrainian MiG-29 fighter jet and a TZ-22 tanker truck at the Voznesensk airfield in Mykolaiv Oblast.[68] The Russian MoD claimed that a Russian drone strike damaged two Ukrainian MiG-29 fighter jets, a fuel tanker, an APA-5D aircraft starting unit, and killed or injured engineering and flight personnel.[69] +

+
+
+

Significant Activity in Belarus 

+

+ Russian efforts to increase its military presence in Belarus and further integrate Belarus into Russian-favorable frameworks +

+

+ Russian imports of Belarusian jet fuel have risen sharply as Russia continues to rely on Belarus to offset fuel shortages from Ukraine’s strike campaign against Russian oil refineries and infrastructure.[70] Russian outlet RBK reported on June 26 that Russia imported 5,170 tons of aviation kerosene (jet fuel) from Belarus in May 2026, an almost four-fold increase over May 2025.[71] Russian opposition outlet The Bell reported on June 26 that Russia has already imported 2,600 tons of Belarusian jet fuel between June 1 and 10, suggesting that imports in June 2026 are projected to exceed those from May 2026.[72] Reports of skyrocketing Russian imports of Belarusian fuel began in May 2026, and the Russian fuel supply crisis has reportedly forced Russia to import 26 times more gasoline and three times more diesel from Belarus in June 2026 compared to the same period in 2025.[73] Russia may increasingly rely on Belarusian hydrocarbon refining capabilities as Ukrainian strikes against Russian facilities degrade Russia’s refining and processing capabilities. +

+

+ Russian President Vladimir Putin and Belarusian President Alexander Lukashenko continued their closed-door meetings at Putin’s residence in Valdai, Novgorod Oblast, on June 27.[74] +

+
+

+ Note: ISW does not receive any classified material from any source, uses only publicly available information, and draws extensively on Russian, Ukrainian, and Western reporting and social media as well as commercially available satellite imagery and other geospatial data as the basis for these reports. References to all sources used are provided in the endnotes of each update. +

+
+ Powered by Babel Street logo +
+
+

[1] https://t.me/GeneralStaffZSU/40472

+

[2] https://t.me/kiber_boroshno/13265; https://t.me/DniproOfficial/7767; https://t.me/WarArchive_ua/36797; https://x.com/GarbuzYe/status/2070681471308709971?s=20’ https://x.com/GarbuzYe/status/2070691531825057869?s=20; https://t.me/ButusovPlus/30758; https://militarnyi dot com/uk/news/rakety-flamingo-urazyly-zavod-tytan-barrykady-yakyj-zaluchenyj-do-vyrobnytstva-oreshnyk/; https://t.me/RVvoenkor/117932; https://t.me/istories_media/12710 ; https://t.me/notes_veterans/28346 ; https://t.me/notes_veterans/28348; https://t.me/s/DniproOfficial; https://x.com/Grimm_Intel/status/2070679283953996230; https://t.me/supernova_plus/54585; https://x.com/Grimm_Intel/status/2070696336752619551; https://t.me/supernova_plus/54610; https://x.com/Noobieshunta_/status/2070753093331947703; https://x.com/TheDeadDistrict/status/2070709527649931691; https://x.com/Grimm_Intel/status/2070765881450270746; https://t.me/exilenova_plus/23877; https://x.com/Noobieshunta_/status/2070767385124941849; https://x.com/TheDeadDistrict/status/2070709527649931691; https://x.com/Grimm_Intel/status/2070682760126058674 ; https://t.me/DniproOfficial/7765; https://t.me/DniproOfficial/7766

+

[3] https://t.me/V_Zelenskiy_official/19649 ; https://x.com/ZelenskyyUa/status/2070774431652147547 ; https://suspilne dot media/1341308-zelenskij-pidtverdiv-urazenna-raketami-flamingo-rosijskogo-pidpriemstva-titan-barikadi-u-volgogradi/

+

[4] https://meduza dot io/news/2026/06/27/ukraina-nanesla-raketnyy-udar-po-zavodu-v-volgograde-gde-proizvodyat-kompleksy-oreshnik; https://t.me/sotaproject/115063

+

[5] https://t.me/milinfolive/175028

+

[6] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-1-2025/; https://en.defence-ua dot com/analysis/russia_can_keep_no_more_than_four_a_50u_awacs_aircraft_flying_that_matters_for_future_gripen_operations_in_ukraine-18697.html

+

[7] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_15-10/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_94/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_29-9/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_27-21/

+

[8] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-september-1-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-november-13-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-february-5-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-february-12-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-february-21-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-march-28-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-5-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-10-2026/

+

[9] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-10-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-5-2026/

+

[10] https://armyinform dot com.ua/2026/06/27/urazheno-naftoperekachuvalnu-stancziyu-vtorovo-yaka-zabezpechuye-palnym-moskvu/; https://t.me/SBUkr/17940

+

[11] https://firms.modaps.eosdis.nasa.gov/map/#d:24hrs;@40.892,56.199,12.315z

+

[12] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-29-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-13-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-template-020426/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-25-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-6-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-18-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-10-2026/

+

[13] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-25-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-23-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-19-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/

+

[14] https://www.reuters.com/business/energy/us-quietly-allows-waiver-russian-oil-expire-2026-06-17/

+

[15] https://newsukraine dot rbc.ua/news/us-resumes-sanctions-against-russian-oil-1782485691.html; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-18-2026/

+

[16] https://www.reuters.com/business/energy/us-quietly-allows-waiver-russian-oil-expire-2026-06-17/

+

[17] https://t.me/serhii_flash/7521; https://www.facebook.com/Serhii.Flash/posts/pfbid02KsRPczco5SBZbAdT7s7PS7cM2GDzJpe4PkgmYK9H5MBWQvrDebXUDMTmkUyecTG5l?__cft__[0]=AZaQhM72JKwcGXPFuJngHfzlYVozBnNAeFJdohbou2RR-N5vNjZsWOpE7RTRScYlvETugiVwYIRGwrRBS3Cz9V0HLVm1RKVg5gQ0V8yX_bU6d_B8XoqW1Va6L5JJ_fVPKPIw_FyVpIFTVgjFLB_hinsJY1cymJ8BB15-0ZzzQ5y9EKv3QwEKrjq9mzMW–qa8r0&__tn__=%2CO%2CP-R

+

[18] https://x.com/MikiValbuena/status/2070524587046002798 ; https://x.com/Exilenova_plus/status/2070519790318301361; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-25-2026/

+

[19] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/dva_majors/95222; https://t.me/wargonzo/35107; https://t.me/severnnyi/8520

+

[20] https://t.me/GeneralStaffZSU/40479 ; https://t.me/GeneralStaffZSU/40465 ; https://t.me/GeneralStaffZSU/40453 ; https://t.me/severnnyi/8520 ; https://t.me/wargonzo/35107 ; https://t.me/dva_majors/95222 https://t.me/severnnyi/8525 ; https://t.me/grvZapad/18971

+

[21] https://t.me/dva_majors/95222

+

[22] https://t.me/GeneralStaffZSU/40472

+

[23] https://t.me/kharkivnapriamok/3134 ; https://x.com/99Dominik_/status/2070838730131177681?s=20

+

[24] https://t.me/severnnyi/8523

+

[25] https://t.me/GeneralStaffZSU/40479

+

[26] https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/DnevnikDesantnika/44703; https://t.me/dva_majors/95222;   https://t.me/wargonzo/35107; https://t.me/grvZapad/18974

+

[27] https://t.me/DnevnikDesantnika/44703

+

[28] https://t.me/GeneralStaffZSU/40472

+

[29] https://t.me/creamy_caprice/12301; https://t.me/Secrets_of_Vinakos/15703

+

[30] https://x.com/aroslav24470/status/2070601003888435638; https://t.me/robert_magyar/2525

+

[31] https://t.me/grvZapad/18975

+

[32] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/tass_agency/382603; https://t.me/dva_majors/95222; https://t.me/wargonzo/35107

+

[33] https://www.facebook.com/Vadymlyakh/posts/pfbid02WUGqNn8qxYSrYsjHgsRzXP2PyW88wRBwjGPoqJwuPHYBywkYBH32bxfFPY3FeSEXl; https://suspilne dot media/donbas/1341240-u-slovansku-poranena-zinka-cerez-rosijskij-udar-iz-rszv/

+

[34] https://t.me/Osintpen/3024; https://t.me/The_Wrong_Side/29645

+

[35] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/mod_russia/65011; https://t.me/wargonzo/35107 ; https://t.me/mod_russia/65016

+

[36] https://t.me/GeneralStaffZSU/40479 ; https://t.me/GeneralStaffZSU/40465 ; https://t.me/GeneralStaffZSU/40453 ; https://t.me/wargonzo/35107

+

[37] https://suspilne dot media/donbas/1341376-rosijska-armia-zakripilasa-v-pokrovsku-ta-nakopicue-dronariv-oficer-7-korpusu-dsv/

+

[38] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-10-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-11-2025/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-5-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-6-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-7-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-10-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/

+

[39] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453

+

[40] https://t.me/mod_russia/65013 ; https://t.me/mod_russia/65012

+

[41] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/

+

[42] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-10-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-11-2025/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-5-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-6-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-7-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-10-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/

+

[43] https://t.me/si4eslavskabrygada/2432; https://armyinform dot com.ua/2026/06/27/grad-ta-desyatok-garmat-hornety-vypalyuyut-ne-tilky-logistyku-voroga/

+

[44] https://x.com/neonhandrail/status/2070502867333796202 ; https://x.com/neonhandrail/status/2070506342755008690 ; https://x.com/neonhandrail/status/2070529276944998714 ; https://x.com/WarLifeFootage/status/2070451660741025888; https://x.com/neonhandrail/status/2070748218372321771?s=20;

+

[45] https://x.com/neonhandrail/status/2070755487344386405?s=20; https://x.com/neonhandrail/status/2070755487344386405?s=20; https://t.me/pilum_41regiment/47

+

[46] https://armyinform dot com.ua/2026/06/27/pryjshov-pomahav-a-pity-vzhe-ne-zmozhe-voyiny-61-brygady-likviduvaly-flagovtykiv-u-gulyajpilskomu/; https://t.me/stepova_61/2074

+

[47] https://t.me/voin_dv/19972

+

[48] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/

+

[49] https://t.me/wargonzo/35107; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40453;

+

[50] https://t.me/GeneralStaffZSU/40472

+

[51] https://x.com/99Dominik_/status/2070849582750224894?s=20; https://t.me/luftwaffe422/1005; https://x.com/99Dominik_/status/2070849394606211138

+

[52] https://x.com/aroslav24470/status/2070605180500885675; https://t.me/robert_magyar/2525; https://x.com/aroslav24470/status/2070607019409547266

+

[53] https://x.com/blinzka/status/2070828691240673513?s=20; https://x.com/GeoConfirmed/status/2070845519052546418?s=20; https://x.com/bayraktar_1love/status/2070809694579392917?s=20 ; https://t.me/ssternenko/59969; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-26-2026/; https://militarnyi dot com/uk/news/syly-oborony-mist-na-zaporizhzhi/

+

[54] Warning: graphic content
https://x.com/aroslav24470/status/2070598135643062762; https://t.me/robert_magyar/2525; https://x.com/99Dominik_/status/2070527535415218655; https://t.me/exilenova_plus/23702; https://x.com/front_ukrainian/status/2070525402783597042

+

[55] https://t.me/ukrainian_navy/21068; https://t.me/WarArchive_ua/36792; https://x.com/ua_navy/status/2070726201946132767 ; https://militarnyi dot com/uk/news/vms-ukrayiny-znyshhyly-rosijskyj-logistychnyj-kater-bilya-tendrivskoyi-kosy/V

+

[56] https://t.me/GeneralStaffZSU/40472

+

[57] https://x.com/HpwWJVafCv83954/status/2070717313448575033; https://x.com/HpwWJVafCv83954/status/2070567791216992710

+

[58] https://t.me/VoronkinV/295 ; https://suspilne dot media/crimea/1341382-do-5-godin-bez-svitla-okupacijna-vlada-krimu-ne-zmogla-vidnoviti-elektropostacanna/

+

[59] https://crimea.ria dot ru/20260627/situatsiya-s-energosnabzheniem-v-krymu–aktualnaya-informatsiya-1157208156.html

+

[60] https://t.me/kpszsu/66555

+

[61] https://suspilne dot media/chernihiv/1341262-zrujnovanij-ambar-ta-poskodzeni-magazin-i-primisenna-pidpriemstva-rf-molniami-atakuvala-novgorod-siverskij-rajon/; https://www.facebook.com/permalink.php?story_fbid=pfbid02TEDNBnUwJp9jUodCNUB5EYRwistUCqV6p1MwURkYSNr91LcgK2UwfHPamnx2JPqLl&id=61579137283645; https://suspilne dot media/chernihiv/1341236-poskodzeni-vantazivki-vijska-rf-bezpilotnikami-atakuvali-gorodnu/; https://www.facebook.com/policechernigivshchini/posts/pfbid02FiipV5YR7T7aBAkfdK932SpLEYLrnRtiVuTJgvuwCp3m9oQToJGR1icjKD1TqaLZl?locale=uk_UAv; https://t.me/dnipropetrovskaODA/30429; https://t.me/mykola_lukashuk/27286; https://suspilne dot media/dnipro/1341214-vijska-rf-ponad-30-raziv-atakuvali-dnipropetrovsinu-bpla-ta-aviabombami-e-zagibla-ta-poraneni/; https://suspilne dot media/kharkiv/1341292-na-svitanku-rf-atakuvala-selo-u-novovodolazkij-gromadi-cetvero-ludej-poraneni/; https://t.me/Sumy_news_ODA/43666 ; https://suspilne dot media/sumy/1341250-vnoci-armia-rf-zavdala-masovanogo-udaru-po-ohtirskomu-rajonu-so-vidomo/; https://suspilne dot media/sumy/1341540-poskodzeni-azs-vosmero-travmovanih-so-vidomo-pro-nicnu-ataku-rf-na-ohtirku/; https://t.me/ivan_fedorov_zp/42779; https://t.me/zoda_gov_ua/63162 ; https://t.me/zoda_gov_ua/63174; https://t.me/zoda_gov_ua/63176 ; https://t.me/astrapress/116852 ; https://t.me/astrapress/116866

+

[62] https://t.me/hryhorov_oleg/2717; https://t.me/astrapress/116909 ; https://armyinform dot com.ua/2026/06/27/vorog-atakuvav-sumsku-gromadu-troma-reaktyvnymy-bpla-ye-poraneni-poshkodzheno-infrastrukturu/; https://t.me/dsns_telegram/67053; https://t.me/kobzarartemsn/5765; https://t.me/dsns_telegram/67053; https://meduza dot io/news/2026/06/27/rossiya-udarila-po-sumam-raneny-devyat-chelovek-v-tom-chisle-dva-mladentsa

+

[63] https://t.me/dsns_telegram/67035; https://t.me/astrapress/116889

+

[64] https://www.facebook.com/watch/?v=1319467239789342; https://suspilne dot media/kharkiv/1341226-udari-droniv-po-azs-unoci-u-solonicivskij-gromadi-rf-atakuvala-dvi-zapravki/; https://t.me/synegubov/23239; https://suspilne dot media/kharkiv/1341276-vlucanna-v-avto-zaliznicnu-infrastrukturu-poraneni-ak-rosiani-bili-po-harkivsini-za-dobu/; https://t.me/Sumy_news_ODA/43666 ; https://suspilne dot media/sumy/1341250-vnoci-armia-rf-zavdala-masovanogo-udaru-po-ohtirskomu-rajonu-so-vidomo/; https://suspilne dot media/sumy/1341540-poskodzeni-azs-vosmero-travmovanih-so-vidomo-pro-nicnu-ataku-rf-na-ohtirku/; https://t.me/ivan_fedorov_zp/42779; https://t.me/zoda_gov_ua/63162 ; https://t.me/zoda_gov_ua/63174; https://t.me/zoda_gov_ua/63176 ; https://t.me/astrapress/116852 ; https://t.me/astrapress/116866

+

[65] https://www.facebook.com/share/p/1DydNzGME2/?mibextid=wwXIfr; https://suspilne dot media/poltava/1341340-armia-rf-atakuvala-obekti-naftogazu-na-poltavsini-so-vidomo/; https://suspilne dot media/kharkiv/1341530-rf-atakuvala-dvi-zapravki-v-dergacah-bezpilotnikami-poranena-vodijka-pracivnik-azs-mav-gostru-reakciu-na-stres/; https://t.me/prokuratura_kharkiv/29624 ;

+

[66] https://t.me/mod_russia/65002

+

[67] https://t.me/milinfolive/174986; https://t.me/milinfolive/174996

+

[68] https://t.me/creamy_caprice/12310?single; https://t.me/creamy_caprice/12309; https://t.me/Osintpen/3026; https://t.me/rian_ru/341162; https://x.com/Varsevan/status/2070854738543874054; https://x.com/Varsevan/status/2070858313290383801; https://t.me/milinfolive/175032?single; https://x.com/dmitrij46839/status/2070837771514577235?s=20; https://x.com/MarcinRogowsk14/status/2070836335389143081; https://x.com/Zeldamices/status/2070852996095672802; https://x.com/clashreport/status/2070832829890531645 ; https://x.com/MarcinRogowsk14/status/2070876296817631282; https://x.com/Varsevan/status/2070860333694996904; https://t.me/rian_ru/341162

+

[69] https://t.me/mod_russia/65015

+

[70] https://thebell dot io/rossiya-rezko-uvelichila-import-aviakerosina-iz-belarusi-na-fone-defitsita ; https://meduza dot io/news/2026/06/26/rossiya-rezko-uvelichila-import-aviatsionnogo-kerosina-iz-belarusi

+

[71] https://pro dot rbc.ru/demo/6a3e60879a7947a15c0665ae

+

[72] https://thebell dot io/rossiya-rezko-uvelichila-import-aviakerosina-iz-belarusi-na-fone-defitsita

+

[73] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-28-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-2-2026/

+

[74] https://t.me/tass_agency/382679 ; https://belta dot by/society/view/rabochij-vizit-lukashenko-v-rossiju-prodolzhaetsja-ozhidaetsja-novyj-raund-peregovorov-s-putinym-788487-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-26-2026/

+
+
+
\ No newline at end of file diff --git a/test/test-pages/plain-text-links/source.html b/test/test-pages/plain-text-links/source.html new file mode 100644 index 00000000..6451bfe8 --- /dev/null +++ b/test/test-pages/plain-text-links/source.html @@ -0,0 +1,5518 @@ + + + + + + + + Russian Offensive Campaign Assessment, June 27, 2026 | ISW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + +
+
+ + +
+
+ +
+ + + + + + +
+ Skip to Content + +
+
+
+
+

+ Russia & Ukraine +

+

+ Ukraine +

+

+ Russian Offensive Campaign Assessment +

+
+

+ Russian Offensive Campaign Assessment, June 27, 2026 +

+
+ June 27, 2026 +
+
+
+ +
+
+
+
+
+ +

+ Russian Offensive Campaign Assessment, June 27, 2026 +

+
+
+
+

+ Toplines +

+

+ Ukrainian forces conducted an FP-5 Flamingo cruise missile strike against the Russian Titan-Barrikady ballistic missile development and production plant overnight on June 26 to 27. The Ukrainian General Staff reported on June 27 that Ukrainian forces struck the Titan-Barrikady enterprise in Volgograd City, Volgograd Oblast, overnight, causing a fire.[1] The Ukrainian General Staff noted that the enterprise produces self-propelled launchers and transport-loading vehicles for Iskander-M ballistic missiles, launchers and ground equipment for Topol-M and Yars intercontinental ballistic missiles (ICBMs), and the Msta-B and Msta-S large-caliber howitzers. Geolocated footage and imagery published on June 27 shows an explosion and smoke rising from the Titan-Barricades enterprise in Volgograd City after five FP-5 Flamingo cruise missiles reportedly struck three workshops.[2] Ukrainian President Volodymyr Zelensky confirmed that Ukrainian forces used Flamingo missiles to strike the Titan-Barrikady plant on June 27.[3] Volgograd Oblast Governor Andrei Bocharov confirmed on June 27 that a Ukrainian “high-speed aerial target” strike damaged an industrial facility in Volgograd City.[4] A Russian milblogger claimed on June 27 that successful Ukrainian Flamingo strikes in 2026 have likely flown at low altitudes and over water features, making them harder for Russian forces to intercept.[5] The milblogger noted that Russian forces lack sufficient Airborne Warning and Control System (AWACS) aircraft to maintain surveillance and detect low-flying missiles. Ukrainian forces have struck Russian AWACS aircraft at several points throughout the war, contributing to shortages.[6] Russian forces reportedly have fewer than ten operational A-50 AWACS aircraft as of June 1, 2025, of which reportedly only four or five are the modernized A-50U variant.[7] ISW previously observed reports of at least eight separate Flamingo cruise missile strikes, with the most recent strike on the night of June 9 to June 10.[8] Ukraine’s increasing use of long-range Flamingo cruise missile strikes demonstrates Ukraine’s increasing ability to sustain and intensify missile strikes against key Russian military facilities.[9] +

+

+ Ukrainian forces also struck Russian oil infrastructure in Vladimir Oblast overnight as part of Ukraine’s 40-day intermediate- and long-range strike campaign to influence Russia to end the war in Ukraine. The Ukrainian Security Service (SBU) reported on June 27 that Ukrainian forces struck the Vtorovo oil pumping station near Penkino, Vladimir Oblast, as part of Ukrainian President Volodymyr Zelensky’s 40-day campaign against Russia, hitting technical buildings and causing a secondary detonation.[10] The SBU noted that the Vtorovo station is part of the state-owned JSC Transneft Upper Volga and a key Russian logistics hub for pumping light petroleum products for export and domestic consumption. The SBU reported that the Vtorovo station transports diesel to the Moscow Ring Oil Product Pipeline and then to large oil depots in Moscow City and to the Baltic Sea. NASA Fire Information for Resource Management System (FIRMS) data from June 27 shows a heat anomaly about 10 kilometers from the pumping station.[11] Ukrainian forces have been intensifying the scope and scale of their long-range strikes against Russian oil infrastructure in Russia over the last several months, exploiting overstretched Russian air defenses.[12] Continued Ukrainian strikes against Russian oil production and transport infrastructure will likely intensify the spread and severity of fuel shortages in Russian regions and occupied Ukraine.[13] +

+

+ The United States reimposed sanctions against Russian seaborne oil exports after temporary sanctions waivers expired and were not renewed.[14] Ukrainian Presidential Commissioner for Sanctions Policy Vladyslav Vlasyuk stated on June 26 that the US sanctions against Russian oil producers Rosneft and Lukoil have re-entered force after the United States issued sanctions waivers on Russian oil exports that were already at sea since March 12.[15] The most recent US waiver on these sanctions expired as of June 17, and US officials have not indicated since June 17 that the United States would extend the sanctions waiver again.[16] +

+
+
+
+

+ Key Takeaways +

+
    + + + + + +
+
+
+
+
+ + Map Thumbnail +
+
+
+

+

+ We do not report in detail on Russian war crimes because these activities are well-covered in Western media and do not directly affect the military operations we are assessing and forecasting. We will continue to evaluate and report on the effects of these criminal activities on the Ukrainian military and the Ukrainian population and specifically on combat in Ukrainian urban areas. We utterly condemn Russian violations of the laws of armed conflict and the Geneva Conventions and crimes against humanity even though we do not describe them in these reports.   +

+

+ Ukrainian Operations in the Russian Federation +

+

+ Ukrainian forces recently struck satellite communication facilities in Russia. Ukrainian Ministry of Defense (MoD) advisor on defense technology and drone and electronic warfare (EW) expert Serhiy “Flash” Beskrestnov reported on June 27 that Ukrainian forces struck two out of five main Russian satellite communication nodes in June, including the “Dubna” Central Communications Center in Moscow Oblast and the “Vladimir” Central Communications Center in Gus-Khrustalny, Vladimir Oblast.[17] Geolocated satellite imagery published on June 26 shows damage to several facilities at the ”Vladimir” Central Communications Center after a Ukrainian drone strike on June 22.[18] +

+

+ See topline text for additional Ukrainian operations in Russia. +

+
+
+

+ Russian Supporting Effort: Northern Axis +

+

+ Russian objective: Create defensible buffer zones in Sumy Oblast along the international border +

+

+ Russian forces continued offensive operations in northern Sumy Oblast on June 26 and 27 but did not advance.[19] +

+
+ Map Thumbnail +
+
+
+
+
+

+ Russian Main Effort: Eastern Ukraine +

+

+ Russian Subordinate Main Effort #1 Kharkiv Oblast +

+

+ Russian objective: Push Ukrainian forces back from the international border to create a defensible buffer zone with Belgorod Oblast and approach to within tube artillery range of Kharkiv City +

+

+ Russian forces continued offensive operations north and northeast of Kharkiv City on June 26 and 27 but did not advance as Ukrainian forces counterattacked.[20] A Russian milblogger claimed that Ukrainian forces counterattacked near Kozacha Lopan (north of Kharkiv City) and Zamlianyi Yar (northeast of Kharkiv City).[21] +

+

+ Ukrainian forces continued their frontline strike campaign against Russian military assets in Belgorod Oblast along the border with Kharkiv Oblast. The Ukrainian General Staff reported on June 27 that Ukrainian forces struck a Russian command post in Leninskiy, Belgorod Oblast (northeast of Kharkiv City and roughly 2 kilometers north of the international border).[22] Geolocated footage published on June 27 shows Ukrainian forces striking a Russian fuel storage warehouse south of Rzhevka, Belgorod Oblast (northeast of Kharkiv City and roughly 7 kilometers north of the international border).[23] A source reporting on the Russian Northern Grouping of Forces claimed on June 27 that the warehouse fell within the Russian 127th Motorized Rifle Regiment’s (71st Guards Motorized Rifle Division, 14th Army Corps [AC], Leningrad Military District [LMD]) and 128th Separate Motorized Rifle Brigade’s (44th AC, LMD) area of responsibility and posted an image showing a plume of smoke coming from the warehouse after the strike.[24] +

+

+ Russian forces continued limited offensive operations northeast of Velukyi Burluk on June 27 but did not advance.[25] +

+

+ Russian Subordinate Main Effort #2 – Oskil River +

+

+ Russian objective: Cross the Oskil River in Kharkiv Oblast and push westward into eastern Kharkiv Oblast and northern Donetsk Oblast +

+
+ Map Thumbnail +
+
+
+

+
+ Map Thumbnail +
+
+
+

+

+ Russian forces continued limited offensive operations in the Kupyansk direction on June 26 and 27 but did not advance as Ukrainian forces recently advanced or maintained positions east of Kupyansk.[26] A Russian milblogger posted a map indicating that Ukrainian forces recently advanced or maintained positions east of Podoly (east of Kupyansk).[27] +

+

+ Ukrainian forces continued to strike Russian military assets in the Kupyansk direction on June 27. The Ukrainian General Staff reported on June 27 that Ukrainian forces struck a Russian command post in occupied Lyman Pershyi (northeast of Kupyansk and roughly 6 kilometers behind the frontline).[28] +

+

+ Ukrainian forces recently advanced in the Borova direction. Geolocated footage published on June 25 indicates that Ukrainian forces recently advanced in eastern Lypove (southeast of Borova).[29] +

+

+
+ Map Thumbnail +
+
+
+

+

+ Ukrainian forces continued their intermediate-range strike campaign against Russian military assets in occupied Luhansk Oblast. Geolocated footage published on June 26 shows Ukrainian forces striking a gas distribution facility south of Novokrasnianka (roughly 26 kilometers from the frontline).[30] A source reporting on the Russian Western Grouping of Forces claimed on June 27 that Ukrainian forces struck a Russian military vehicle near Dmytrivka (roughly 87 kilometers from the frontline) severely injuring the commander of the 36th Motorized Rifle Regiment (67th Motorized Rifle Division, 25th Combined Arms Army [CAA], Central Military District [CMD]) Lieutenant Colonel Alexander Vladimirovich Zolin, after Zolin took command of the unit a few days prior.[31] +

+

+ Russian Subordinate Main Effort #3 – Donetsk Oblast +

+

+ Russian objective: Capture the entirety of Donetsk Oblast, the claimed territory of Russia’s proxies in Donbas, and advance into Dnipropetrovsk Oblast +

+
+ Map Thumbnail +
+
+
+

+
+ Map Thumbnail +
+
+
+

+

+ Russian forces continued offensive operations in the Slovyansk direction on June 26 and 27 but did not advance.[32] +

+

+
+ Map Thumbnail +
+
+
+

+

+ Slovyansk Military Administration Head Vadym Lyakh reported on June 27 that Russian forces conducted a multiple launch rocket system (MLRS) strike against Slovyansk with cluster munitions.[33] Geolocated footage published on June 27 shows Russian forces conducting a FAB-1500 guided glide bomb strike in eastern Mykolaivka (east of Slovyansk).[34] +

+

+ Russian forces continued offensive operations in the Kostyantynivka-Druzhkivka and Dobropillya tactical areas on June 26 and 27 but did not advance.[35] +

+

+
+ Map Thumbnail +
+
+
+

+

+ Russian forces continued offensive operations in the Pokrovsk direction on June 26 and 27 but did not advance.[36] +

+

+ Spokesperson of the Ukrainian 7th Rapid Reaction Corps of the Air Assault Forces, Volodymyr Polevyi, reported on June 27 that Russian forces continue to claim to have seized Pokrovsk, despite slow Russian progress and an unspecified continued Ukrainian presence in the northern part of the city.[37] ISW continues to observe Russian officials making exaggerated claims of Russian advances as part of a cognitive warfare effort to falsely portray Ukrainian lines as on the verge of collapse.[38] +

+

+
+ Map Thumbnail +
+
+
+

+
+ Russian forces continued offensive operations in the Novopavlivka and Oleksandrivka directions on June 26 and 27 but did not make confirmed advances.[39] +

+

+
+ Map Thumbnail +
+
+
+

+

+ The Russian MoD continued to post likely artificial intelligence (AI)-altered footage of flag-raising events as part of a cognitive warfare effort to exaggerate Russian advances. The Russian MoD claimed on June 27 that Russian forces seized Novoskeliuvate (southwest of Oleksandrivka) and published likely AI-altered footage purportedly showing Russian servicemembers of the 36th Motorized Rifle Brigade (29th Combined Arms Army [CAA], Eastern Military District [EMD]) holding a flag in Novoskeliuvate.[40] Novoskeliuvate is 15 kilometers away from the furthest assessed extent of Russian advances, 13 kilometers away from the furthest assessed extent of Russian presence, and 12 kilometers away from the furthest extent of previous Russian claims. Russian officials have recently intensified their campaign to use likely AI-altered footage to further their aggrandized claims of Russian successes.[41] These videos are part of the Kremlin’s systematic cognitive warfare effort to falsely portray the entire frontline as collapsing, contrary to all available evidence.[42] +

+

+ Ukrainian forces continued their intermediate-range strike campaign against Russian military logistics in occupied Donetsk Oblast on June 26 and 27. A Ukrainian brigade operating in Donetsk Oblast reported on June 27 that it conducted Hornet drone strikes against Russian military and logistics assets along the M-30 Donetsk City-Pokrovsk highway and destroyed 12 artillery guns, one self-propelled artillery system, one BM-21 Grad MLRS, three checkpoints, and four engineering vehicles and trucks.[43] Geolocated footage published on June 26 shows Ukrainian forces reportedly conducting first-person view (FPV) drone strikes against Russian military transport trucks on the Donetsk City Ring Road H-20 highway (at two points both roughly 70 kilometers from the frontline) and north of occupied Starobesheve along the T-05-08 Starobesheve-Donetsk City highway (at a point roughly 90 kilometers from the frontline).[44] Geolocated footage published on June 26 shows Ukrainian forces striking a railyard in occupied Yasynuvata (roughly 55 kilometers from the frontline).[45] +

+
+
+

+ Russian Supporting Effort: Southern Axis +

+

+ Russian objective: Maintain frontline positions, secure rear areas against Ukrainian strikes, and advance within tube artillery range of Zaporizhzhia City +

+

+ Russian forces continue to infiltrate into Hulyaipilske (southwest of Hulyaipole) but do not control the settlement. A Ukrainian mechanized brigade operating in the Hulyaipole direction published footage on June 27 of a Russian soldier holding a flag in Hulyaipilske but noted that Ukrainian forces destroyed the soldier and raised a Ukrainian flag.[46] The brigade also published footage of a Ukrainian flag in Hulyaipilske. A Russian milblogger claimed on June 27 that there is no Ukrainian presence in Hulyaipilske, however.[47] Russian forces likely sought to use the presence of a single Russian soldier holding a flag in Hulyaipilske as part of the Kremlin’s systematic cognitive war effort to aggrandize Russian advances using exaggerated claims.[48] +

+

+ Russian forces continued limited ground attacks northwest and southeast of Orikhiv on June 27 but did not advance as Ukrainian forces counterattacked.[49] The Ukrainian General Staff reported on June 27 that Ukrainian forces struck two Russian drone control points near Luhove and Kamyanske (both southwest of Orikhiv).[50] +

+

+
+ Map Thumbnail +
+
+
+

+

+ Ukrainian forces continue their intermediate-range strike campaign targeting Russian transport logistics in occupied Zaporizhia Oblast. A geolocated image published on June 27 shows two Russian cargo trucks burning on the M-18 Zaporizhzhia City-Melitopol highway north of occupied Nove (roughly 84 kilometers from the frontline) following Ukrainian drone strikes.[51] Geolocated footage from Ukrainian Unmanned Systems Forces (USF) Commander Major Robert “Magyar” Brovdi on June 26 shows Ukrainian forces striking a Russian logistics truck near the M-14 Melitopol-Mariupol highway east of Kostyanynivka (roughly 72 kilometers from the frontline) and a parked Russian fuel truck in occupied Astrakhanka (roughly 65 kilometers from the frontline).[52] +

+

+ Geolocated footage demonstrates updated battle damage assessments (BDA) of recent Ukrainian strikes against a bridge in occupied Zaporizhia Oblast. Geolocated footage published on June 27 shows the holes and a partially collapsed span of a bridge along the M-14 Rostov-Crimea highway south of Volodymyrivka (roughly 86 kilometers from the frontline) following Ukrainian strikes against the bridge on June 26.[53] +

+

+ Neither Russian nor Ukrainian sources reported ground activity in the Kherson direction on June 27. +

+

+
+ Map Thumbnail +
+
+
+

+

+ Ukrainian forces continue interdicting Russian ground lines of communication (GLOCs) in and to occupied Kherson Oblast. Geolocated footage from Brovdi on June 26 shows Ukrainian forces striking a Russian 14th Army Corps (AC) communications node in occupied Chulakivka (about 17 kilometers from the frontline) and a truck near occupied Nadiivka (about 48 kilometers from the frontline).[54] Additional geolocated footage from the Ukrainian Navy on June 27 shows Ukrainian forces striking a Russian boat south of the Tendrivska Spit that was providing logistics to Russian forces on the Tendrivska Spit.[55] +

+

+ Ukrainian long-range strikes continue to degrade Russian air defenses and fuel storage capabilities in occupied Crimea. The Ukrainian General Staff reported that Ukrainian forces struck a Pantsir-S1 air defense system near occupied Feodosia (about 245 kilometers from the frontline) on June 26 or overnight on June 26 to 27.[56] Satellite imagery collected on June 21 and June 26 indicates that recent Ukrainian strikes at least damaged fuel storage containers at the Kamysh-Burunskaya Thermal Power Plant and Kerch Oil Depot (both about 287 kilometers from the frontline).[57] +

+

+ Power outages persist in occupied Crimea due to Ukrainian strikes. Crimean occupation Minister of Fuel and Energy Vladimir Voronkin stated on June 27 that there may be rolling power outages in occupied Crimea in the coming days as authorities work to expand the Crimean power grid’s operational capacity amid fuel shortages.[58] Crimean occupation energy operator Krymenergo reported that it introduced restrictions on power supplies on the morning of June 27 to alleviate the overloading of the power grid.[59] +

+
+
+

+ Russian Air, Missile, and Drone Campaign +

+

+ Russian Objective: Target Ukrainian military and civilian infrastructure in the rear and on the front line +

+

+ Russian forces conducted a series of long-range drone strikes against Ukraine on the night of June 26 to 27. The Ukrainian Air Force reported on June 27 that Russian forces launched 129 Shahed- (including jet-propelled), Gerbera-, and Italmas-type strike drones and Parodiya decoy drones from the directions of Kursk, Bryansk, and Oryol cities; Millerovo, Rostov Oblast; Primorsko-Akhtarsk, Krasnodar Krai; occupied Hvardiiske, Crimea; and occupied Donetsk City.[60] The Ukrainian Air Force reported that Ukrainian forces downed 113 drones, that 13 drones struck seven locations, and that debris fell on three locations. Ukrainian officials reported that Russian strikes damaged residential, civilian, transport, and agricultural infrastructure in Chernihiv, Dnipropetrovsk, Kharkiv, Zaporizhia, and Sumy oblasts.[61] Ukrainian Sumy Oblast officials reported on June 24 that Russian forces likely struck Sumy City with three jet-propelled drones that fly faster than conventional strike drones, injuring at least 18 people.[62] The Ukrainian State Emergency Service reported on June 27 that Russian forces used three guided glide bombs to strike residential infrastructure in Zaporizhzhia City, injuring at least nine.[63] +

+

+ Russian forces continue to strike Ukrainian gasoline facilities and rail infrastructure to disrupt Ukrainian logistics. Ukrainian officials reported on June 27 that Russian forces struck several gas stations near Kharkiv City, Zaporizhzhia City, and in Sumy Oblast and railway infrastructure in Kharkiv Oblast.[64] Naftogaz Board Chairman Serhiy Koretsky reported on June 27 that Russian forces struck Naftogaz facilities in Kharkiv and Poltava oblasts with at least four ballistic missiles, some of which had cluster warheads, over the past week (since about June 20).[65] The Russian MoD claimed on June 26 that Russian Geran 2 drones purportedly struck a Ukrainian military equipment depot and a gas station near Perepys, Chernihiv Oblast, and a train station near Korosten, Zhytomyr Oblast.[66] A Russian milblogger claimed on June 26 that Russian forces conducted Geran drone strikes against Ukrainian rolling stock and a gas station in Zaporizhzhia City.[67] +

+

+ Russian forces conducted a drone strike on an airfield in Mykolaiv Oblast. Geolocated footage published on June 27 shows that Russian forces conducted a Geran 4 loitering munition strike on a Ukrainian MiG-29 fighter jet and a TZ-22 tanker truck at the Voznesensk airfield in Mykolaiv Oblast.[68] The Russian MoD claimed that a Russian drone strike damaged two Ukrainian MiG-29 fighter jets, a fuel tanker, an APA-5D aircraft starting unit, and killed or injured engineering and flight personnel.[69] +

+
+
+

+ Significant Activity in Belarus  +

+

+ Russian efforts to increase its military presence in Belarus and further integrate Belarus into Russian-favorable frameworks +

+

+ Russian imports of Belarusian jet fuel have risen sharply as Russia continues to rely on Belarus to offset fuel shortages from Ukraine’s strike campaign against Russian oil refineries and infrastructure.[70] Russian outlet RBK reported on June 26 that Russia imported 5,170 tons of aviation kerosene (jet fuel) from Belarus in May 2026, an almost four-fold increase over May 2025.[71] Russian opposition outlet The Bell reported on June 26 that Russia has already imported 2,600 tons of Belarusian jet fuel between June 1 and 10, suggesting that imports in June 2026 are projected to exceed those from May 2026.[72] Reports of skyrocketing Russian imports of Belarusian fuel began in May 2026, and the Russian fuel supply crisis has reportedly forced Russia to import 26 times more gasoline and three times more diesel from Belarus in June 2026 compared to the same period in 2025.[73] Russia may increasingly rely on Belarusian hydrocarbon refining capabilities as Ukrainian strikes against Russian facilities degrade Russia’s refining and processing capabilities. +

+

+ Russian President Vladimir Putin and Belarusian President Alexander Lukashenko continued their closed-door meetings at Putin’s residence in Valdai, Novgorod Oblast, on June 27.[74] +

+
+

+ Note: ISW does not receive any classified material from any source, uses only publicly available information, and draws extensively on Russian, Ukrainian, and Western reporting and social media as well as commercially available satellite imagery and other geospatial data as the basis for these reports. References to all sources used are provided in the endnotes of each update. +

+
+ Powered by Babel Street logo +
+
+
+
+ +
+
+

+ [1] https://t.me/GeneralStaffZSU/40472 +

+

+ [2] https://t.me/kiber_boroshno/13265; https://t.me/DniproOfficial/7767; https://t.me/WarArchive_ua/36797; https://x.com/GarbuzYe/status/2070681471308709971?s=20’ https://x.com/GarbuzYe/status/2070691531825057869?s=20; https://t.me/ButusovPlus/30758; https://militarnyi dot com/uk/news/rakety-flamingo-urazyly-zavod-tytan-barrykady-yakyj-zaluchenyj-do-vyrobnytstva-oreshnyk/; https://t.me/RVvoenkor/117932; https://t.me/istories_media/12710 ; https://t.me/notes_veterans/28346 ; https://t.me/notes_veterans/28348; https://t.me/s/DniproOfficial; https://x.com/Grimm_Intel/status/2070679283953996230; https://t.me/supernova_plus/54585; https://x.com/Grimm_Intel/status/2070696336752619551; https://t.me/supernova_plus/54610; https://x.com/Noobieshunta_/status/2070753093331947703; https://x.com/TheDeadDistrict/status/2070709527649931691; https://x.com/Grimm_Intel/status/2070765881450270746; https://t.me/exilenova_plus/23877; https://x.com/Noobieshunta_/status/2070767385124941849; https://x.com/TheDeadDistrict/status/2070709527649931691; https://x.com/Grimm_Intel/status/2070682760126058674 ; https://t.me/DniproOfficial/7765; https://t.me/DniproOfficial/7766 +

+

+ [3] https://t.me/V_Zelenskiy_official/19649 ; https://x.com/ZelenskyyUa/status/2070774431652147547 ; https://suspilne dot media/1341308-zelenskij-pidtverdiv-urazenna-raketami-flamingo-rosijskogo-pidpriemstva-titan-barikadi-u-volgogradi/ +

+

+ [4] https://meduza dot io/news/2026/06/27/ukraina-nanesla-raketnyy-udar-po-zavodu-v-volgograde-gde-proizvodyat-kompleksy-oreshnik; https://t.me/sotaproject/115063 +

+

+ [5] https://t.me/milinfolive/175028 +

+

+ [6] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-1-2025/; https://en.defence-ua dot com/analysis/russia_can_keep_no_more_than_four_a_50u_awacs_aircraft_flying_that_matters_for_future_gripen_operations_in_ukraine-18697.html +

+

+ [7] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_15-10/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_94/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_29-9/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment_27-21/ +

+

+ [8] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-september-1-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-november-13-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-february-5-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-february-12-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-february-21-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-march-28-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-5-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-10-2026/ +

+

+ [9] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-10-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-5-2026/ +

+

+ [10] https://armyinform dot com.ua/2026/06/27/urazheno-naftoperekachuvalnu-stancziyu-vtorovo-yaka-zabezpechuye-palnym-moskvu/; https://t.me/SBUkr/17940 +

+

+ [11] https://firms.modaps.eosdis.nasa.gov/map/#d:24hrs;@40.892,56.199,12.315z +

+

+ [12] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-29-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-13-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-template-020426/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-25-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-6-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-18-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-10-2026/ +

+

+ [13] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-25-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-23-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-19-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/ +

+

+ [14] https://www.reuters.com/business/energy/us-quietly-allows-waiver-russian-oil-expire-2026-06-17/ +

+

+ [15] https://newsukraine dot rbc.ua/news/us-resumes-sanctions-against-russian-oil-1782485691.html; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-april-18-2026/ +

+

+ [16] https://www.reuters.com/business/energy/us-quietly-allows-waiver-russian-oil-expire-2026-06-17/ +

+

+ [17] https://t.me/serhii_flash/7521; https://www.facebook.com/Serhii.Flash/posts/pfbid02KsRPczco5SBZbAdT7s7PS7cM2GDzJpe4PkgmYK9H5MBWQvrDebXUDMTmkUyecTG5l?__cft__[0]=AZaQhM72JKwcGXPFuJngHfzlYVozBnNAeFJdohbou2RR-N5vNjZsWOpE7RTRScYlvETugiVwYIRGwrRBS3Cz9V0HLVm1RKVg5gQ0V8yX_bU6d_B8XoqW1Va6L5JJ_fVPKPIw_FyVpIFTVgjFLB_hinsJY1cymJ8BB15-0ZzzQ5y9EKv3QwEKrjq9mzMW–qa8r0&__tn__=%2CO%2CP-R +

+

+ [18] https://x.com/MikiValbuena/status/2070524587046002798 ; https://x.com/Exilenova_plus/status/2070519790318301361; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-25-2026/ +

+

+ [19] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/dva_majors/95222; https://t.me/wargonzo/35107; https://t.me/severnnyi/8520 +

+

+ [20] https://t.me/GeneralStaffZSU/40479 ; https://t.me/GeneralStaffZSU/40465 ; https://t.me/GeneralStaffZSU/40453 ; https://t.me/severnnyi/8520 ; https://t.me/wargonzo/35107 ; https://t.me/dva_majors/95222 https://t.me/severnnyi/8525 ; https://t.me/grvZapad/18971 +

+

+ [21] https://t.me/dva_majors/95222 +

+

+ [22] https://t.me/GeneralStaffZSU/40472 +

+

+ [23] https://t.me/kharkivnapriamok/3134 ; https://x.com/99Dominik_/status/2070838730131177681?s=20 +

+

+ [24] https://t.me/severnnyi/8523 +

+

+ [25] https://t.me/GeneralStaffZSU/40479 +

+

+ [26] https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/DnevnikDesantnika/44703; https://t.me/dva_majors/95222;   https://t.me/wargonzo/35107; https://t.me/grvZapad/18974 +

+

+ [27] https://t.me/DnevnikDesantnika/44703 +

+

+ [28] https://t.me/GeneralStaffZSU/40472 +

+

+ [29] https://t.me/creamy_caprice/12301; https://t.me/Secrets_of_Vinakos/15703 +

+

+ [30] https://x.com/aroslav24470/status/2070601003888435638; https://t.me/robert_magyar/2525 +

+

+ [31] https://t.me/grvZapad/18975 +

+

+ [32] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/tass_agency/382603; https://t.me/dva_majors/95222; https://t.me/wargonzo/35107 +

+

+ [33] https://www.facebook.com/Vadymlyakh/posts/pfbid02WUGqNn8qxYSrYsjHgsRzXP2PyW88wRBwjGPoqJwuPHYBywkYBH32bxfFPY3FeSEXl; https://suspilne dot media/donbas/1341240-u-slovansku-poranena-zinka-cerez-rosijskij-udar-iz-rszv/ +

+

+ [34] https://t.me/Osintpen/3024; https://t.me/The_Wrong_Side/29645 +

+

+ [35] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453; https://t.me/mod_russia/65011; https://t.me/wargonzo/35107 ; https://t.me/mod_russia/65016 +

+

+ [36] https://t.me/GeneralStaffZSU/40479 ; https://t.me/GeneralStaffZSU/40465 ; https://t.me/GeneralStaffZSU/40453 ; https://t.me/wargonzo/35107 +

+

+ [37] https://suspilne dot media/donbas/1341376-rosijska-armia-zakripilasa-v-pokrovsku-ta-nakopicue-dronariv-oficer-7-korpusu-dsv/ +

+

+ [38] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-10-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-11-2025/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-5-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-6-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-7-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-10-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/ +

+

+ [39] https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40453 +

+

+ [40] https://t.me/mod_russia/65013 ; https://t.me/mod_russia/65012 +

+

+ [41] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/ +

+

+ [42] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-16-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-11-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-10-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-11-2025/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-5-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-6-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-7-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-december-10-2025/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-15-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-17-2026/; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/ +

+

+ [43] https://t.me/si4eslavskabrygada/2432; https://armyinform dot com.ua/2026/06/27/grad-ta-desyatok-garmat-hornety-vypalyuyut-ne-tilky-logistyku-voroga/ +

+

+ [44] https://x.com/neonhandrail/status/2070502867333796202 ; https://x.com/neonhandrail/status/2070506342755008690 ; https://x.com/neonhandrail/status/2070529276944998714 ; https://x.com/WarLifeFootage/status/2070451660741025888; https://x.com/neonhandrail/status/2070748218372321771?s=20; +

+

+ [45] https://x.com/neonhandrail/status/2070755487344386405?s=20; https://x.com/neonhandrail/status/2070755487344386405?s=20; https://t.me/pilum_41regiment/47 +

+

+ [46] https://armyinform dot com.ua/2026/06/27/pryjshov-pomahav-a-pity-vzhe-ne-zmozhe-voyiny-61-brygady-likviduvaly-flagovtykiv-u-gulyajpilskomu/; https://t.me/stepova_61/2074 +

+

+ [47] https://t.me/voin_dv/19972 +

+

+ [48] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-22-2026/ +

+

+ [49] https://t.me/wargonzo/35107; https://t.me/GeneralStaffZSU/40465; https://t.me/GeneralStaffZSU/40479; https://t.me/GeneralStaffZSU/40453; +

+

+ [50] https://t.me/GeneralStaffZSU/40472 +

+

+ [51] https://x.com/99Dominik_/status/2070849582750224894?s=20; https://t.me/luftwaffe422/1005; https://x.com/99Dominik_/status/2070849394606211138 +

+

+ [52] https://x.com/aroslav24470/status/2070605180500885675; https://t.me/robert_magyar/2525; https://x.com/aroslav24470/status/2070607019409547266 +

+

+ [53] https://x.com/blinzka/status/2070828691240673513?s=20; https://x.com/GeoConfirmed/status/2070845519052546418?s=20; https://x.com/bayraktar_1love/status/2070809694579392917?s=20 ; https://t.me/ssternenko/59969; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-26-2026/; https://militarnyi dot com/uk/news/syly-oborony-mist-na-zaporizhzhi/ +

+

+ [54] Warning: graphic content
+ https://x.com/aroslav24470/status/2070598135643062762; https://t.me/robert_magyar/2525; https://x.com/99Dominik_/status/2070527535415218655; https://t.me/exilenova_plus/23702; https://x.com/front_ukrainian/status/2070525402783597042 +

+

+ [55] https://t.me/ukrainian_navy/21068; https://t.me/WarArchive_ua/36792; https://x.com/ua_navy/status/2070726201946132767 ; https://militarnyi dot com/uk/news/vms-ukrayiny-znyshhyly-rosijskyj-logistychnyj-kater-bilya-tendrivskoyi-kosy/V +

+

+ [56] https://t.me/GeneralStaffZSU/40472 +

+

+ [57] https://x.com/HpwWJVafCv83954/status/2070717313448575033; https://x.com/HpwWJVafCv83954/status/2070567791216992710 +

+

+ [58] https://t.me/VoronkinV/295 ; https://suspilne dot media/crimea/1341382-do-5-godin-bez-svitla-okupacijna-vlada-krimu-ne-zmogla-vidnoviti-elektropostacanna/ +

+

+ [59] https://crimea.ria dot ru/20260627/situatsiya-s-energosnabzheniem-v-krymu–aktualnaya-informatsiya-1157208156.html +

+

+ [60] https://t.me/kpszsu/66555 +

+

+ [61] https://suspilne dot media/chernihiv/1341262-zrujnovanij-ambar-ta-poskodzeni-magazin-i-primisenna-pidpriemstva-rf-molniami-atakuvala-novgorod-siverskij-rajon/; https://www.facebook.com/permalink.php?story_fbid=pfbid02TEDNBnUwJp9jUodCNUB5EYRwistUCqV6p1MwURkYSNr91LcgK2UwfHPamnx2JPqLl&id=61579137283645; https://suspilne dot media/chernihiv/1341236-poskodzeni-vantazivki-vijska-rf-bezpilotnikami-atakuvali-gorodnu/; https://www.facebook.com/policechernigivshchini/posts/pfbid02FiipV5YR7T7aBAkfdK932SpLEYLrnRtiVuTJgvuwCp3m9oQToJGR1icjKD1TqaLZl?locale=uk_UAv; https://t.me/dnipropetrovskaODA/30429; https://t.me/mykola_lukashuk/27286; https://suspilne dot media/dnipro/1341214-vijska-rf-ponad-30-raziv-atakuvali-dnipropetrovsinu-bpla-ta-aviabombami-e-zagibla-ta-poraneni/; https://suspilne dot media/kharkiv/1341292-na-svitanku-rf-atakuvala-selo-u-novovodolazkij-gromadi-cetvero-ludej-poraneni/; https://t.me/Sumy_news_ODA/43666 ; https://suspilne dot media/sumy/1341250-vnoci-armia-rf-zavdala-masovanogo-udaru-po-ohtirskomu-rajonu-so-vidomo/; https://suspilne dot media/sumy/1341540-poskodzeni-azs-vosmero-travmovanih-so-vidomo-pro-nicnu-ataku-rf-na-ohtirku/; https://t.me/ivan_fedorov_zp/42779; https://t.me/zoda_gov_ua/63162 ; https://t.me/zoda_gov_ua/63174; https://t.me/zoda_gov_ua/63176 ; https://t.me/astrapress/116852 ; https://t.me/astrapress/116866 +

+

+ [62] https://t.me/hryhorov_oleg/2717; https://t.me/astrapress/116909 ; https://armyinform dot com.ua/2026/06/27/vorog-atakuvav-sumsku-gromadu-troma-reaktyvnymy-bpla-ye-poraneni-poshkodzheno-infrastrukturu/; https://t.me/dsns_telegram/67053; https://t.me/kobzarartemsn/5765; https://t.me/dsns_telegram/67053; https://meduza dot io/news/2026/06/27/rossiya-udarila-po-sumam-raneny-devyat-chelovek-v-tom-chisle-dva-mladentsa +

+

+ [63] https://t.me/dsns_telegram/67035; https://t.me/astrapress/116889 +

+

+ [64] https://www.facebook.com/watch/?v=1319467239789342; https://suspilne dot media/kharkiv/1341226-udari-droniv-po-azs-unoci-u-solonicivskij-gromadi-rf-atakuvala-dvi-zapravki/; https://t.me/synegubov/23239; https://suspilne dot media/kharkiv/1341276-vlucanna-v-avto-zaliznicnu-infrastrukturu-poraneni-ak-rosiani-bili-po-harkivsini-za-dobu/; https://t.me/Sumy_news_ODA/43666 ; https://suspilne dot media/sumy/1341250-vnoci-armia-rf-zavdala-masovanogo-udaru-po-ohtirskomu-rajonu-so-vidomo/; https://suspilne dot media/sumy/1341540-poskodzeni-azs-vosmero-travmovanih-so-vidomo-pro-nicnu-ataku-rf-na-ohtirku/; https://t.me/ivan_fedorov_zp/42779; https://t.me/zoda_gov_ua/63162 ; https://t.me/zoda_gov_ua/63174; https://t.me/zoda_gov_ua/63176 ; https://t.me/astrapress/116852 ; https://t.me/astrapress/116866 +

+

+ [65] https://www.facebook.com/share/p/1DydNzGME2/?mibextid=wwXIfr; https://suspilne dot media/poltava/1341340-armia-rf-atakuvala-obekti-naftogazu-na-poltavsini-so-vidomo/; https://suspilne dot media/kharkiv/1341530-rf-atakuvala-dvi-zapravki-v-dergacah-bezpilotnikami-poranena-vodijka-pracivnik-azs-mav-gostru-reakciu-na-stres/; https://t.me/prokuratura_kharkiv/29624 ; +

+

+ [66] https://t.me/mod_russia/65002 +

+

+ [67] https://t.me/milinfolive/174986; https://t.me/milinfolive/174996 +

+

+ [68] https://t.me/creamy_caprice/12310?single; https://t.me/creamy_caprice/12309; https://t.me/Osintpen/3026; https://t.me/rian_ru/341162; https://x.com/Varsevan/status/2070854738543874054; https://x.com/Varsevan/status/2070858313290383801; https://t.me/milinfolive/175032?single; https://x.com/dmitrij46839/status/2070837771514577235?s=20; https://x.com/MarcinRogowsk14/status/2070836335389143081; https://x.com/Zeldamices/status/2070852996095672802; https://x.com/clashreport/status/2070832829890531645 ; https://x.com/MarcinRogowsk14/status/2070876296817631282; https://x.com/Varsevan/status/2070860333694996904; https://t.me/rian_ru/341162 +

+

+ [69] https://t.me/mod_russia/65015 +

+

+ [70] https://thebell dot io/rossiya-rezko-uvelichila-import-aviakerosina-iz-belarusi-na-fone-defitsita ; https://meduza dot io/news/2026/06/26/rossiya-rezko-uvelichila-import-aviatsionnogo-kerosina-iz-belarusi +

+

+ [71] https://pro dot rbc.ru/demo/6a3e60879a7947a15c0665ae +

+

+ [72] https://thebell dot io/rossiya-rezko-uvelichila-import-aviakerosina-iz-belarusi-na-fone-defitsita +

+

+ [73] https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-may-28-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-2-2026/ +

+

+ [74] https://t.me/tass_agency/382679 ; https://belta dot by/society/view/rabochij-vizit-lukashenko-v-rossiju-prodolzhaetsja-ozhidaetsja-novyj-raund-peregovorov-s-putinym-788487-2026/ ; https://understandingwar.org/research/russia-ukraine/russian-offensive-campaign-assessment-june-26-2026/ +

+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+

+ Related +

+

+ Research +

+
+
+
+
+
+
+
+
+

+ Update +

+ +
+
+
+
+
+

+ Russia & Ukraine +

+

+ Ukraine +

+
+

+ Russian Offensive Campaign Assessment, July 24, 2026 +

+
+ +
+
+
+
+
+

+ Update +

+ +
+
+
+
+
+

+ Russia & Ukraine +

+

+ Ukraine +

+
+

+ Russian Offensive Campaign Assessment, July 23, 2026 +

+
+ +
+
+
+
+
+

+ Update +

+ +
+
+
+
+
+

+ Russia & Ukraine +

+

+ Ukraine +

+
+

+ Russian Offensive Campaign Assessment, July 22, 2026 +

+
+ +
+
+
+
+
+

+ Update +

+ +
+
+
+
+
+

+ Russia & Ukraine +

+

+ Ukraine +

+
+

+ Russian Offensive Campaign Assessment, July 21, 2026 +

+
+ +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +