Skip to main content

LogicalDOC Community Edition EUVDEUVD-2026-97439

| CVE-2026-109206 MEDIUM
Observable Response Discrepancy (CWE-204)
2026-10-12 VulnCheck GHSA-g7j6-49p3-h792
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach /avatar endpoint unauthenticated
  2. Delivery
    Enumerate userId values (names and numeric IDs)
  3. Exploit
    Compare real avatar vs 1x1 placeholder response
  4. Execution
    Confirm valid accounts and harvest profile images
  5. Impact
    Feed account list into password-spray or phishing

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V6 - Authentication Response uniformity
Exploitation Conditions

No special conditions - remote unauthenticated exploitation against default configurations of LogicalDOC Community Edition (through 9.3), because the AvatarServlet (/avatar) performed no session validation and processed the userId parameter for any caller. The only practical prerequisite is network reachability of the /avatar endpoint. Limiting factors that bound real-world risk: the vulnerability discloses only account existence and profile images (confidentiality-low), grants no authentication, credentials, or write access, and is remediated once the instance runs the patched build that enforces SessionManager.isOpen() and returns the default avatar to unauthenticated requests.

Impact

This is a genuine but low-to-moderate priority issue, not a critical one. The CVSS 4.0 base score of 6.9 (Medium) is driven by the network-reachable, unauthenticated, low-complexity vector (AV:N/AC:L/AT:N/PR:N/UI:N) combined with a confidentiality-only impact (VC:L, with VI:N/VA:N) - meaning the attacker gains limited information disclosure (valid usernames/IDs and profile images) but no integrity or availability impact and no code execution. All signals are consistent and point to an information-disclosure primitive rather than a direct compromise: CWE-204 (observable response discrepancy) matches the described 1x1-transparent-vs-real-avatar oracle. No EPSS score, CISA KEV listing, SSVC decision data, or explicit POC flag was supplied in the input, so exploitation-probability and real-world-exploitation signals are UNKNOWN and cannot be asserted. The absence of KEV/EPSS data means this must be prioritized on vector and impact alone: easy to exploit remotely without authentication, but the payoff is reconnaissance (account enumeration feeding later password-spraying or phishing) rather than a standalone breach. Treat it as a patch-promptly hardening item for internet-exposed instances, not an emergency.

Exploit ScenarioDerived

An unauthenticated attacker who can reach a LogicalDOC Community Edition instance repeatedly requests /avatar with incrementing numeric values or guessed names in the userId parameter and observes whether the server returns a real avatar image versus a 1x1 transparent/default placeholder. This oracle lets them confirm which usernames and user IDs exist and harvest profile pictures, building a validated account list for follow-on password spraying, credential stuffing, or targeted phishing. Exploitation is trivial (AV:N/AC:L/PR:N/UI:N) and scriptable; the fixed code confirms the servlet previously performed no session check.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 12, 2026

Username enumeration in LogicalDOC Community Edition through 9.3 allows remote unauthenticated attackers to determine which accounts exist and to retrieve their profile pictures by requesting the /avatar endpoint with candidate usernames or numeric IDs. The AvatarServlet performed no session validation, so the only prerequisite is network reachability of the endpoint; identification relies on distinguishing a generic 1x1 transparent image returned for unknown identifiers from a real avatar returned for valid accounts. The disclosure is limited to account existence and profile imagery (confidentiality-low, no authentication, credentials, or write access granted), making this a low-to-moderate priority issue rather than a critical one; no public exploit code was identified at time of analysis and the issue is not known to be actively exploited.

RemediationAI

Apply the upstream fix commit 4e93a69526ae7fe50f670b85b3fc57181f3de3f7 (referenced from https://github.com/logicaldoc/community/commit/4e93a69526ae7fe50f670b85b3fc57181f3de3f7) or install a LogicalDOC Community Edition build that includes it; vendor advisory data states a patch is available, but no exact patched release number was provided in the intelligence, so validate the running build contains the SessionManager.get().isOpen(sid) check in AvatarServlet before considering the instance fixed. After upgrading, verify that anonymous requests to /avatar return the generic UserUtil.DEFAULT_AVATAR_IMAGE rather than a real avatar and that no distinct response is produced for valid versus invalid userId values. If immediate patching is not possible, the most effective compensating control is to restrict the /avatar endpoint at the reverse proxy or servlet filter so only requests carrying a valid authenticated session are forwarded - the trade-off is that unauthenticated pages that render default avatars may break or show broken images, and care must be taken not to blanket-block the path in a way that also breaks avatar display for logged-in users. Additional measures include rate-limiting and alerting on /avatar request patterns that iterate userId values, since enumeration attempts produce high-volume, low-variance 200/404 sequences; this does not prevent enumeration on its own but supports detection and blocking after the fact. Because the disclosed information (valid usernames plus profile images) feeds credential-stuffing, password-spraying, and targeted phishing, treat any window of exposure as a reason to enforce strong authentication controls such as MFA and lockout thresholds, and consider rotating or hiding discoverable usernames where the deployment allows it. Blocking network access to /avatar from untrusted networks is a valid stopgap for internet-facing deployments, with the same functional side effect of losing avatar rendering for off-network users.

Affected VersionsENISA

LogicalDOC Community Edition 0 ≤9.3

Affected Packages

euvd logicaldoc_community_edition no fix

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

The root cause is CWE-204 (Observable Response Discrepancy) within the Java servlet com.logicaldoc.web.AvatarServlet, exposed at the /avatar path in the logicaldoc-webapp module. The servlet's doGet handler read the userId request parameter - which accepts either a username or a numeric user ID - and passed it directly to UserUtil.getAvatarImage(id) without first calling SessionManager to validate that the caller held an open session; when no stored avatar was found it went on to UserDAO.get().findById(Long.parseLong(id)) and generated a default avatar. Because the response body and content type differed between a valid account (a real avatar, often a data:image/... base64 payload decoded and written to the output stream) and an invalid one (a 1x1 transparent placeholder or an error), an unauthenticated remote caller could binary-search the user namespace by comparing returned images. The upstream fix adds a check on SessionManager.get().getSessionId(request) and SessionManager.get().isOpen(sid), falling back to the constant UserUtil.DEFAULT_AVATAR_IMAGE for unauthenticated or unauthenticated-session requests; that constant was additionally changed from private to public static so the servlet can reference it, confirming the intended behavior is now 'always return the generic avatar unless an authenticated session exists'. The CVSS 4.0 vector supplied with the CVE (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N) is consistent with the independent assessment (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N): remotely reachable, low attack complexity, no privileges or user interaction required, and confidentiality-only impact at the low level.

Know when Logicaldoc 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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Endpoint is remotely reachable with no session check (AV:N/AC:L/PR:N/UI:N); only limited username/avatar disclosure, so C:L and I:N/A:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

LogicalDOC Community Edition through 9.3 contains a username enumeration vulnerability that allows unauthenticated attackers to identify valid accounts because the AvatarServlet (/avatar) performs no session validation. Attackers can supply usernames or numeric IDs in the userId parameter and compare 1x1 transparent images against real avatars to enumerate users and retrieve profile pictures.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
niche open-source document management system, limited enterprise footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2020-9423 CRITICAL POC
9.8 Mar 18

LogicalDoc before 8.3.3 could allow an attacker to upload arbitrary files, leading to command execution or retrieval of

CVE-2017-1000021 HIGH POC
8.8 Jul 17

LogicalDoc Community Edition 7.5.3 and prior is vulnerable to XXE when indexing XML documents. Rated high severity (CVSS

CVE-2017-1000022 HIGH POC
8.8 Jul 17

LogicalDoc Community Edition 7.5.3 and prior contain an Incorrect access control which could leave to privilege escalati

CVE-2020-13542 HIGH POC
7.8 Dec 03

A local privilege elevation vulnerability exists in the file system permissions of LogicalDoc 8.5.1 installation. Rated

CVE-2020-10366 HIGH POC
7.5 Apr 08

LogicalDoc before 8.3.3 allows /servlet.gupld Directory Traversal, a different vulnerability than CVE-2020-9423 and CVE-

CVE-2019-9723 HIGH POC
7.1 May 30

LogicalDOC Community Edition 8.x before 8.2.1 has a path traversal vulnerability that allows reading arbitrary files and

CVE-2020-10365 MEDIUM POC
6.5 Mar 18

LogicalDoc before 8.3.3 allows SQL Injection. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitab

CVE-2017-1000023 MEDIUM POC
5.4 Jul 17

LogicalDoc Community Edition 7.5.3 and prior is vulnerable to an XSS when using preview on HTML document. Rated medium s

CVE-2024-54449 HIGH
8.7 Mar 14

The API used to interact with documents in the application contains two endpoints with a flaw that allows an authenticat

CVE-2026-109205 HIGH
8.7 Oct 12

Unauthenticated multipart uploads to the LogicalDOC Community Edition /upload endpoint (through version 9.3) let remote

CVE-2026-109199 HIGH
8.7 Oct 12

Authenticated remote code execution in LogicalDOC Community Edition through 9.3 allows any user with a valid account to

CVE-2026-109201 HIGH
8.7 Oct 12

Missing authorization in LogicalDOC Community Edition through 9.3 allows any authenticated low-privilege user to disclos

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy