Daria Novikov, Jessica Sobieski, Anna Harvey, Angelica Evans, George Barros, and Frederick W. Kagan
July 28, 2025, 7:00 pm ET
Click here
to see ISW’s interactive map of the Russian invasion of Ukraine. This
map is updated daily alongside the static maps present in this report.
Click here to see ISW's interactive map of Ukraine's offensive in Kursk Oblast.
Click here
to see ISW’s 3D control of terrain topographic map of Ukraine. Use of a
computer (not a mobile device) is strongly recommended for using this
data-heavy tool.
Click here
to access ISW’s archive of interactive time-lapse maps of the Russian
invasion of Ukraine. These maps complement the static control-of-terrain
map that ISW produces daily by showing a dynamic frontline. ISW will
update this time-lapse map archive monthly.
Note:
The data cut-off for this product was 12:45 pm ET on July 28. ISW will
cover subsequent reports in the July 29 Russian Offensive Campaign
Assessment.
US President Donald Trump
announced a new deadline for Russian President Vladimir Putin to
negotiate an end to Russia’s war against Ukraine no later than August 9.
Trump stated on July 28 that he is “very disappointed” with
Putin and will “reduce” his previously articulated 50-day deadline by
which Putin must agree to peace negotiations.[1]
Trump stated that he will make a new deadline of roughly “10 to 12 days
from today [July 28]" as Putin’s ongoing disinterest in peace
negotiations leaves “no reason” for the United States to delay its
response.[2]
Trump insinuated that he will more formally announce the new deadline
on the evening of July 28 or on July 29. Trump's new deadline would
expire between August 7 and 9. Trump previously stated on July 14 that
Putin had 50 days (September 2) to conclude a peace agreement with
Ukraine or face "severe” 100 percent secondary tariffs on its trade
partners.[3]
Kremlin
officials continue to frame Russia as in direct geopolitical
confrontation with the West in order to generate domestic support for
the war in Ukraine and future Russian aggression against NATO. Russian
Foreign Minister Sergei Lavrov claimed at a Russian youth forum on July
28 that “Russia is fighting alone against the entire West... for the
first time in history” and that Russia “must rely on [itself].”[4]
Lavrov claimed that Russia has "no allies on the battlefield," unlike
during the first and second World Wars. Lavrov’s claim that Russia is
operating alone in its war in Ukraine ignores the current support that
Russia receives from North Korea, Iran, and the People's Republic of
China (PRC). North Korea has sent ballistic missiles, artillery shells,
and North Korean troops to support Russia's war effort against Ukraine,
and there are economic and political signs of a growing rapprochement
between Russia and North Korea.[5]
Iranian Shahed drones have played a key role in Russia‘s air campaigns
against Ukrainian cities throughout the war, and Iran's assistance has
allowed Russia to become self-sufficient in producing the
Shahed-variants that Russian forces are increasingly leveraging in
frontline strikes.[6]
Russia largely depends on the PRC for support in Russia's ongoing
sanctions evasion schemes, and Chinese companies provide critical
dual-use components and microelectronics for Russian military
technology.[7]
Strengthening relationships between Russia, Iran, North Korea, and the
PRC constitute a growing threat to Western security, and Russia is
actively pursuing a global anti-Western alliance. Lavrov's statements
also underscore the Kremlin's efforts to install an informal state
ideology that perpetuates the idea that the West is in an existential
conflict with Russia in order to foster unquestioning support of the
Russian government.[8]
Lavrov
additionally claimed that Russia had “no alternative” to launching its
war in Ukraine as Russia needed to protect Russian-language speakers in
Ukraine, a routine narrative that Russian officials use to justify
Russian aggression against Ukraine.[9]
Lavrov claimed that Russia must insist on its “legitimate” demand: “no
drawing Ukraine into NATO, no expansion of NATO at all," and recognition
of Russia's illegal annexation of Luhansk, Donetsk, Zaporizhia, and
Kherson oblasts and Crimea. Lavrov's statements reinforce the Kremlin's
commitment to its war goals in Ukraine to the Russian public, and
specifically Russian youth. The Kremlin has devoted a significant amount
of time and energy to generating domestic support for the war, and
Russian state and independent polling suggest that most Russians support
continuing the war in Ukraine until Russia achieves its war aims of
Ukrainian "denazification," demilitarization, and neutrality.[10]
Russian society's commitment to achieving Russia's war aims, which the
Kremlin has worked hard to foster, will make it much harder for Russian
President Vladimir Putin to present any peace agreement that falls far
short of his stated aims as a victory to his domestic audience. Putin is
unlikely to make any concessions in his war aims unless he is forced to
do so by significant Ukrainian battlefield victories, as any negotiated
end to the war that does not achieve all of Putin's objectives would
call into question the success, and, potentially, wisdom of Russia's
military campaign in Ukraine.
Key Takeaways:
- US President Donald Trump announced a new deadline for Russian President Vladimir Putin to negotiate an end to Russia’s war against Ukraine no later than August 9.
- Kremlin officials continue to frame Russia as in direct geopolitical confrontation with the West in order to generate domestic support for the war in Ukraine and future Russian aggression against NATO.
- Russian forces recently advanced in the Lyman, Toretsk, Novopavlivka, and Velyka Novosilka directions.
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
- Russian Supporting Effort – Northern Axis
- Russian Main Effort – Eastern Ukraine (comprised of three subordinate main efforts)
- Russian Subordinate Main Effort #1 – Push Ukrainian forces back from the international border with Belgorod Oblast and approach to within tube artillery range of Kharkiv City
- Russian Subordinate Main Effort #2 – Capture the remainder of Luhansk Oblast and push westward into eastern Kharkiv Oblast and encircle northern Donetsk Oblast
- Russian Subordinate Main Effort #3 – Capture the entirety of Donetsk Oblast, the claimed territory of Russia’s proxies in Donbas, and possibly advance into Dnipropetrovsk Oblast
- Russian Supporting Effort – Southern Axis
- Russian Air, Missile, and Drone Campaign
- Significant Activity in Belarus
Ukrainian Operations in the Russian Federation
Russian forces continued limited attacks in unspecified areas of Kursk Oblast on July 27 and 28.[11]
Russian Supporting Effort – Northern Axis
(Russian objective: Create defensible buffer zones in northern Ukraine
along the international border and approach to within tube artillery
range of Sumy City)
Fighting continued in northern Sumy Oblast on July 28.
Unconfirmed
claims: A Russian milblogger claimed that Ukrainian forces advanced
near Varachyne (northeast of Sumy City) and pushed back elements of the
Russian 1443rd Motorized Rifle Regiment (reportedly of the 18th
Motorized Rifle Division, 11th Army Corps [AC], Leningrad Military
District [LMD]) from unspecified recently Russian-seized positions.[12] Another milblogger claimed that Russian forces advanced north of Kindrativka (north of Sumy City).[13]
Russian forces conducted limited attacks in unspecified areas of northern Sumy Oblast on July 27 and 29.[14]
Russian milbloggers claimed that Ukrainian forces counterattacked
northeast of Sumy City near Yunakivka and north of Sumy City near
Andriivka and Oleksiivka.[15]
A milblogger claimed that Ukrainian forces are using drones to prevent
elements of the Russian 177th Naval Infantry Regiment (Caspian Flotilla)
from crossing the international border into Sumy Oblast.[16]
The
spokesperson of a Ukrainian border guard detachment operating in Sumy
Oblast stated that Russian forces are leveraging two separate offensive
tactics in northern Sumy Oblast.[17]
The spokesperson stated that Russian forces are mainly shelling the
international border between Ukraine and Russia and that Russian forces
near Khotin (north of Sumy City) and Yunakivka are also assaulting the
settlements in small infantry groups of three to five personnel without
mechanized vehicles The spokesperson also stated that Russian forces
conducted over 30 guided glide bomb strikes against Ukrainian positions
in Sumy Oblast from July 27 to 28.
A Russian milblogger
claimed that Russian forces struck Ukrainian positions in Lyzunivka and
Zinovo (both northwest of Sumy City) using Geran-2 drones and also
struck Ukrainian positions in Zhadove, Chernihiv Oblast, using a Lancet
drone.[18]
Another milblogger claimed that Ukrainian forces are targeting
communications of the Russian 76th Airborne (VDV) Division near
Yunakivka.[19]
Order of battle: Drone operators of the Russian 106th VDV Division are reportedly striking Ukrainian positions in Sumy Oblast.[20] Elements of the 83rd Separate VDV Brigade are reportedly operating near Yablunivka (northeast of Sumy City).[21] Elements of the 51st VDV Regiment (106th VDV Division) are reportedly operating near Sadky (northeast of Sumy City).[22]
Elements of the 9th Motorized Rifle Regiment (18th Motorized Rifle
Division, 11th AC, LMD) are reportedly operating in Kostyantynivka
(north of Sumy City).[23]
Russian Main Effort – Eastern Ukraine
Russian Subordinate Main Effort #1 – Kharkiv Oblast (Russian objective: Push Ukrainian forces back from the international border with Belgorod Oblast and approach to within tube artillery range of Kharkiv City)
Russian forces conducted offensive operations in northern Kharkiv Oblast on July 28 but did not make confirmed advances.
Unconfirmed claims: A Russian milblogger claimed that Russian forces advanced east of Vovchansk (northeast of Kharkiv City).[24]
Russian forces attacked northeast of Kharkiv City near Zelene and Vovchansk on July 27 and 28.[25]
Order
of battle: Drone operators of the Russian Chechen Zapad-Akhmat
Battalion are reportedly striking Ukrainian positions near Vovchansk.[26]
Russian forces conducted offensive operations in the Velykyi Burluk direction on July 28 but did not make confirmed advances.
Unconfirmed
claims: Russian milbloggers claimed that Russian forces advanced north
and southeast of Khatnie and southeast of Zarubynka (both northeast of
Velykyi Burluk).[27]
Russian forces attacked northeast of Velykyi Burluk near Milove on July 28.[28] A Russian milblogger claimed that Ukrainian forces counterattacked south of Chuhnivka (northeast of Velykyi Burluk).[29]
Russian Subordinate Main Effort #2 – Luhansk Oblast (Russian objective: Capture the remainder of Luhansk Oblast and push westward into eastern Kharkiv Oblast and northern Donetsk Oblast)
Russian forces continued offensive operations in the Kupyansk direction on July 28 but did not make confirmed advances.
Unconfirmed claims: A Russian milblogger claimed that Russian forces advanced east of Kupyansk.[30]
Russian
forces attacked near Kupyansk itself; northeast of Kupyansk near Krasne
Pershe and Fyholivka and toward Petro-Ivanivka; north of Kupyansk near
Radkivka, Zapadne, Kindrashivka, and Holubivka; northwest of Kupyansk
near Myrne and Sobolivka; east of Kupyansk near Petropavlivka; and
southeast of Kupyansk near Stepova Novoselivka on July 27 and 28.[31]
A
Ukrainian reserve officer stated on July 28 that Russian forces
recently changed tactics in the Kupyansk direction after failing to
advance from Radkivka and are now attempting to flank Kupyansk from the
west.[32]
Russian forces continued offensive operations in the Borova direction on July 28 but did not advance.
Russian
forces attacked northeast of Borova near Bohuslavka and Zahryzove and
southeast of Borova near Novoyehorivka and Hrekivka on July 27 and 28.[33
Russian forces recently advanced in the Lyman direction.
Assessed Russian advances: Geolocated footage published on July 28 indicates that Russian forces recently advanced northwest of Zelena Dolyna (north of Lyman).[34] Russian forces may be attempting to advance to and ford the Oskil River to establish cross-river positions for future assaults.
Unconfirmed
claims: A Russian milblogger claimed that Russian forces advanced west
of Zelena Dolyna and to central Ridkodub (north of Lyman).[35]
Russian
forces attacked northwest of Lyman near Karpivka and toward Serednie
and Shandryholove; north of Lyman near Zelena Dolyna; northeast of Lyman
near Yampolivka and Myrne; and southeast of Lyman in the Serebryanske
forest area on July 27 and 28.[36]
Order
of Battle: Drone operators of the Russian 16th Spetsnaz Brigade
(Russian General Staff's Main Directorate [GRU]) are reportedly striking
Ukrainian positions in the Serebryanske forest area.[37]
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 possibly advance into Dnipropetrovsk Oblast)
Russian forces continued offensive operations in the Siversk direction on July 28 but did not make confirmed advances.
Unconfirmed
claims: Russian milbloggers claimed that Russian forces seized the
"Ugolek" Camp near Lake Chernikhove (northwest of Siversk) and advanced
northwest of Ivano-Darivka (southwest of Siversk).[38]
Russian
forces attacked toward Siversk itself, northeast of Siversk near
Hryhorivka and Serebryanka and toward Dronivka, east of Siversk near
Verkhnokamyanske, and southeast of Siversk toward Vyimka on July 27 and
28.[39]
A
Kremlin-affiliated milblogger claimed that the initial footage of a
large-scale Russian mechanized assault near Siversk on July 27 shows
mechanized assault tactics that are reminiscent of previous assaults
attempted by the now-removed Russian military command of unspecified
units operating in the Siversk direction, but that Russian military
command ultimately acted in the best interest of Russian personnel,
unlike under previous leadership.[40]
Russian authorities arrested the commander of the 3rd Combined Arms
Army (CAA), which mainly operates in the Siversk direction, in November
2024 for exaggerating Russian advances in the area.[41]
The milblogger stated that Russian forces deployed three to four
unmanned aerial vehicles (UAVs) to provide fire cover for each armored
vehicle, as well as rocket artillery and munitions. The milblogger
claimed that the armored column did not storm Siversk, instead
retreating to save Russian personnel, and only two tank crews broke
through and approached the outskirts of Siversk. The milblogger claimed
that Russian forces launched two additional columns of armored vehicles
but one withdrew before Ukrainian forces began striking and the other
dispersed to avoid strikes. The milblogger credited improvements in
Russian positions in the Siversk direction to the Russian military
command's concern with manpower conservation.
Russian forces continued offensive operations in the Chasiv Yar direction on July 28 but did not make confirmed advances.
Unconfirmed
claims: Russian milbloggers claimed on July 28 that Russian forces
seized heights near Bila Hora (south of Chasiv Yar), and advanced
southwest of Chasiv Yar.[42]
Russian
forces attacked in Chasiv Yar itself; east of Chasiv Yar near
Ivanivske; southeast of Chasiv Yar near Klishchiivka; and south of
Chasiv Yar near Stupochky, Bila Hora, and Predtechyne on July 27 and 28.[43]
Order
of Battle: Elements of the Russian 103rd Motorized Rifle Regiment and
the 68th Tank Regiment (both of the 150th Motorized Rifle Division, 8th
Combined Arms Army [CAA], Southern Military District [SMD]), as well as
elements of the 20th Motorized Rifle Regiment (possibly a reformed
Soviet unit) and drone operators of the Rubikon Center for Advanced
Unmanned Technologies are reportedly operating in the Kostyantynivka
(Chasiv Yar) direction.[44]
Russian forces recently advanced in the Toretsk direction.
Assessed
Russian advances: Geolocated footage published on July 27 indicates
that Russian forces recently advanced marginally west of Poltavka
(northwest of Toretsk).[45]
Unconfirmed
claims: Russian milbloggers claimed that Russian forces advanced
northeast of Shcherbynivka (west of Toretsk), east of
Oleksandro-Kalynove (northwest of Toretsk), and northwest of Popiv Yar
(northwest of Toretsk).[46]
Russian
forces attacked in Toretsk itself; north of Toretsk near Dyliivka;
northwest of Toretsk near Yablunivka, Rusyn Yar, Poltavka, Novoolenivka,
Popiv Yar, and Oleksandro-Kalynove; southwest of Toretsk near Zorya;
and west of Toretsk near Shcherbynivka on July 27 and 28.[47]
A Russian milblogger claimed that Ukrainian forces counterattacked in
western and northern Volodymyrivka (northwest of Toretsk).[48]
Order
of Battle: Drone operators of the Russian BARS-13 Pisarev Detachment
(Russian Combat Army Reserve) are reportedly striking Ukrainian
positions near Dyliivka.[49]
Russian forces continued offensive operations in the Pokrovsk direction on July 28 but did not make confirmed advances.
Unconfirmed
claims: Russian sources reiterated claims that Russian sabotage and
reconnaissance groups are operating in Pokrovsk and Myrnohrad (east of
Pokrovsk) and that Russian forces advanced into Rodynske (north of
Pokrovsk).[50]
The Russian Ministry of Defense (MoD) claimed that Russian forces
seized Boikivka (northeast of Pokrovsk) and advanced north of Shevchenko
(south of Pokrovsk).[51]
Russian milbloggers claimed that Russian forces advanced east of
Volodymyrivka and Nykanorivka and southwest of Novoekonomichne (all
northeast of Pokrovsk) and north of Udachne (southwest of Pokrovsk).[52]
Russian
forces attacked near Pokrovsk itself; north of Pokrovsk near Rodynske
and toward Bilytske; northeast of Pokrovsk near Mayak, Razine,
Volodymyrivka, Myrolyubivka, Zapovidne, and Novoekonomichne; east of
Pokrovsk near Myrnohrad; southeast of Pokrovsk near Lysivka; south of
Pokrovsk near Chunyshyne, Dachenske, Vidrozdennya, and Novoukrainka; and
southwest of Pokrovsk near Pishchane, Zvirove, Kotlyne, and Udachne on
July 27 and 28.[53]
The
spokesperson of a Ukrainian brigade operating southwest of Pokrovsk
stated that Russian assaults are currently less intense in the brigade's
area of responsibility (AoR) compared to fighting during late May 2025.[54]
Order
of Battle: Ukrainian military observer Kostyantyn Mashovets stated on
July 28 that elements of the Russian 41st CAA (Central Military District
[CMD]) and 51st CAA (formerly 1st Donetsk People's Republic Army Corps
[DNR AC], SMD) recently intensified assaults northeast of Pokrovsk and
that elements of the 2nd CAA (CMD) are attacking Pokrovsk from the
south.[55]
Mashovets stated that elements of the 5th Motorized Rifle Brigade (51st
CAA) and 60th Motorized Rifle Brigade (5th CAA, Eastern Military
District [EMD]) recently seized Myrolyubivka and Novoekonomichne and are
attacking toward Myrnohrad.[56]
ISW has not previously observed elements of the 60th Motorized Rifle
Brigade operating in the Pokrovsk direction, and ISW last observed
elements of the brigade operating in the Velyka Novosilka and Kursk
directions in January and February 2025.[57]
The Russian military command likely recently redeployed elements of the
brigade to the Pokrovsk direction from either the Velyka Novosilka or
Kursk direction. Mashovets stated that elements of the 51st CAA's 132nd
and 110th motorized rifle brigades are attacking toward Dobropillya
(north of Pokrovsk) and that elements of the 1441st and 1435th motorized
rifle regiments (both likely comprised of personnel who were enlisted
during Russia's 2022 partial reserve call up) recently seized Zvirove.
Mashovets estimated that the Russian military command has concentrated
110,000–112,000 troops in the Pokrovsk direction to envelop Pokrovsk and
Myrnohrad.[58]
Drone operators of the Vega Spetsnaz Detachment and elements of the
255th Motorized Rifle Regiment (20th Motorized Rifle Division, 8th CAA,
SMD) are reportedly operating in the Pokrovsk direction.[59]
Russian forces recently advanced in the Novopavlivka direction.
Assessed
Russian advances: Geolocated footage published on July 25 indicates
that Russian forces recently advanced west of Horikhove (southeast of
Novopavlivka).[60]
Unconfirmed
claims: A Russian milblogger claimed that Russian forces advanced west
of Zelenyi Hai toward Ivanivka, Dnipropetrovsk Oblast (both southwest of
Novopavlivka).[61]
Russian
forces attacked near Novopavlivka itself; northeast of Novopavlivka
near Novomykolaivka and Novoserhiivka; southeast of Novopavlivka near
Horikhove, Bohdanivka, Troitske, Zelenyi Kut, Oleksiivka, and Dachne,
Dnipropetrovsk Oblast; south of Novopavlivka near Filiya; and southwest
of Novopavlivka near Piddubne, Myrne, Tovste, Zelenyi Hai,
Oleksandrohrad, and Voskresenka and toward Andriivka-Klevtsove and
Sichneve on July 27 and 28.[62] A Russian milblogger claimed that Ukrainian forces are counterattacking near Andriivka-Klevtsove.[63]
The
spokesperson of a Ukrainian brigade operating in the Novopavlivka
direction reported that Russian forces are struggling to advance near
Horikhove.[64]
Order
of Battle: Mashovets stated that elements of the Russian 114th
Motorized Rifle Brigade (51st CAA) reinforced by elements of the 80th
Tank Regiment (90th Tank Division, 41st CAA) are advancing north of
Oleksiivka toward Dachne, but that elements of the 90th Tank Division
are struggling to advance west of Kotlyarivka (east of Novopavlivka).[65]
Elements of the Russian 56th Separate Spetsnaz Battalion of the 51st
CAA are reportedly operating in the Novopavlivka direction, and drone
operators of the 14th Spetsnaz Brigade (Russian General Staff's Main
Directorate [GRU]) struck Ukrainian positions near Sichneve.[66]
Russian forces recently advanced in the Velyka Novosilka direction.
Assessed
Russian advances: Geolocated footage published on July 28 indicates
that Russian forces recently advanced northwest of Novosilka (west of
Velyka Novosilka).[67]
Unconfirmed
claims: A Russian milblogger claimed that Russian forces advanced west
of Maliivka toward Vorone, Dnipropetrovsk Oblast (both northwest of
Velyka Novosilka).[68]
Russian
forces attacked northwest of Velyka Novosilka near Shevchenko and
toward Komyshuvakha, and west of Velyka Novosilka near Zelene Pole and
Novosilka and toward Temyrivka, Zaporizhia Oblast, and southwest of
Velyka Novosilka near Novodarivka on July 27 and 28.[69]
Order
of Battle: Drone operators of the Russian 77th Separate Reconnaissance
Battalion of the 127th Motorized Rifle Division (5th CAA) are reportedly
striking Ukrainian forces near Komyshuvakha.[70]
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)
Neither Ukrainian nor Russian sources reported ground activity in the Hulyaipole direction on July 28.
Ukraine's
Southern Operational Command reported that Russian forces are not
currently conducting ground assaults in the Hulyaipole and Orikhiv
directions in order to regroup, conduct reconnaissance, and prepare
logistics for a resumption of assaults.[71]
Russian forces continued offensive operations in western Zaporizhia Oblast on July 28 but did not advance.
Russian forces attacked west of Orikhiv near Kamyanske, Plavni, and Stepnohirsk on July 28.[72] A Russian milblogger claimed on July 27 that Ukrainian forces counterattacked in Stepnohirsk.[73]
A
Russian milblogger claimed on July 28 that Russian forces struck
Zaporizhzhia City using FAB glide bombs equipped with unified gliding
and correction modules (UMPCs).[74]
Another milblogger claimed that Ukrainian drone activity in western
Zaporizhia Oblast is complicating Russian attempts to advance near
Stepnohirsk.[75]
Order of Battle: Elements of the Russian 7th Airborne (VDV) Division are reportedly operating near Plavni.[76]
Russian forces continued limited assaults in unspecified areas of the Kherson direction on July 27 and 28 but did not advance.[77]
A
Russian milblogger claimed on July 28 that Ukrainian and Russian forces
are operating in the Dnipro River floodplain and are attacking across
the river in order to seize islands.[78]
Order
of Battle: Elements of the Russian 104th VDV Regiment (76th VDV
Division) are reportedly operating near Krynky (northeast of Kherson
City), and elements of the 61st Naval Infantry Brigade (Northern Fleet)
are reportedly operating in the Kherson direction.[79]
Russian Air, Missile, and Drone Campaign (Russian Objective: Target Ukrainian military and civilian infrastructure in the rear and on the frontline)
Russian
forces conducted a series of drone strikes against Ukraine on the night
of July 27 to 28. The Ukrainian Air Force reported that Russian forces
launched four Kh-101 cruise missiles from the airspace over Saratov
Oblast, three Kh-47 Kinzhal aeroballistic missiles from the airspace
over Lipetsk Oblast, and 324 Shahed and decoy drones from the directions
of Kursk and Bryansk cities; Millerovo, Rostov Oblast; Shatalovo,
Smolensk Oblast; and Primorsko-Akhtarsk, Krasnodar Krai.[80]
The Ukrainian Air Force reported that Ukrainian forces downed two
Kh-101 missiles and that the three Kh-47 Kinzhal missiles did not reach
their targets. The Ukrainian Air Force reported that Ukrainian air
defenses downed 309 drones, and that Russian forces struck in 3
locations and drone debris fell in several places. The Ukrainian Air
Force reported that Russian forces primarily targeted Starokostyantyniv,
Khmelnytskyi Oblast. Ukrainian officials reported that the strikes
injured eight people in Kyiv City and hit targets, including civilian
and residential infrastructure, in Kharkiv Oblast; Kropyvnytskyi,
Kirovohrad Oblast; Kyiv City; and Mykolaiv Oblast.[81]
Significant activity in Belarus (Russian efforts to increase its military presence in Belarus and further integrate Belarus into Russian-favorable frameworks)
Nothing significant to report.
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.
[1] https://rollcall.com/factbase/trump/transcript/donald-trump-remarks-welcome-keir-starmer-united-kingdom-july-28-2025/
[2] https://rollcall.com/factbase/trump/transcript/donald-trump-remarks-bilat-starmer-united-kingdom-july-28-2025/
[3] https://isw.pub/UkrWar071425
[4] https://www.rbc dot ru/politics/28/07/2025/688746759a794772781fef2a; https://tass dot ru/politika/24645141
[5] https://isw.pub/UkrWar050925; https://isw.pub/UkrWar043025; https://isw.pub/UkrWar042825; https://isw.pub/UkrWar020625; https://isw.pub/UkrWar122624; https://isw.pub/UkrWar022725; https://isw.pub/UkrWar030125; https://isw.pub/UkrWar041625; https://isw.pub/UkrWar020925; https://isw.pub/UkrWar061725; https://isw.pub/UkrWar032125; https://isw.pub/UkrWar022825; https://isw.pub/UkrWar020825; https://isw.pub/UkrWar061025; https://isw.pub/UkrWar052525
[6] https://isw.pub/UkrWar051025 ; https://isw.pub/UkrWar042225; https://isw.pub/UkrWar062725; https://isw.pub/UkrWar070825; https://isw.pub/UkrWar062125; https://isw.pub/UkrWar112924; https://isw.pub/UkrWar101124; https://isw.pub/UkrWar092524; https://isw.pub/UkrWar090624; https://isw.pub/UkrWar072724; https://isw.pub/UkrWar052824; https://isw.pub/UkrWar050824; https://isw.pub/UkrWar040224; https://isw.pub/UkrWar123123; https://isw.pub/UkrWar113023; https://isw.pub/UkrWar072523; https://isw.pub/UkrWar050423; https://isw.pub/UkrWar12312022; http://isw.pub/RusCampaignAugust5; https://isw.pub/RusCampaignSept29
[7] https://isw.pub/UkrWar050825 https://isw.pub/UkrWar042925
[8] https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-july-11-2025; https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-may-22-2025; https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-may-6-2025
[9] https://www.rbc dot ru/politics/28/07/2025/688746759a794772781fef2a; https://tass dot ru/politika/24645141 ; https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-may-28-2025 ; https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-april-30-2025;
[10] https://isw.pub/UkrWar051825 ; https://isw.pub/UkrWar05022025 ; https://understandingwar.org/backgrounder/russian-offensive-campaign-assessment-february-24-2025
[11] https://t.me/GeneralStaffZSU/27138; https://t.me/GeneralStaffZSU/27105; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpPl
[12] https://t.me/severnnyi/4679
[13] https://t.me/wargonzo/28114
[14] https://t.me/GeneralStaffZSU/27138; https://t.me/GeneralStaffZSU/27105; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpPl
[15] https://t.me/wargonzo/28114; https://t.me/dva_majors/76186; https://t.me/severnnyi/4674
[16] https://t.me/severnnyi/4679
[17] https://armyinform dot com.ua/2025/07/28/aktyvizacziyi-dyversijnyh-grup-ne-bachymo-na-sumskij-dilyanczi-kordonu-vidbyvayut-rosijski-shturmy/
[18] https://t.me/milinfolive/153684
[19] https://t.me/severnnyi/4679
[20] https://t.me/RVvoenkor/96695; https://t.me/epoddubny/24185
[21] https://t.me/severnnyi/4679
[22] https://t.me/severnnyi/4679
[23] https://t.me/severnnyi/4679
[24] https://t.me/wargonzo/28114
[25] https://t.me/smotri_z/46948; https://t.me/GeneralStaffZSU/27138; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpPl ; https://t.me/GeneralStaffZSU/27105; https://t.me/dva_majors/76186; https://t.me/DnevnikDesantnika/31732; https://t.me/wargonzo/28114
[26] https://t.me/RKadyrov_95/5871
[27] https://t.me/voenkorKotenok/66242; https://t.me/DnevnikDesantnika/31732
[28] https://t.me/dva_majors/76186
[29] https://t.me/DnevnikDesantnika/31732
[30] https://t.me/wargonzo/28114
[31] https://t.me/GeneralStaffZSU/27138; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpP; https://t.me/GeneralStaffZSU/27105; https://t.me/RVvoenkor/96663; https://t.me/Khortytsky_wind/14630; https://t.me/wargonzo/28114; https://t.me/voenkorKotenok/66242; https://t.me/wargonzo/28114
[32] https://x.com/Tatarigami_UA/status/1949753307242889603
[33] https://t.me/GeneralStaffZSU/27138; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpP; https://t.me/GeneralStaffZSU/27105; https://t.me/Khortytsky_wind/14630
[34] https://t.me/creamy_caprice/9677; https://t.me/mara_BBpS/190
[35] https://t.me/z_arhiv/32143
[36] https://t.me/GeneralStaffZSU/27138; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpP; https://t.me/GeneralStaffZSU/27105; https://t.me/Khortytsky_wind/14630
[37] https://t.me/boris_rozhin/173973
[38] https://t.me/voenkorKotenok/66232; https://t.me/rybar/72459
[39] https://t.me/GeneralStaffZSU/27138; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpPl; https://t.me/GeneralStaffZSU/27105; https://t.me/Khortytsky_wind/14630
[40] https://t.me/rybar/72459
[41] https://isw.pub/UkrWar112324
[42] https://t.me/voenkorKotenok/66232 ; https://t.me/wargonzo/28114
[43] https://t.me/GeneralStaffZSU/27138; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpPl; https://t.me/GeneralStaffZSU/27105; https://t.me/Khortytsky_wind/14630; https://t.me/wargonzo/28114
[44] https://t.me/RVvoenkor/96673 ; https://t.me/RVvoenkor/96667
[45] https://x.com/RoadtoMars9/status/1949376600019230825; https://t.me/fakhivtsi/382
[46] https://t.me/wargonzo/28114; https://t.me/z_arhiv/32137
[47] https://t.me/GeneralStaffZSU/27138; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpPl; https://t.me/GeneralStaffZSU/27105; https://t.me/Khortytsky_wind/14630
[48] https://t.me/voenkorKotenok/66233
[49] https://x.com/AudaxonX/status/1949512589102178749 ; https://t.me/bars_13_Pisar_Kom/931
[50] https://t.me/tass_agency/327770 ; https://t.me/tass_agency/327771 ; https://t.me/tass_agency/327773 ; https://t.me/dva_majors/76186 ; https://t.me/rusich_army/24908
[51] https://t.me/tass_agency/327830 ; https://t.me/mod_russia/55077 ; https://t.me/mod_russia/55078
[52] https://t.me/z_arhiv/32137 ; https://t.me/wargonzo/28114
[53] https://t.me/GeneralStaffZSU/27138 ; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpP ; https://t.me/GeneralStaffZSU/27105 ; https://t.me/rusich_army/24908
[54] https://www.youtube.com/watch?v=ZVMUSS0B0yo ; https://armyinform.com dot ua/2025/07/28/prosto-jdut-yak-zombi-cherez-pole-rosiyany-ne-prypynyayut-sprob-otochyty-pokrovsk/
[55] https://t.me/zvizdecmanhustu/2893
[56] https://t.me/zvizdecmanhustu/2894
[57] https://www.understandingwar.org/backgrounder/russian-offensive-campaign-assessment-january-11-2025 ; https://understandingwar.org/backgrounder/russian-offensive-campaign-assessment-january-18-2025 ; https://understandingwar.org/backgrounder/russian-offensive-campaign-assessment-february-21-2025
[58] https://t.me/zvizdecmanhustu/2893
[59] https://t.me/sashakots/55161; https://t.me/dva_majors/76178
[60] https://t.me/creamy_caprice/9675; https://t.me/ombr72/11186
[61] https://t.me/voenkorKotenok/66230
[62] https://t.me/GeneralStaffZSU/27138 ; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpP ; https://t.me/GeneralStaffZSU/27105 ; https://t.me/voenkorKotenok/66230; https://t.me/wargonzo/28114
[63] https://t.me/voin_dv/16203
[64] https://suspilne dot media/donbas/1077473-v-rajoni-gorihovogo-na-doneccini-rosijski-vijska-ne-maut-prosuvan-79-odsbr/
[65] https://t.me/zvizdecmanhustu/2894 ; https://t.me/zvizdecmanhustu/2895
[66] https://t.me/nm_dnr/14114 ; https://t.me/voin_dv/16210
[67] https://t.me/creamy_caprice/9676; https://t.me/ok_pivnich1/15150
[68] https://t.me/voenkorKotenok/66230
[69] https://t.me/GeneralStaffZSU/27138 ; https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpP ; https://t.me/GeneralStaffZSU/27105
[70] https://t.me/voin_dv/16206
[71] https://www.facebook.com/OperationalCommandSouth/posts/pfbid02RHy8wLLaxx685mPtXcnv2HPh8naKUCJ1iYPjnGKYy81ucPTUVe8xt5wwXRqp6Tcl?__cft__[0]=AZUTwzyXnDNMP4z7lA9ND0VQVxFZqWEo5ekb8hcr1VHQzb8N4EUYJ7u3H1Ki1Mch0dq19OYFgXRTxqrJqFrZPn3_0JSPc4EO4CLX_m8lL0V_VwqaeiVsPpUSDaA_QdPePbpYb0B5b_bGgIj10uAmTzXu6YHi2zN-yr79kW_WNnv10LQt8meVyFOlveAn_zc_Hes&__tn__=%2CO%2CP-R
[72] https://www.facebook.com/GeneralStaff.ua/posts/pfbid02T1aQXnuuVyv88ZQCaMbsyhpQmgfnfNTxLQFD8qEE1eKBaau79kSMFc967WNSSa9Gl ; https://t.me/dva_majors/76186 ; https://t.me/DnevnikDesantnika/31750 ; https://t.me/wargonzo/28114 ; https://t.me/dva_majors/76211; https://www.facebook.com/polk210/posts/pfbid02SanXCYwxvPr1ExEQReYaD3toDLxxEREF2cMZBWx9GGEGi5LDeAvhJFLBGcwCZDfSl; https://militarnyi dot com/en/news/210th-assault-regiment-destroys-enemy-recon-group-in-stepnohirsk/
[73] https://t.me/RVvoenkor/96672
[74] https://t.me/RVvoenkor/96683
[75] https://t.me/DnevnikDesantnika/31750
[76] https://t.me/DnevnikDesantnika/31750
[77] https://www.facebook.com/GeneralStaff.ua/posts/pfbid0QyJWzHo3fav7AWxCUc49YPQWhE3ZPcKJBHfdzJGQ5467v9bar4bP532R1BcdVdpPl; https://t.me/GeneralStaffZSU/27105; https://www.facebook.com/OperationalCommandSouth/posts/pfbid02RHy8wLLaxx685mPtXcnv2HPh8naKUCJ1iYPjnGKYy81ucPTUVe8xt5wwXRqp6Tcl?__cft__[0]=AZUTwzyXnDNMP4z7lA9ND0VQVxFZqWEo5ekb8hcr1VHQzb8N4EUYJ7u3H1Ki1Mch0dq19OYFgXRTxqrJqFrZPn3_0JSPc4EO4CLX_m8lL0V_VwqaeiVsPpUSDaA_QdPePbpYb0B5b_bGgIj10uAmTzXu6YHi2zN-yr79kW_WNnv10LQt8meVyFOlveAn_zc_Hes&__tn__=%2CO%2CP-R
[78] https://t.me/dva_majors/76186; https://t.me/dva_majors/76187
[79] https://t.me/DnevnikDesantnika/31787; https://t.me/dva_majors/76201; https://t.me/dva_majors/76226
[80] https://t.me/kpszsu/39410 ; https://x.com/ZelenskyyUa/status/1949732303506124993
[81] https://t.me/synegubov/16122; https://www.facebook.com/andriy.raykovich/posts/pfbid02zFotnrz4s4idctFZFM4JQh7NBPFeMEUgBVSMG3zcHCxUoLsvBsFPVXHam6VjJkK6l?__cft__[0]=AZVyCGJ095lT0xNGuIWhE_EOWeMycF0uWLN7v51HFCGZpNYORMk_GvZqLKJS-LC2EFlXZTY2lOHhw6YEvZjkUWNTJFTB49hotDCc2vMNuhLTYLBfJbFOjuk7O7VaX-jYQ1Yp6_n9CkhmgBSqRwQq_arXb85rSUwi08peVyp-R280qA&__tn__=%2CO%2CP-R; https://suspilne dot media/kropyvnytskiy/1076911-u-kropivnickomu-ataka-droniv/; https://meduza dot io/news/2025/07/28/rossiyskie-voennye-udarili-po-kievu-povrezhden-zhiloy-dom; https://t.me/vitaliy_klitschko/5065; https://www.facebook.com/mykoda/posts/pfbid02thrDommcBVoyCB17BMyqpWUoin8JLimQheenU1PCuURpWQ4jk7hKZa94fXaF8vyl?__cft__[0]=AZXYWde_QI0aq83LKKdEQY0hTOICrR2HlocNSb6pyHH6EQbjnM0aa1xqdbfp-zO2tsk13L5Gd1ySGV_OpFsQOsDJyoCFzeMWL4DAJjgKSB_PoXgPIHICkRv2-MfjRr96doTyW7KK8ODci_xWrfHPy5rG2GTzDh9yfnh9fP1s8T3mmA&__tn__=%2CO%2CP-R; https://suspilne dot media/1076903-sili-oboroni-zvilnili-kindrativku-rf-vdarila-po-avtobusu-z-ludmi-na-sumsini-1251-den-vijni/?anchor=live_1753681848&utm_source=copylink&utm_medium=ps