mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-03-02 22:57:32 -05:00
WebUI Security: Session still valid after reset password but before restart qBittorrent #14255
Labels
No labels
Accessibility
AppImage
Bounty
Build system
CI
Can't reproduce
Code cleanup
Confirmed bug
Confirmed bug
Core
Crash
Data loss
Discussion
Docker
Documentation
Duplicate
Feature
Feature request
Feature request
Feature request
Filters
Flatpak
GUI
Has workaround
I2P
Invalid
Libtorrent
Look and feel
Meta
NSIS
Network
Not an issue
OS: *BSD
OS: Linux
OS: Windows
OS: macOS
PPA
Performance
Project management
Proxy/VPN
Qt bugs
Qt6 compat
RSS
Search engine
Security
Temp folder
Themes
Translations
Triggers
Waiting diagnosis
Waiting info
Waiting upstream
Waiting web implementation
Watched folders
WebAPI
WebUI
autoCloseOldIssue
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/qBittorrent#14255
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Ghost-chu on GitHub (Jan 23, 2023).
qBittorrent & operating system versions
qBittorrent v4.5.0 Web UI (64-bit)
Qt: 6.4.1
Libtorrent: 1.2.18.0
Boost: 1.80.0
OpenSSL: 3.0.7
zlib: 1.2.12.zlib-ng
What is the problem?
qBittorrent does not log off existing sessions when users change their WebUI password (or username), or uncheck the bypass local auth checkbox.
This can be a security risk, as when an attacker logs into the WebUI once, they only need to find a way to keep the operation active, and qBittorrent will extend the session validity for that session.
Even when the user changes the user and password, these sessions are not logged out unless the user restarts qBittorrent.
For Windows hosts, this does not seem to be a problem. But for qBittorrent running on a NAS or Linux server, these devices don't reboot very often, and these users do their best to avoid rebooting qBittorrent to avoid enjoying a slow file checksum.
Also, sessions are not bound to IP addresses.
This means that if the SID is leaked, it can be exploited by an attacker in another location.
Steps to reproduce
Bypass authentication for clients on localhostandBypass authentication for clients in whitelisted IP subnetsto avoid affecting the experimental results.Saveto apply password and setting changes.SIDvalue by pressF12,Application -> Cookie -> <YOUR_HOST>Loginpage, pressF12,Console, and execute javascript:Enterto write cookie value, then re-fresh login page, now you're able continue session in a different machine for full control.Additional context
This report was translated using DeepL, my English is not good, if you have any questions please reply below and I will add them.
Log(s) & preferences file(s)
qBittorrent.conf -> https://paste.gg/p/anonymous/bd4bf3315c8340db8e7ab819ef2a8f90
qBittorrent.log (cutted) -> https://paste.gg/p/anonymous/1cc427f3156f43ffb9c7edfd350b8ce2
NOTE: There is nothing useful in logs, but you can see that there are no multiple times of login.