CVE-2025-61481 : RouterOS v.7.14.2 and SwitchOS v.2.18 allows RCE via the HTTP- only WebFig

fyi another one

https://app.opencve.io/cve/CVE-2025-61481

https://svarthatt.se/cve/mikrotik-swos-cve-2025-61481/

Seems to be some weeks old, but haven’t found a topic about this CVE number.

Description:
MikroTik RouterOS through version 7.14.2 and SwOS through version 2.18 initialize the WebFig management interface with HTTP enabled by default and without automatic redirection to HTTPS. After a factory reset, the management UI including the login page and associated JavaScript loads entirely over cleartext HTTP. During authentication, the client-side script stores the username and password in window.sessionStorage and transmits credentials over port 80, allowing interception by any on-path attacker. Packet capture confirms that management traffic and credentials are fully visible and modifiable in transit.
This insecure default configuration exposes administrators to credential theft and session tampering via simple man-in-the-middle attacks on the local network. The issue affects devices such as CRS326-24G-2S+ and likely other models using the same WebFig component in RouterOS and SwOS.

fml -shrugs-

The CVE was published yesterday afternoon. Let’s get the folks at MT have a look at it, I’m sure we will get an update soon.

Quoting your source:

Attack prerequisites:
An attacker must have network-level access capable of intercepting or modifying HTTP traffic between the administrator’s browser and the device.

Mitigation:
Place management interfaces on isolated, trusted networks. Enable HTTPS for WebFig where possible, or use encrypted management channels such as SSH or VPN tunnels. Administrators should treat all HTTP-only management interfaces as unencrypted and sensitive until HTTPS is enforced by default.

=> So as a quick fix, just add a FW rule dropping the Webfig traffic and switch to SSH until further notice as maybe more version are affected as well.

What’s with the publishing one CVE for effectively two separate device operating systems? They are both separate considerations.

SwOS is most straightforward. It doesn’t do HTTPS and ideally needs to be able to otherwise it’s susceptible to an internal intercept. Whether that’s possible given the small footprint of SwOS I don’t know.

RouterOS is a different matter. A device arrives with a default config and from that perspective it could be argued that HTTPS should be enabled with a default certificate with port 80 to 443 redirect enabled. Given it’s not your average consumer device though this should be taken care of by a consultant before commissioning. So effectively it’s a box checking exercise and probably not going to change the world for the better.

Not defending MikroTik but feels like a spurious claim to a CVE to me. Will gladly stand corrected if there’s a good counter point though

Edit: missed the point where the password was captured in plain-text. So the other thing here is that the password need sending securely as well.

Isn't the prerequisite another way to say that a middle man attack on http is possible?

2 Likes

REX-1990-00001

Description:
Any device in the World that use HTTP can be victim of man-in-the-middle attack

Attack prerequisites:
An attacker must have network-level access capable of intercepting or modifying HTTP traffic between the administrator’s browser and the device.

Mitigation:
Disable HTTP everywhere.

2 Likes

Truly silly and ridiculous.
Even stones know that HTTP is insecure... Or rather, they should know...

Another one that default firewall and default settings avoid from WAN.

Credits:
Discovered by Oliver Bölin.

A true genius...
I'll try it too, with all the <CENSORED>, <CENSORED>, <CENSORED>, and <CENSORED> peripherals, and others.
I can "discover" the same bug everywhere and claim credit for it...

What bulls~~t.

3 Likes

After a factory reset

What's the point? Why isn't it vulnerable without doing so?

Perhaps they forgot to mention that "do not load defaults" must also be selected when you do factory reset?

A poorly worded report.

1 Like

Money quote:

During authentication, the client-side script stores the username and password in window.sessionStorage and transmits credentials over port 80, allowing interception by any on-path attacker.

That’s of course the classic cleartext and man-in-the-middle issue with HTTP. There’s no need to panic — client-side “encryption” approaches have been around for a long time, and none of them turned out to be secure in the end. Anyone serious would simply use HTTPS, and that’s perfectly fine.

I no longer have a 7.14.x setup to verify this, but if the password was indeed stored in sessionStorage in cleartext, that would be a serious lapse in judgment on the developer’s part.

3 Likes

So actually CVE is because default configuration has HTTP enabled? lol

Let's create CVE regarding blank admin password after netinstall. Like for this case. :slight_smile:

I have feeling that some security “experts” just want to build CVE portfolio to get some rank.

Indeed, the default no-password admin issue could reasonably qualify for a CVE, in my opinion.
I’ve never installed a CHR myself, but I’d assume that every virtualization environment provides a console. RouterOS could easily generate a secure random password on each boot and print it to the VM console (until you set one) — that alone would completely prevent these avoidable compromises of freshly deployed CHRs.

Alternatively, RouterOS could simply allow setting an environment variable for the admin password during initialization.

What I find most concerning is that MikroTik must be aware of these cases but has chosen not to take any effective action so far.

Also option to set admin password directly from netinstall without need for setting custom configure script will also be nice.

1 Like

IF netinstall would not transmit admin/password in plain text ... :roll_eyes:

Agree, encrypted with public key provided by firmware when in netboot mode.

I understand... But 99.9% of the time I use NetInstall, it's always direct, never done remotely...
So what's in between? If it's a virus on your computer, it doesn't matter how NetInstall works...

This right here is why many (including me) believe that the CVE system is fundamentally broken. (1)

A freshly installed/reset router has no way of obtaining proper credentials that are needed to use https normally. Alternatives would be:

  • Disable the http interface entirely, as according to the interpretation of the references given in the CVE, it should only ever be used to redirect to https in these scenarios. Okay, but users expect to be able to set up their routers over a a web browser. Disabling this is not very welcoming for new users.
  • Supply a self-signed certificate. In this case the certificate would have to be somehow securely delivered to the user, but more importantly: the user would have to configure their system to trust it. Not very welcoming to new users.
  • Some other, more secure means of initial configuration should be provided, such as a mobile app… but hey, wait a minute, there is a more secure mobile app (actually two) both for Androids and iPhones, and wait… there’s a tool called winbox for PCs, but wait… Mikrotik actually supports the industry standard SSH protocol fresh out of the box.

(1) By broken, I mean blindly using it to assess the security of a product as used in any given scenario blindly, as it is (sadly) used by many compliance teams. Many people use the CVE system to pad their resumes or otherwise elevate their importance. Much more concerning is that I’ve seen instances where competitors use it to smear one another through paid intermediaries. Of course, it’s not broken in the sense that it’s an infinitely good idea to have an easily referenced database of possible problems.

2 Likes

True, but because of this 0.1% someone can create CVE - plain text password sent over network when performing netinstall :slight_smile:

1 Like

The problem Is that somehow someone should examine the proposed vulnerability under the light of common sense [1] (besides verifying that It is actually doable) and assign three different severity grades:

  1. stupidity or incompetence of the programmer of the vulnerabile code
  2. dangerousness in theory
  3. dangerousness in practice

And - when applicable - should inscribe the researcher as contestant in either "Captain Obvious Award" or the "@sshole of the year" contests.

This specific hypothetical CVE seems like:

  1. 99%
  2. 10%
  3. 0.01%
    to re-cap, essentially a nothingburger when It comes to dangerousness in the real world, while a disaster for the reputation of the (unknown) programmer of netinstall.[2]

The researcher would be well postioned in the final for the 2025 Captain Obvious Award.

[1] not so common, unfortunately
[2] I guess even a kid in secondary school knows that you don't send plain text over unencrypted connection, no exceptions.

P.S. I wrote hypothetical and netinstall but you can replace them with actual and webfig, the substance won't change much.

Well,
you made me think of something trivial, but obvious if you think about it.

Until there's a surefire way to install an https certificate,
the man-in-the-middle attack remains even in https
because it's not clear whether the self-signed certificate belongs to the man-in-the-middle or the end device...

If you read carefully, difficulties in securely delivering the cert to the client was my second point. :slight_smile:

1 Like