Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or obtain any user account
-
DeliveryAuthenticate using inactive-account bypass in process_auth_header
-
ExploitPOST crafted payload to /api/admin/settings
-
ExecutionOverwrite SMTP credentials, OAuth secrets, or storage paths
-
PersistExfiltrate secrets or inject malicious config key for code execution
-
ImpactAchieve service disruption or persistent access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the attacker to possess a session authenticated against the MyBooks instance - either a fully active low-privilege account or a registered-but-unactivated account, because process_auth_header does not check the user.active flag. On instances where ALLOW_REGISTER is true (or not explicitly set to false), an attacker can self-register and exploit the authentication bypass without any prior credential. On instances with registration disabled, the attacker must hold at minimum a valid low-privilege user credential. The vulnerable endpoint is specifically POST /api/admin/settings; read-only access (GET) is correctly restricted by the admin_user check. Exploitation is limited to MyBooks/Talebook versions 3.41.2 and earlier. Instances with the POST endpoint blocked at a reverse proxy, or with no external-facing user registration and no low-privilege users, have substantially reduced exposure. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H) scores 8.7 and accurately reflects the threat: network-reachable, low complexity, requiring only low-privilege authentication, with high impact across confidentiality, integrity, and availability of the vulnerable system. The secondary authentication-bypass flaw (inactive accounts accepted by process_auth_header) effectively reduces the privilege requirement in practice - on instances with open registration, an attacker needs no prior relationship with the target to obtain a usable session. Scope is confined to the application itself (SC/SI/SA:N), with no lateral movement beyond the web server's own configuration. No EPSS data was provided in the intelligence, and the vulnerability is not listed in CISA KEV, so broad automated exploitation has not been confirmed. However, the low attack complexity and high configuration-write impact make this a realistic priority for any internet-exposed instance: an attacker who overwrites SMTP or OAuth credentials obtains secrets, and the loader.py fix confirms a path toward code injection via configuration key injection. Risk is elevated for deployments with open user registration enabled, and reduced for instances behind authenticated reverse proxies or with registration disabled. |
| Exploit ScenarioDerived | An attacker visits an internet-exposed MyBooks instance, registers a new account (if registration is enabled), and immediately uses that unactivated account to authenticate - bypassing the active-flag check in process_auth_header. The attacker then POSTs a crafted JSON body to /api/admin/settings, overwriting SMTP server credentials or OAuth client secrets, which are then readable through normal configuration access paths. With control over configuration values, the attacker may also inject malicious strings into configuration key names to achieve code execution via the unpatched loader.py key-formatting flaw present in versions prior to 3.42.0. No public POC has been identified, but the attack requires only two HTTP requests and no specialized tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 19, 2026
Missing authorization in MyBooks (Talebook) 3.41.2 and earlier allows any authenticated low-privilege user - including holders of unactivated accounts - to overwrite server-side configuration through the POST /api/admin/settings endpoint, exposing SMTP credentials, OAuth client secrets, storage paths, and security feature flags to unauthorized modification. Two compounding flaws are present: the AdminSettings.post handler in webserver/handlers/admin.py applies only the authentication decorator without the admin_user check enforced by its GET counterpart, and process_auth_header in webserver/handlers/base.py accepts sessions for registered-but-unactivated accounts by not verifying the user.active flag. No active exploitation has been confirmed (not in CISA KEV), but the fix is available in version 3.42.0.
RemediationAI
Upgrade to MyBooks (Talebook) version 3.42.0, available at https://github.com/PoxenStudio/mybooks/releases/tag/3.42.0, which resolves all three fix points: the missing admin_user check in AdminSettings.post, the missing active-flag check in process_auth_header, and the configuration key injection surface in loader.py. If immediate upgrade is not feasible, apply compensating controls in the following priority order: first, block external access to POST /api/admin/settings at the reverse proxy or firewall layer, noting that this does not fix the authentication bypass itself; second, disable open user registration (set ALLOW_REGISTER to false in server configuration), which prevents self-registration of unactivated accounts and eliminates the lowest-privilege attack path, though it does not help if low-privilege accounts already exist; third, audit all existing user accounts and deactivate or remove any unrecognized registrations. Note that none of these workarounds address the root authorization flaw - patching to 3.42.0 is the only complete remediation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
MyBooks, also distributed as Talebook (CPE: cpe:2.3:a:poxenstudio:talebook:*:*:*:*:*:*:*:*), is a Python-based self-hosted ebook management web server. The root cause is CWE-862 (Missing Authorization) manifesting in two handler files. In webserver/handlers/admin.py, the AdminSettings class applies the auth decorator to both GET and POST routes, but the GET handler explicitly checks self.admin_user while the POST handler does not, creating an asymmetric authorization gate. In webserver/handlers/base.py, the process_auth_header function validates credentials against the database but skips the user.active status check, allowing accounts in a pending/unactivated state to produce authenticated sessions. The fix commit (a1780c98) also patches webserver/loader.py to use repr(k) for configuration key formatting instead of bare string interpolation, closing a secondary code-injection surface through attacker-controlled key names. The three-part fix - admin check, active-flag check, and key sanitization - confirms that exploitation could chain into code injection beyond pure credential theft.
Know when Talebook gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable POST endpoint; low privilege reflects self-registerable (even unactivated) account access; no scope change; high C/I/A for credential theft, config overwrite, and service disruption.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
MyBooks is an ebook management web server also known as Talebook. In 3.41.2 and earlier, the AdminSettings.post handler for POST /api/admin/settings in webserver/handlers/admin.py applies the auth decorator but does not check the self.admin_user property, unlike the corresponding GET handler. Any authenticated regular user can therefore overwrite server configuration values including SMTP credentials, OAuth client secrets, storage paths, security feature flags, and autoreload settings. The process_auth_header function in webserver/handlers/base.py also fails to verify the matched account's active flag, allowing a registered but unactivated account to authenticate and reach the vulnerable handler. Exploitation can disclose secrets through configuration access paths, sabotage application behavior, force service restarts, and supply the settings needed for related code-injection attacks. This issue is fixed in version 3.42.0.
Executive ViewAI
MyBooks (Talebook) 3.41.2 and earlier contains an authorization bypass allowing any authenticated user-including those with minimal privileges or unactivated accounts-to modify critical server configurations such as SMTP settings and OAuth tokens. While no public exploit has been identified at time of analysis, this vulnerability exposes sensitive credentials and could enable attackers to intercept communications, compromise connected cloud services, or disable security protections.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Authenticated remote code execution affects Talebook (MyBooks/PoxenStudio) ebook management server versions 3.41.2 and e
Registration bypass and authentication bypass in Talebook (MyBooks) 3.41.2 and earlier allow an unauthenticated remote a
EUVD-2026-62484
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB