What does QubesOS secure against? Hacking QubesOS

They say QubesOS is reasonably secure but what does that mean? I don’t think QubesOS is secure.

What are the ways to hack qubes os? I’m guess it starts with the browser. They first ID you in the browser, then hack you through browser, and then VM escape to take over the whole system.

But how exactly do these methods work? It really needs more details and discussion around it to ensure the security of QubesOS.

I think without a very technical discussion on how to take down QubesOS, QubesOS is not secure.

So what are your guys thoughts? How do they hack through the standard Chromium/Gecko browsers and then how do they VM escape to rest of the systems?

The Qubes OS default security idea is to isolate different applications or groups of applications into XEN VMs. The isolation via XEN / Qubes OS tools is trusted ultimately - if this one is broken, as in if someone has a 0day for those, its game over.

To make a simple example: You have a browser in a Qube (Qubes OS VM) and you visit a website that exploits a bug in the browser - the attacker then owns that VM, but can not escape XEN - his control is isolated to that one VM.

Depending on which type of VM (Qube) you choose, the attackers malware is gone after a reboot (AppVM has persistent /home only, DisposableVM has no persistence at all).

So it is as easy to “hack” a browser in Qubes as it is in any fedora / debian / whatever you choose as template. But the browser does not run as the same user as all other apps, it is isolated using XEN / Qubes.

In a very small nutshell, this is what Qubes OS does for you - you will most likely get hacked somehow, but the attacker will not be able to automatically take over all your other applications, because he can’t escape XEN.

XEN is relied upon by VERY big players for virtualization in the cloud, so its security is very trustworthy.

Qubes OS by itself (the version the Qubes team releases to its users) does not do much to secure the operating systems running in the VMs. You can, as a simple step, use kicksecure templates for this, for example, which is a hardened Debian version (google kicksecure).

The Qubes community prides itself for extending the functionality of defualt Qubes OS - you can add pretty much any kind of paranoia stuff you want, which makes Qubes a very nice thing to play with if you have some admin/coding skills.
But the bottom line security is the XEN isolation layer.

So what are your guys thoughts? How do they hack through the standard Chromium/Gecko browsers and then how do they VM escape to rest of the systems?

If you find out, you can sell it :stuck_out_tongue: :wink:

Qubes OS is the most usable high security approach to desktop/laptop computing there is (imho). I’d list OpenBSD too, but there you really need to know what you’re doing. Qubes isolation gives you pretty nifty security kind of out of the box. You need to learn a bit about things when you are coming from windows for example, but it is doable. Though its not super easy either.

Do you have specific questions on how to migrate your applications / setup to Qubes OS, or do you have a specific threat model?

2 Likes

Security by isolation is kind of a meme if they can VM escape. They should not be going from AppVM to Sys-usb to keylog your whole session.

If QubesOS security model is based on isolation, but they are VM escaping to Sys-usb to keylog the whole session, then QubesOS is not secure.

VM escapes mean QubesOS is not isolated, therefore not secure.

Yes, if you CAN escape the XEN isolation then the security model is broken.

Buying a 0day for XEN is VERY expensive and state-level hacking. There is not much you can do about this. It stands to question if these exist, but in my absolutely personal and in this case unprofessional opinion, I suppose they do exist. Keep in mind that very very large companies trust their server security on XEN virtualization, so if Qubes is broken in that way, very very large corporations worth billions of dollars are broken too.

There are a LOT of threat models below “the NSA is hacking me”. Qubes is a massive help for anyone under that threat level (you have to know how to use it right a bit).

You can compare this to a very secure door. It will protect you from someone breaking in. If that someone brings a tank however, the door will not help you.

So yes, your argument that “if someone has a 0day for xen, then qubes doesn’t help” is correct.

If the NSA is following you, the best way to not get hacked is to not use computers.

As said, the only valid alternative security wise that I know of would be OpenBSD, where you (imho) really need to know what you’re doing, not just to run it, but also to securely administrate it and use it.

1 Like

That is not my argument. I’m not even talking 0 day Xen. I’m talking a really simple high level process.

They VM escape to sys-net. Sys-net is not disposable. So everytime sys-net boots, it VM escapes to sys-usb and keylogs you. That means everytime you boot your computer, a keylogger is running.

Or any other appVM.

QubesOS is not secure in its current state. Can’t have a hacked VM, hacking other VM’s. Breaks QubesOS whole security model based on isolation.

sys-net is not disposable

True, but you can make it disposable.

They VM escape to sys-net. Sys-net is not disposable. So everytime sys-net boots, it VM escapes to sys-usb and keylogs you.

This argument I don’t understand. Even in Qubes default installation, sys-usb has no netvm, and is a seperate Qube (VM). Just because sys-net is compromised does not mean sys-usb is compromised.

Also if sys-net is compromised, that does not automatically mean all other VMs in the chain up are compromised. You are still sending (mostly) encrypted traffic (HTTPS for example) through sys-net. Qubes implements nftables rules that block incoming traffic in VMs up the chain, so for example:

sys-net → sys-firewall

does not just work by itself. You can intercept all the traffic coming from sys-firewall, and like work, which is attached to sys-firewall. It then depends on what kind of traffic that is.

There is a whole array of forum posts on how to make sys-net more paranoid, my favorite one is the OpenBSD based template for it. That requires some skill / tech knowledge though.

Even if you use Qubes in its default configuration, it is still vastly more secure than Windows / OSX / something like Ubuntu. But yes, there are things you can tweak depending on your usecase.

They VM escape to sys-net

If you tell us who “They” are, we might be able to suggest you what to tweak - if “They” are the NSA, as said before, Qubes can’t help you there :stuck_out_tongue: (imho, might be true or false, but I’d say its VERY unlikely).

1 Like

What I do know is QubesOS isn’t secure.

QubesOS is not something you can just pick up and confidently use knowing your vault VM and internet AppVM will always be kept separate. Could even just be a honeypot. Purposely littered with bugs.

The way to fix it requires knowing how to hack people. Nftables isn’t good enough lol.

Probably need more discussion on how to hack QubesOS. Or just hacking people a good start

More security talk will be a waste of time since you don’t know what you are securing against. Need to hack people.

“We listen and we don’t judge” x)

2 Likes

Can you elaborate on what you mean by “VM escape” exactly?

You are absolutely right. If I were you, I’d use much more secure OS.

3 Likes

@corporateblush I read between your lines, but I HAVE to ask x) Which OS? :))))))

2 Likes

which one?

1 Like

@queen you have to read the whole thread :wink:

2 Likes

Low-effort trolling from the OP.

5 Likes

Kuhbs, Your answer is very responsible.. With the addition that - USB can be disposable.
I say Qubes Developers provide a tool kit.

Operations Security, Opsec - how one uses the OS is a very big addition to security. Perhaps the Original Poster, might enjoy reading the the documentation produced one the Whonix website.

Notice Qubes uses hardware virtualization as well.

In breaking encryption: Encryption is not broken in theory, using a program to find a fresh, new password to the Encryption used. Encryption is more often broken in practice, like stealing a password. Piggy Back Slurp. ?

If Original Poster needs Security for an immediate message. I suggest he try Tails OS. and go through an entire power off, and Power up Boot between different uses. The documentation for how to use Tails is quite good.

and yes I respect the Documentation for Qubes. Just newcomers do not read, and digest the knowledge offered.
.

4 Likes

USB can be disposable

I think the OP was refering to the default state after Qubes OS is freshly installed (in some of his assumptions). Ofc pretty much everything can be disposable, and in my personal playing with Qubes I found that a GREAT many things can and maybe even should be disposable.

I like to bring Signal chat as a good example, which stores all the messages on the server anyways.

You can login once in the AppVM and then use a named disposable (unnamed is fine too but no need for many signals), as it will just sync the messages. Or you can just not log in and use the phone to re-sync each time, bcs you have to trust the phone anyways.

I’ve recently decided to give up on the “trusted browser” and just completely switch to unnamed disposables for all things browser.

And so on and so forth.

and yes I respect the Documentation for Qubes. Just newcomers do not read, and digest the knowledge offered.

I want to add here that I’m sometimes questioning the reason for documentation in our current day and age - telling ChatGPT to read the source and give me an answer is often far more accurate and detailed, and SOOOOOO much faster than reading documentation.
I’m even thinking if I should still write one for kuhbs, or just make kuhbs.com a small “marketing” website, with a small howto install, bcs if I invest the time to write documentation, even if I generate most of it (I mean I still have to read / correct it ofc), ppl will just ask ChatGPT anyways.

As for me, when I’m working on qubes, I always tell my hermes (backed by chatgpt) “download the qubes source and find out bla bla bla”. That gives answers that outperform anything else byaccuracy and speed.
In utterly rare cases the forum still throws me in the right direction though, bcs ChatGPT is sometimes still just to stupid to flippin think about stuff xD

1 Like

What would ChatGPT say when pasting the OP into it? I am utterly curious.

See its like they read my post and just did the hack using same methods. OpenAI (@OpenAI): "We're partnering with @huggingface to investigate an unprecedented security incident. Cyber-capable OpenAI models compromised Hugging Face production during a benchmark evaluation. Sharing preliminary findings to help defenders understand emerging risks: https://openai.com/index/hugging-face-model-evaluation-security-incident/" | XCancel

But in QubesOS, they entry point is usually the Chromium/Gecko browsers. But still they should not be VM escaping between systems after the hack.

QubesOS not secure.

@corporateblush , ChatGPT 5.6 sol on “pro” mode (I assume thats marketing for xhigh). Prompt:

solve this issue: https://forum.qubes-os.org/t/what-does-qubesos-secure-against-hacking-qubesos/42590/18

(Sidenote: LOL)

Response from ChatGPT PRO! mode

Diagnosis

The linked message asks what ChatGPT would say about the original post. The underlying “issue” is not a demonstrated Qubes OS vulnerability. It is an incorrect attack-chain assumption:


browser exploit
    ↓
browser qube compromised
    ↓ assumed
sys-net compromised
    ↓ assumed
sys-usb compromised
    ↓ assumed
all keystrokes captured

Only the first transition follows from a browser exploit. Every later arrow requires a different vulnerability, unsafe policy, or configuration error. The forum argument effectively assumes three successful exploits and then treats the resulting conclusion as proof that isolation does not work.

“VM escape to sys-net” is the wrong terminology

A VM escape normally means escaping a guest into the hypervisor or host. sys-net is another guest VM, not the host.

There are two materially different scenarios:

  1. Browser qube → sys-net through networking:

    This is guest-to-guest lateral movement. The attacker would need a separate vulnerability in the virtual network backend, the sys-net kernel, or another service reachable from the browser qube. Sending packets through sys-net does not grant code execution in sys-net.

  2. Browser qube → Xen/dom0 through a genuine VM escape:

    This is potentially catastrophic because Xen and dom0 are part of the trusted computing base. But then the attacker has escaped Qubes’ principal security boundary directly; there is no technical reason they must “hop” through sys-net and sys-usb first.

Qubes explicitly says that applications inside one qube are not isolated from each other. A browser compromise can therefore expose that qube’s files, cookies, active sessions, and other applications. The intended protection is that the compromise does not automatically expose software and data in other qubes.

Why the proposed sys-net → sys-usb path does not exist by default

A normal sys-usb configuration has no NetVM, and Qubes’ own configuration disables networking there. The default input policy also denies keyboard forwarding unless the administrator explicitly configures it. In other words, sys-usb is not ordinarily a network peer reachable from sys-net.

A compromised sys-net is still serious. It can:

  • observe network metadata;

  • inspect or change unencrypted traffic;

  • disrupt connections;

  • attempt active attacks against qubes connected through it;

  • attack their network stacks with malicious packets.

But Qubes’ documentation specifically distinguishes those connected qubes from qubes using another NetVM or no networking at all. A compromise of one NetVM does not itself confer access to unrelated or networkless qubes.

To move from sys-net into sys-usb, the attacker would still need something such as:

  • another Xen or virtual-device vulnerability;

  • a dangerously permissive qrexec policy or vulnerable custom qrexec service;

  • a dom0/GUI compromise;

  • a firmware, DMA, or hardware-level attack;

  • an administrator-created connection between the two qubes.

Qrexec calls are policy-controlled, and the normal result when no matching permission exists is denial. Custom services and broad allow rules can weaken this, which is why qrexec policy should be kept minimal.

The keylogging claim

Ordinary application qubes do not receive keyboard events intended for other qubes. Qubes’ GUI system sends input to the qube containing the focused window, so compromising one ordinary browser qube does not create a system-wide keylogger.

There is an important exception: when a USB keyboard is assigned to sys-usb and its input is intentionally proxied to dom0, sys-usb becomes part of the trusted input path. A compromised sys-usb could then observe input from that keyboard. Qubes explicitly warns about this risk. That is a reason to protect sys-usb carefully—not evidence that sys-net can automatically compromise it.

What Qubes actually promises

Qubes does not promise that:

  • browser vulnerabilities cease to exist;

  • Xen can never contain a vulnerability;

  • dom0, GUI, qrexec, firmware, or hardware can never be compromised;

  • one machine can safely withstand every hypothetical zero-day chain;

  • separating identities automatically prevents browser fingerprinting or behavioral correlation.

It promises a reduction in blast radius through compartmentalization. A browser zero-day should ordinarily compromise the browser’s qube, not immediately every document, credential, USB device, and security domain on the computer.

A real Xen or other trusted-computing-base vulnerability can defeat that model. Qubes maintains a Xen security-advisory tracker precisely because such vulnerabilities are possible. The defense is a relatively small trusted computing base, reduced interfaces, compartmentalization, and timely patching—not a claim of invulnerability.

Concrete configuration changes

First, use a supported and fully updated release. As of July 2026, Qubes OS 4.3.1 is the current stable release, while the Qubes 4.2 series reached end of life on June 21, 2026 and no longer receives security updates.

In dom0, inspect the relevant network assignments:


qvm-prefs sys-usb netvm
qvm-prefs vault netvm

Both should show that no NetVM is assigned. To remove networking from a qube deliberately:


qvm-prefs vault netvm ''
qvm-prefs sys-usb netvm ''

Then apply these boundaries:

  1. Use disposable qubes for hostile browsing.

    This limits filesystem persistence after shutdown. It does not prevent a live browser exploit or prevent the same remote exploit from succeeding again on a later boot.

  2. Keep secrets in networkless qubes.

    Password databases, private keys, recovery codes, and sensitive documents should not reside in the same qube as an everyday browser.

  3. Keep sys-usb offline.

    Do not install browsers, communication clients, or unrelated software in it. Treat it as especially trusted when it proxies a USB keyboard.

  4. Consider disposable sys-net and sys-firewall.

    Qubes officially supports named disposable service qubes for these roles. This reduces persistent modification of their writable filesystem, although it does not stop live compromise.

  5. Audit qrexec policy.

    Inspect /etc/qubes/policy.d/ in dom0. Remove unnecessary broad allow rules, especially rules involving dom0, input devices, file transfer, URL opening, or custom services.

  6. Separate high-risk network domains.

    A high-risk browsing qube does not have to share the same NetVM chain as administrative or especially sensitive networked qubes.

  7. Use physical separation for the highest threat levels.

    Qubes substantially improves compartmentalization, but all qubes still share Xen, hardware, firmware, and ultimately one physical computer. Truly independent trust domains may warrant separate machines.

A response suitable for posting to the thread

The proposed chain assumes the very vulnerabilities it is supposed to demonstrate. A browser exploit compromises the browser qube. It does not automatically grant execution in sys-net merely because traffic is routed through sys-net. Compromising sys-net would require another vulnerability in a reachable network, kernel, virtual-device, qrexec, or hypervisor interface.

Likewise, sys-usb normally has no network connection, so sys-net has no ordinary route to it. Moving from sys-net to sys-usb would require yet another independent vulnerability or a dangerous administrator-created policy. A compromised ordinary qube also cannot normally read keyboard events delivered to other qubes.

There is a real caveat: if sys-usb proxies a USB keyboard, compromising sys-usb can expose that keyboard’s input. That makes sys-usb a trusted component and is why it should remain offline and minimal. It does not establish that sys-net can compromise sys-usb.

A genuine Xen, dom0, GUI, firmware, or hardware compromise can defeat Qubes. Qubes does not claim otherwise. Its security claim is that an ordinary application compromise is contained by default, so the attacker must find and successfully exploit additional boundaries instead of receiving access to the whole machine automatically.

Therefore, the correct conclusion is not “Qubes cannot secure against hacking.” It is: Qubes turns one compromise into a contained compromise unless the attacker also has a valid escalation chain. Such a chain must be demonstrated arrow by arrow rather than assumed.

That addresses the technical confusion without overstating Qubes’ guarantees.

2 Likes